* 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", ...)
Previously, it was possible to save outside of the stocksettings
directory or fail to save in a nonexistent subdirectory (e.g. when
a stockpile name had slashes in it).
Resolves#621
* New option: trade-select-all: Prompts when selecting all goods
when some goods are already selected
* Improved trade confirmation message depending on selected goods
* Made seize and offer confirmations only display when goods in the
appropriate columns are selected
* States of each option are now listed by "confirm help"
Widget positions and a few other options (e.g. date formats) can be
specified in dfhack-config/dwarfmonitor.json on a per-instance basis.
Related changes:
* Fixed an issue loading JSON files from Lua
* JSON files in dfhack-config (only dwarfmonitor.json currently) are
no longer copied into the DF directory when building DFHack. This
keeps developers' personal settings intact, but will require
copying over changes made to DFHack's copies manually.
* Fixed incorrect config path in dwarfmonitor help
Fixes#487
* This doesn't fix existing stuck jobs, in order to fix, remove repeat, cancel, add, repeat
* Most workshops worked great after this, however, I noticed my bone bolts and wood bolts still got stuck, not sure if it is the same issue
* The unk_v4020_1 field was not being reset to -1 when resuming the job.
* Updated to be reset only when the job is being resumed
** Setting it to -1 without checking sets this field on all workflow jobs, which causes a crash
* Made other calls to suspend call set_resumed rather than setting the suspend field
This is the behavior I saw for the unk_v4020_1 field:
Suspended jobs: -1
Jobs not in the top of the list but not suspended: -1
Jobs at the top of the list to work next, not suspended: A positive integer (priority of job?)
* tweak: Log tweak changes to stderr.log instead of the console
* stockflow: Use "enable stockflow" instead of "stockflow enable"
in dfhack.init-example
Makes workflow understand "seeds of any plant", "thread of any plant",
"drink of any plant", "powder of any plant", and "liquid of any plant"
when counting items.
Changes workflow's handling of the built-in plant reactions to
understand that they always produce plant products, and that they also
produce seeds.
This means that you can set a target for, for example, "powder of any
plant", and workflow will use a milling job to produce that.
Try harder to concentrate skill on certain dwarves, at the expense of
potentially allowing more idle dwarves.
Attempt to keep dwarves with tools from running off and doing other
things while holding on the tool so much.
Add comments explaining the two modes autolabor uses depending on number
of idle dwarves.
Autolabor was disabling all labors on dwarves selected for trading or
diplomacy, even if those labors were not supposed to be managed by
autolabor. This is wrong.
world->raws.buildings.workshops is not always cleared on world load
(notably in the arena), so it can contain invalid pointers from
previous games.
Fixes#444