Commit Graph

209 Commits (eeacbc80c6479ffb137e6b8b0d430cd820cbb0f6)

Author SHA1 Message Date
lethosor fcfffd1cb6 Track state of gui hooks
Also fix a bug in drawborder() and expand color-dfhack-text to test
multiple hooks
2015-11-15 11:54:34 -05:00
lethosor fff9072b07 Add initial support for hooking into Gui-related functions 2015-11-15 11:54:34 -05:00
lethosor 8de710f1c1 Add Renderer module - safer way to install custom renderers 2015-10-21 17:18:39 -04:00
lethosor 4fc6cb6f17 Several PluginManager improvements
* load/unload/reload are no longer restricted to plugins that exist
  on startup
* Names passed to DFHACK_PLUGIN must match the plugin's filename
  (remotefortressreader vs RemoteFortressReader, counters vs probe)
* "plug" output lists all plugins and state/command information
* Deleted plugins can be reloaded again if they are replaced
* load/unload/reload don't fail silently with broken plugins
* Built-in commands are recognized internally (e.g. "help help"
  does not display "help is not a recognized command"), although help
  for them is not yet implemented
* New command: "type" (bash-like) - shows where/how a command is
  implemented
* "plug" can accept multiple plugin names
* "ls" displays more information about unloaded/unrecognized plugins
* "load all" changed to "load -all" (or "load --all", "load -a", ...)
2015-08-14 16:11:23 -04:00
lethosor fcd15bfd73 Move vshook plugin to title-version and enable by default 2015-08-09 13:37:26 -04:00
lethosor a577248a38 Make memview output more readable 2015-05-09 19:41:13 -04:00
lethosor 786581689f Move get_dfhack_version() to a separate namespace and add a few other version-related functions 2015-04-02 16:37:58 -04:00
lethosor 9b6d8d2799 Allow dev plugins to be skipped on startup 2015-04-01 17:50:22 -04:00
lethosor 82d72007fc Move zoom-related commands to a separate dev plugin 2015-04-01 17:24:52 -04:00
lethosor 7913517b2c Add "nyan stop" command 2015-04-01 17:02:33 -04:00
Lethosor 88c3a629d5 Fix vshook 2015-03-26 19:27:22 -04:00
lethosor 10cfef0553 Fix whitespace issues 2015-02-14 22:53:06 -05:00
Quietust cf06dc3503 Update to 0.40.11, fix a few devel plugins to build again 2014-09-04 08:26:45 -05:00
Quietust 97de21357c First pass for 0.40 compatibility; still lots left to do, but this will at least build 2014-07-21 13:18:29 -05:00
expwnent c7636ae442 Deleted devel/printArgs because there's a script for that. 2014-06-30 02:56:07 -04:00
expwnent 2894b406ac Sorted devel CMakeList. 2014-06-30 02:54:15 -04:00
expwnent 8e7e87ac73 Added UNIT_ATTACK event to EventManager and exposed it to Lua. 2014-06-28 02:31:34 -04:00
Alexander Gavrilov 7aecffe0cd Update structures and fix broken things. 2014-04-04 22:34:39 +04:00
expwnent c409289ee4 EventManager: TICK events should unregister correctly when requested and after they fire, other tweaks.
- fixed unregister to allow unregistering individual TICK events
 - make registerTick return the resulting freq you have to put back in to the handler in order for it to be unregisterable
- when TICK events fire, they now automatically remove themselves from handlers[TICK], as they should
- make sure manageTickEvent fires once per tick
2013-10-20 22:54:25 -04:00
expwnent 39553cfb6d EventManager: fixed a problem with constructionHandler. 2013-10-20 14:14:02 -04:00
expwnent ee056f4422 Merge remote-tracking branch 'angavrilov/master' into 0.34.11-r4
Conflicts:
	NEWS
2013-10-20 11:09:40 -04:00
expwnent 57fc0f3e89 Merge remote-tracking branch 'angavrilov/master' into 0.34.11-r4
Conflicts:
	NEWS
	library/xml
	plugins/CMakeLists.txt
	plugins/autoSyndrome.cpp
2013-10-19 20:19:29 -04:00
Alexander Gavrilov a273327c6a Remove "using namespace std" from MiscUtils.h. 2013-10-10 12:15:50 +04:00
Alexander Gavrilov d7e35c2d23 Add built-in enable and disable commands. 2013-09-30 13:19:51 +04:00
expwnent 3403146461 Merge remote-tracking branch 'peterix/master'
Conflicts:
	plugins/CMakeLists.txt
	plugins/autoSyndrome.cpp
2013-05-25 20:08:56 -04:00
expwnent b44cd86dc9 EventManager: completely overhauled JOB_COMPLETED event detection, and tweaked Job::cloneJobStruct. 2013-05-25 09:44:17 -04:00
expwnent b4092f62e6 New module: Once. Intended to help prevent debug error message spam. 2013-03-23 22:38:33 -04:00
Kelly Martin 0b31fbafea Remove the "assign random labors to random dwarfs" nonsense that I put in while drunk or something. 2013-03-02 23:05:09 -06:00
Kelly Martin e35a1c7720 Correct autolabor2 for changes in structures. 2013-02-13 16:00:09 -06:00
Kelly Martin 8d278a87db Merge branch 'master' of https://github.com/angavrilov/dfhack.git
Conflicts:
	plugins/devel/CMakeLists.txt
2013-02-13 13:52:02 -06:00
Kelly Martin ff0012c91f Move new autolabor to autolabor2 in devel. 2013-02-13 13:33:32 -06:00
expwnent 3ffbef2396 Merge branch 'canStepBetween' into recent 2013-01-05 18:10:29 -05:00
expwnent f8abd5c595 StepBetween: renamed stuff back to the way it was. Thought I had already done that. 2013-01-05 18:09:50 -05:00
expwnent cf3ac48518 Merge in autoSyndrome, trueTransformation, ... 2013-01-05 13:35:49 -05:00
expwnent 6622e9e06f Merge branch 'canStepBetween' into recent
Conflicts:
	library/modules/Maps.cpp
2013-01-05 13:32:29 -05:00
expwnent 715f191c26 EventManager: made the frequency part of EventHandler. 2013-01-03 19:31:29 -05:00
expwnent 910e398a7b EventManager: added invasion event. 2013-01-03 15:52:56 -05:00
expwnent 4e4e382b8f EventManager: added syndrome event. 2013-01-02 18:30:15 -05:00
expwnent c3b2ae2137 EventManager: allowed plugins to specify how often they need events to be checked, in the event that monitoring is necessary. 2013-01-02 11:07:56 -05:00
expwnent fa78d6ccfc Merge branch 'recent' into eventManager-unstable
Conflicts:
	library/modules/Job.cpp
2013-01-02 03:16:45 -05:00
expwnent 7972902c81 stepBetween: named a few things better, and fixed a lot. 2012-12-19 20:30:37 -05:00
expwnent 555c754636 EventManager: added construction and building events. 2012-12-18 18:34:38 -05:00
expwnent 01e5e93825 Renamed Maps::canWalkBetween to Maps::canPathBetween and added Maps::canWalkBetween, which does what it says. 2012-12-16 23:26:50 -05:00
expwnent 935058f0a5 EventManager: moved files around, made eventExample not run by default, and got rid of the silly NONE event type. 2012-12-15 17:43:41 -05:00
jj ebc2625d97 ditch the unused Vegetation module 2012-12-06 23:47:25 +01:00
jj 614225cc5f follow rename itemst.flags.artifact1 -> artifact 2012-11-28 19:48:47 +01:00
Quietust e2b9b703a0 Get rid of tabs 2012-11-16 15:33:36 -06:00
Quietust 766aca4911 Rename general_ref vectors for consistency 2012-11-12 08:27:58 -06:00
Warmist e887c60e93 Removed unused buffers. 2012-11-02 21:00:35 +02:00
Alexander Gavrilov cd852e2240 Fix one more place that was using ANY_FREE. 2012-10-24 17:51:47 +04:00
Alexander Gavrilov 82e870c8dd Move siege engine out of devel. 2012-09-17 14:59:59 +04:00
Alexander Gavrilov f2fde21b10 Implement a slightly more sensible aiming AI in siege engine. 2012-09-17 14:45:22 +04:00
Kelly Martin 58fda716e6 Explicit cast is required for MSVC. 2012-09-16 17:06:31 -05:00
Kelly Martin 847dadd3f5 Merge remote-tracking branch 'angavrilov/master' 2012-09-16 16:37:08 -05:00
Kelly Martin 38f920dd65 Merge remote-tracking branch 'q/master' 2012-09-16 16:36:51 -05:00
Alexander Gavrilov 000e3baf27 Implement skill-based miss probability in siege engine. 2012-09-14 20:57:03 +04:00
Alexander Gavrilov 811c096c0e Vaporize liquids from barrels, and destroy bin contents in siege engine. 2012-09-14 20:22:49 +04:00
Alexander Gavrilov 881fed41de Support setting workshop profile for siege engines.
Since can't use built-in viewscreen, UI limited to skills only.
2012-09-13 20:20:56 +04:00
Alexander Gavrilov 5690a26439 On second thought, remove stockpile->engine links; keep only reverse.
Bi-directional links involve the risk of crashes if the plugin
is unloaded, and the engine subsequently deconstructed.
2012-09-13 17:49:41 +04:00
Alexander Gavrilov f06f9af6b8 Throw items from bins around in siege engine, like minecarts do. 2012-09-12 20:57:25 +04:00
Alexander Gavrilov 448d7e3633 Support linking siege engines to stockpiles.
Since they can't do that natively, the links object has to
be maintained in dfhack memory, and with dfhack persistence.
2012-09-12 12:15:12 +04:00
Alexander Gavrilov b0938d7e0d Allow specifying arbitrary items to use in catapults. 2012-09-11 22:46:17 +04:00
Alexander Gavrilov 3a075f4bc7 Trivial siege engine aiming at units, with logic in lua. 2012-09-11 19:17:24 +04:00
Alexander Gavrilov 8ab615f6d0 Implement unit path prediction in siege engine. 2012-09-09 20:54:12 +04:00
Alexander Gavrilov 9679b7729c Clean up the movement speed calculation function and move into the core. 2012-09-09 17:04:58 +04:00
Alexander Gavrilov ec3d489bda Move curse-affected attribute value getters to the core. 2012-09-09 12:51:08 +04:00
Alexander Gavrilov a36fe25e72 Finish the effective skill computation function, and move to core. 2012-09-09 12:27:40 +04:00
Alexander Gavrilov fb88aad51d Reverse-engineer unit speed computation from DF code. 2012-09-08 21:07:18 +04:00
Alexander Gavrilov 003c3391d1 Implement aiming projectiles at random points in the designated area. 2012-09-08 15:49:46 +04:00
Alexander Gavrilov bfa6ed3e08 Support setting the target area for the siege engine. 2012-09-08 13:46:02 +04:00
Alexander Gavrilov 325e294af2 Start the siege engine plugin with code to highlight obstacles on screen. 2012-09-07 19:54:32 +04:00
Alexander Gavrilov d0e630d4c3 Move steam engine out of devel, since it should be fully functional. 2012-09-06 17:10:58 +04:00
Alexander Gavrilov 9c6fcee9a9 Add steam engine documentation, and use barrel quality in efficiency calc. 2012-09-05 11:23:00 +04:00
Kelly Martin 96fec768c7 Merge remote-tracking branch 'angavrilov/master' 2012-09-04 12:05:05 -05:00
Alexander Gavrilov 1618ccf5bb Fix steam-engine build on msvc, and add a script for listing mem ranges. 2012-09-03 10:28:17 +04:00
Alexander Gavrilov 2249cb14fa Require level 3 both for water & magma, and indicate level 5 by brightness. 2012-09-02 18:57:10 +04:00
Alexander Gavrilov 3b08ee44d1 Vary the internal power consumption of the engine depending on quality. 2012-09-02 17:32:44 +04:00
Alexander Gavrilov 67630776ee Tweak steam engine raws. 2012-09-02 17:17:18 +04:00
Alexander Gavrilov 9c3843c1d4 Use new API in steam engine; always explode if destroyed with steam inside. 2012-09-02 14:59:13 +04:00
Alexander Gavrilov 8536785d1d Boilers made out of unsuitable materials should explode! 2012-09-01 20:46:34 +04:00
Alexander Gavrilov bae85ac77d Make the steam engine consume liquids from Z level below. 2012-09-01 17:52:51 +04:00
Alexander Gavrilov 74501d3197 Try preventing "boiling water" from freezing, and dump steam on destroy. 2012-09-01 14:42:19 +04:00
Alexander Gavrilov f158e1894d Further work on steam engine.
- Display water inside as 'boiling' by hooking item_liquid_miscst.
- Store current power in flags to avoid mess if items disappear etc.
- Suspend/unsuspend stoke jobs depending on steam level.
- Implement intelligent steam use rate and boiler capacity cap.
- Modify appearance of special tiles to display status.
2012-09-01 11:29:05 +04:00
Alexander Gavrilov ece0833c93 Prototype steam engine workshop :)
Very broken and incomplete still.
2012-09-01 00:22:55 +04:00
Kelly Martin a8158cb19a Merge remote-tracking branch 'q/master' 2012-08-30 09:25:26 -05:00
Kelly Martin 604cf80832 Repurpose the nestboxes plugin as a watcher that automatically forbids fertile eggs. 2012-08-30 09:23:11 -05:00
Alexander Gavrilov f1915915b4 Follow change in xml again. 2012-08-27 23:03:02 +04:00
Alexander Gavrilov 5fed060d7d Follow field rename in xml. 2012-08-27 16:01:11 +04:00
Alexander Gavrilov bee33fd486 Add a performance test for location caching in general refs. 2012-08-26 14:43:14 +04:00
Alexander Gavrilov b8ee52131b Add a module for painting tiles into the gps global. 2012-08-19 09:31:09 +04:00
Alexander Gavrilov fd0bf2ef92 Extract the color enum from color_ostream to toplevel. 2012-08-19 09:21:25 +04:00
Alexander Gavrilov 01ba2a31fc Tweak the interpose API, and fix a couple of bugs. 2012-08-18 11:48:07 +04:00
Alexander Gavrilov 236ffd578b Add experimental support for interposing vmethods of known classes.
The hairiest bit is the abuse of compiler-specific pointer-to-member
internals in order to provide more or less transparent API.
2012-08-17 22:40:53 +04:00
Kelly Martin 4c7c38df93 * Autolabor: really exclude the broker from all labors when trader requested
* Autolabor: add 'haulpct' config option to control percentage of non-idle dwarfs assigned to hauling labors (default is 33)
* Zones: allow nontamed birds to be nestboxes.  warning: does not check for 'hostile to civilization' birds, so if you try to tame a hostile elk bird, !!fun!! will happen
* Stripcaged: changed default behavior to keep armor, reduced noisiness
2012-07-11 14:30:47 -05:00
Kelly Martin 83f00e5583 Autolabor: allow setting the nonidle hauler percentage at runtime.
Stripcaged: add keeparmor option
2012-07-05 09:59:28 -05:00
Alexander Gavrilov e72bf1ac9a Sync to changes in df-structures. 2012-05-26 14:49:27 +04:00
Alexander Gavrilov e3440126a3 Fix missing switch case warnings. 2012-05-05 19:36:22 +04:00
Kelly Martin 6903f3877f Devel plugin nestboxes scans all nestboxes for unhatchable eggs and optionally dumps them. 2012-05-01 10:58:12 -05:00
Alexander Gavrilov 02e43428ee Sync to changes in the data structure definitions. 2012-04-26 12:36:29 -05:00
Kelly Martin ac0e4a15e8 Rprobe can now be used to change any of the region_map paremeters. Use at your own peril, as strangeness may ensue. 2012-04-23 09:46:57 -05:00