Commit Graph

2800 Commits (8b8ce4eff918c785cf266e1ff3200f5eb59d1e8f)

Author SHA1 Message Date
lethosor 2aeac718cc workflow: Account for job postings correctly and fix existing issues
Without removing postings correctly, it was possible to end up with
multiple workers assigned to a job that workflow had suspended
multiple times, which caused crashes if more than one worker was
assigned to the same job by DF.

This adds an additional command, fix-job-postings, that runs
automatically when loading a world and fixes:
- Multiple job postings that point to the same job
- Job postings that point to a job where posting_index == -1
  (i.e. jobs that should have no posting assigned)

Fixes #741
2015-11-25 20:33:13 -05:00
lethosor af92b3ae1f Fix some confirm plugin issues and add a simple configuration UI
- Detect null pointers in trade-related functions
- Fix typo/issues pointed out by @dscorbett
- Reorder includes
2015-11-21 20:58:49 -05:00
lethosor b7dd93b6e8 Implement most of the confirm plugin in Lua
This should make resolving future issues easier, although implementing
new confirmations in lua isn't possible yet (each one requires a line
in confirm.cpp).

This also resolves an issue with note-delete and route-delete, with
dfhack/df-structures@1bc4f61
2015-11-21 19:01:35 -05:00
lethosor 67aed56183 Allow adding plugins temporarily without modifying plugins/CMakeLists.txt
Useful to avoid issues when switching between branches that modify
plugins/CMakeLists.txt
2015-11-17 17:42:03 -05:00
PeridexisErrant 842b9c5191 Implement feature as a script, add magma option
Functionality is exactly equivalent to the plugin, but with a new option
for players who want to enable magma furnaces without spoilers.
2015-11-17 16:43:56 +09:30
PeridexisErrant 2ba9ef04e3 Replace drybuckets plugin with a script
Also closes #248, by checking job and building flags.
2015-11-17 13:55:43 +09:30
lethosor 9c4fc64ac5 Fix display issue in tweak max-wheelbarrow 2015-11-16 21:47:29 -05:00
lethosor 16b2140dec Merge remote-tracking branch 'lethosor/fix-unit-occ-speed' into develop 2015-11-16 21:39:46 -05:00
PeridexisErrant 5f8f0c72aa Remove dwarfexport plugin (obsolete)
The Runesmith utility has long been replaced by Dwarf Therapist, and
it's attribute-editing functions are very well supported directly by
DFHack.
2015-11-17 11:13:22 +09:30
PeridexisErrant 836e1a3a37 Remove mapexport plugin (obsolete)
It's been disabled for more than a year, and nobody misses it.  If that
changes, it'll still be in the git history!
2015-11-17 11:13:21 +09:30
PeridexisErrant 291787a019 Remove df2mc plugin (obsolete)
It's still got it's own repo, but it hasn't been compatible with
Minecraft for years and shouldn't be in the DFHack repo.
2015-11-17 11:13:20 +09:30
PeridexisErrant 80e4b8d3df Remove DFusion plugin and script system
It's been four years since meaningful updates, and in that time
alternatives have emerged to almost everything.  Any remaining
functionality to replace is on the issue tracker.

Simpler is better, for users and developers, and removing a legacy
system makes it easier to understand how DFHack works.
2015-11-17 11:13:19 +09:30
lethosor 7ea0e198b3 fix-unit-occupancy: Only check unit list once
Fixes #749
2015-11-16 17:25:21 -05:00
lethosor 610170b0b0 Add hooks for getDwarfmodeViewDims and getDepthAt (new) 2015-11-15 11:54:34 -05:00
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 928bcb6d95 military search: Don't try to pass selection in empty list to DF
Fixes #748
2015-11-15 11:15:05 -05:00
lethosor 9273c177c1 Add "confirm uniform-delete" 2015-11-11 23:14:58 -05:00
lethosor 07a310b0f2 Prevent "confirm squad-disband" from triggering unnecessarily 2015-11-11 23:14:30 -05:00
lethosor e7c3b03ada Misc. confirm plugin cleanup
This avoids the need to list newly-added classes in multiple places
(which could be extended to the search plugin) and gets rid of a few
ugly macros, along with a few other minor changes.
2015-11-11 23:00:20 -05:00
lethosor 7663a9a7a7 confirm haul-delete: Additional UI state restrictions
Fixes #744
2015-11-10 17:24:10 -05:00
lethosor 97e9312d2a Update stonesense 2015-11-08 21:17:07 -05:00
Japa 79e1c4982e Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-11-08 13:54:14 +05:30
Japa 4db05cc8eb Add Unit size info to remotefortressreader.cpp 2015-11-08 13:05:25 +05:30
lethosor 047168b702 Fix workshop/furnace sidebar events 2015-11-07 16:15:37 -05:00
lethosor 8117549175 Merge remote-tracking branch 'warmist/patch-6' into develop
Add furnace to fillsidebarmenu hook
2015-11-07 16:04:05 -05:00
lethosor e176c3ea05 Merge remote-tracking branch 'PeridexisErrant/docs-again' into develop 2015-11-07 15:50:11 -05:00
lethosor ba0ae9e487 Merge remote-tracking branch 'PeridexisErrant/init-flags' into develop 2015-11-07 15:23:17 -05:00
PeridexisErrant 0bb203e7c9 Replace initflags plugin with scripts
Progress towards #722
2015-11-07 23:42:14 +11:00
lethosor 3ebe59859b box-select: Fix "tiles to fill" count 2015-11-06 20:04:54 -05:00
lethosor d1cd5df314 Merge remote-tracking branch 'DoctorVanGogh/automats-floorfix' into develop 2015-11-06 19:54:06 -05:00
PeridexisErrant 7f212178ca Move unused docs to plugin source files
This way they can easily be restored when the plugins are reactivated,
but don't confuse users until then.
2015-11-07 10:13:21 +11:00
DoctorVanGogh e9be1aa657 Fix for construction over existing construction & on top of walls
Fix to allow constructions on top of (natural) down stairs
2015-11-06 19:00:43 +01:00
lethosor 5c4e28dbff Fix initial cursor position with initial entry 2015-11-05 19:09:35 -05:00
lethosor ac8038fa79 Update stonesense 2015-11-04 20:06:35 -05:00
lethosor cbf31dcb37 Merge remote-tracking branch 'PeridexisErrant/NEWS-cleanup' into develop 2015-11-04 19:54:13 -05:00
Japa ea38404727 Added bridge direction. 2015-11-03 22:38:07 +05:30
Warmist 0fa35aef3c Update eventful.cpp
Fix furnace hook not being called.
2015-11-03 18:01:41 +02:00
Warmist a503e54484 Add furnaces to sidebar fill event 2015-11-03 17:59:24 +02:00
Japa 3fd4b01829 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-11-03 18:50:00 +05:30
Japa f5ca3f9e7b Made the direction info more meaningful. 2015-11-03 18:49:17 +05:30
DoctorVanGogh d692458038 Formatting 2015-11-03 10:07:27 +01:00
Lethosor f7a5574e9a Merge pull request #726 from DoctorVanGogh/zone-typo
zone: Fix typo in help text
2015-11-02 22:20:15 -05:00
DoctorVanGogh 923ce36323 zone: Fix typo in help text 2015-11-03 03:55:04 +01:00
Japa b4b90465c2 Added building direction to remotefortressreader.cpp for those buildings that have it in a meaningful way. 2015-11-02 23:22:58 +05:30
DoctorVanGogh a7fe1d9d73 Formatting 2015-11-02 05:05:17 +01:00
DoctorVanGogh 092979f362 Prevent building floor on top of constructed floor (mostly) 2015-11-02 02:51:52 +01:00
PeridexisErrant e11ce3bff4 Merge develop 2015-10-31 15:46:41 +11:00
lethosor ac71fa8070 Add isValidLabor() to Units module
Closes #711 and could avoid potential issues when editing units from
other civs with manipulator.
2015-10-30 18:41:09 -04:00
lethosor ff4f7203c5 Update stonesense 2015-10-30 17:08:39 -04:00
lethosor daf20c16bd Indicate development builds 2015-10-24 14:52:00 -04:00
lethosor 8de710f1c1 Add Renderer module - safer way to install custom renderers 2015-10-21 17:18:39 -04:00
lethosor 757c05db86 buildingplan-lib: depend on dfhack 2015-10-18 17:46:37 -04:00
lethosor dd32954cce Make buildingplan-lib a static library
This avoids building buildingplan-lib.cpp multiple times
2015-10-18 13:08:48 -04:00
lethosor c44ac8ec6e Improve handling of fatal errors and errors in dfhack.lua
* Several fatal errors that occurred during core initialization didn't
  stop initialization or set 'errorstate' properly, which caused
  update hooks and other code to crash later. This has been fixed and
  should address crashes like the one mentioned in #470.
* Errors when loading dfhack.lua now cause Lua::Open() to fail, which
  triggers a fatal error in Core::Init()
* Failure to initialize the console no longer results in a call to
  fatal() (since it didn't actually stop initialization previously)
2015-10-17 21:18:04 -04:00
lethosor 38be023d5d Fix TiletypeMaterial/tiletype_material comparison 2015-10-10 13:06:14 -04:00
Japa 46f6afada7 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-10-09 23:35:39 +05:30
Japa 30c14ed914 send stockpile and civzone extents in remotefortressreader.cpp 2015-10-09 23:35:12 +05:30
lethosor 5580a255f5 Update stonesense 2015-10-03 14:42:52 -04:00
lethosor 45d095cbab Replace translate_socket_error() implementations with DescribeError() 2015-10-03 10:37:48 -04:00
lethosor d343dfd8a0 Add a function to find viewscreens (or parents) of a given type
This makes it possible for some plugins to detect the game state more
reliably - for example, prospector would previously fail when
embarking if the viewscreen_choose_start_sitest instance had any
children.
2015-10-02 21:50:55 -04:00
Japa 449e0c7578 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-09-28 10:07:23 +05:30
Japa 5e43b6b2a6 Add buildigs to remotefortressreader.cpp 2015-09-28 10:06:04 +05:30
expwnent e95aea90e0 Fix CMake warning over INTERFACE_LINK_LIBRARIES / policy CMP0022. 2015-09-27 04:30:46 -04:00
lethosor 62c903b7be search: Fix crash when disabling a stockpile category
Closes #678
2015-09-21 19:25:20 -04:00
expwnent b532a56790 Merge remote-tracking branch 'dfhack/develop' into develop 2015-09-21 17:48:34 -04:00
expwnent 47378d4b85 Merge branch 'luasocket' into develop 2015-09-21 17:46:47 -04:00
expwnent fabcfcd921 Fixed trailing whitespace. 2015-09-21 17:42:30 -04:00
Japa 129218d5f8 fix whitespace. 2015-09-16 23:29:21 +05:30
Japa ed07a8478b Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-09-16 23:27:04 +05:30
Japa e49272854c Add basic army info to RemoteFortressReader.proto 2015-09-16 23:26:52 +05:30
Japa 5ce6fceacc Send the center with the world map, based off current embark if available, otherwise adventurer position. 2015-09-16 23:25:23 +05:30
Warmist 80fd4b1365 Some additions and fixes.
Added new functions: select, set(non)blocking, isBlocking.
Set default to non-blocking. Added "would block" to ignored errors.
2015-09-16 09:57:22 +03:00
expwnent f9fce7e6a1 Convert tab to spaces in RemoteFortressReader.proto. 2015-09-15 03:21:09 -04:00
lethosor b58ccc9e55 Fix embark-tools title alignment 2015-09-12 20:28:42 -04:00
lethosor a852ca10d7 Merge remote-tracking branches 'warmist/luasocket' and 'warmist/advfort' into develop 2015-09-12 19:59:53 -04:00
Japa 3b36a23404 Add soldier state to remotefortressreader.cpp 2015-09-07 22:41:24 +05:30
Japa 07c601be99 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop
Conflicts:
	plugins/remotefortressreader.cpp
2015-09-05 15:00:03 +05:30
Japa 1a78cabd7c Add profession color and unit flags to remotefortressreader 2015-09-05 14:54:12 +05:30
lethosor 1ea2da511b Fix whitespace 2015-09-02 15:53:13 -04:00
Japa 44a670db4d Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-09-03 00:14:31 +05:30
Japa 6881aeac70 Enable sending of creature_raw in remotefortressreader.cpp 2015-09-03 00:13:48 +05:30
lethosor 7437400c18 command-prompt: Prevent unloading when prompt is active 2015-08-29 19:38:41 -04:00
lethosor c6ae3e11fd Rename remotefortressreader to RemoteFortressReader 2015-08-26 16:40:59 -04:00
lethosor 8292f56f63 New tweak: embark-profile-name 2015-08-25 10:12:31 -04:00
lethosor ec4a3bda54 Merge branch 'develop' into plugin-manager 2015-08-17 08:17:56 -04:00
warmist 7639420455 Update luasocket.lua 2015-08-17 10:07:20 +03:00
Japa bf7fc42710 Made remotefortressreader.cpp get the elevations from the next region over for the last line. 2015-08-17 00:11:52 +05:30
Japa f60b3e8117 Added a function to get region tiles from remotefortressreader.cpp 2015-08-16 20:28:52 +05:30
Warmist 5bb69cfe04 Add luasocket to CMakeLists.txt 2015-08-15 15:12:13 +03:00
Warmist d9c50d677f A lua interface for csockets in a spirit of luasocket 2015-08-15 15:09:12 +03:00
lethosor 735498c3f9 Fix merge conflict 2015-08-14 16:23: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
Japa a71a6d45cc Added a function to pull the world map from remotefortressreader.cpp 2015-08-14 15:36:36 +05:30
Japa 22374e6d86 Fixed remotefortressreader.cpp DF version detection. 2015-08-13 15:59:15 +05:30
Japa e4ac25d1e0 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-08-13 11:26:33 +05:30
Japa a60c8d8e7c Added conditionals to remotefortressreader.cpp to make compiling for v 0.24.11 easier. 2015-08-13 11:25:59 +05:30
lethosor 05f36856f4 fix-unit-occupancy: Always provide feedback when running command 2015-08-10 11:30:21 -04:00
lethosor 9b5f42e3a9 tweak farm-plot-select: Only show controls when plots are fully built
Fixes #521
2015-08-10 10:41:47 -04:00
lethosor fcd15bfd73 Move vshook plugin to title-version and enable by default 2015-08-09 13:37:26 -04:00
lethosor bce9d98633 New plugin: fix-unit-occupancy (fixes bug 3499) 2015-08-07 14:33:38 -04:00
lethosor 44287fc3a0 remotefortressreader: Check map validity before reading map info
Fixes JapaMala/armok-vision#5
2015-08-06 13:42:13 -04:00
lethosor 090f542d49 Allow for per-plugin compile flags 2015-08-06 13:33:53 -04:00
Lethosor bc5b46dce0 Merge pull request #660 from lethosor/jsoncpp
Replace jsonxx with jsoncpp
2015-08-06 12:37:51 -04:00
lethosor e02815dc30 Fix manipulator crash when selecting from empty custom profession list 2015-07-31 16:46:00 -04:00
lethosor 01e04c24c5 Use a separate lua state in dwarfmonitor render hook 2015-07-31 14:25:33 -04:00
lethosor d02e67267a Replace jsonxx with jsoncpp 2015-07-29 15:50:33 -04:00
lethosor a90f3c3d67 stockpiles: Restrict characters in filenames when saving
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
2015-07-29 14:17:14 -04:00
lethosor 4e45cc5bbb stocks: Use ^ and $ to match the beginning/end of item names
Closes #624
2015-07-29 13:44:32 -04:00
lethosor 7fc682b199 Fix dismissal of current screen when zooming to items 2015-07-29 11:22:38 -04:00
lethosor 825d46af51 Move ListColumn class to a separate header 2015-07-28 21:48:00 -04:00
lethosor dd7c20c848 Add safer helpers to get STRING_X keys from interface_key sets
A few plugins were using input->rbegin() previously, which crashes
if input is empty and isn't strictly guaranteed to return a
STRING_X key.
2015-07-28 18:34:29 -04:00
lethosor b73e859a37 Reorganize stocks viewscreen to fit a 25-row resolution 2015-07-28 14:37:49 -04:00
lethosor 5ca5feb855 Stop embark-tools from crashing on unload
Also enable sand indicator and mouse controls by default and refactor
2015-07-27 21:38:53 -04:00
lethosor c3c625e7bd Remove embark-tools nano (implemented in 0.40.24) 2015-07-27 18:22:18 -04:00
lethosor 889c76b147 buildingplan: Don't assume building and item type names match
There are a few building types (e.g. hatch covers) where this is not
the case.

Fixes #604
2015-07-27 14:10:55 -04:00
lethosor 6352a6e266 Expand confirm plugin and improve safety of adding/removing hooks
* 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"
2015-07-27 12:03:29 -04:00
lethosor ed3cbe2e60 Add several trade-related confirmations 2015-07-27 10:05:59 -04:00
lethosor 35f229c578 Add confirmations for hauling route/stop deletion and depot removal 2015-07-27 10:05:59 -04:00
lethosor 175edf501a Add "confirm" plugin - implements a few confirmation dialogs
See #577
2015-07-27 10:05:59 -04:00
lethosor f1a6e5fbe9 tweak farm-plot-select: Don't require crops to be discovered
Crops whose seeds haven't been discovered are still listed in
menus as of 0.40.10
2015-07-24 11:17:04 -04:00
lethosor 6c55164be4 Fix a potential crash in tweak farm-plot-select
Related to #396
2015-07-24 10:54:59 -04:00
Japa 867e78b6fd Correctly identify ice material. 2015-07-04 09:22:41 +05:30
lethosor 87b1524aec search: give text input priority over cursor keys 2015-06-30 16:45:45 -04:00
lethosor 8058472dd9 Check for null pointers in several places in the search plugin
Fixes #650 (and a few other potential issues)
2015-06-30 16:20:01 -04:00
lethosor 2c734233eb New tweak: kitchen-keys
Fixes an issue where HOTKEY_KITCHEN_* bindings aren't used by DF:
http://www.bay12games.com/dwarves/mantisbt/view.php?id=614

See #526
2015-06-27 11:02:26 -04:00
lethosor 3795edb673 Fix colors in 'tweak kitchen-prefs-color' 2015-06-27 09:54:31 -04:00
lethosor 4246dbd02a New tweak: kitchen-prefs-color
Disabled in default dfhack.init to avoid confusion
2015-06-26 23:19:53 -04:00
lethosor 8d21dd0a23 New tweak: kitchen-prefs-empty
Fixes a layout issue on the kitchen prefs viewscreen with empty tabs
http://www.bay12games.com/dwarves/mantisbt/view.php?id=9000

See #526
2015-06-26 23:19:39 -04:00
lethosor 38d377f4c4 Fix a few zone plugin crashes
* Avoid checking building types of null pointers
* Detect selected cages properly

Fixes #646
2015-06-23 21:21:21 -04:00
Lethosor c9f7fcfd05 Merge pull request #640 from lethosor/search-look-list
Add look menu search
2015-06-22 08:44:34 -04:00
Japa 33cb5e951f Fixed whitespace and returns. 2015-06-22 18:01:19 +05:30
Japa a071f5bf6c Added preliminary building list to remotefortressreader. Untested. 2015-06-22 00:40:17 +05:30
Japa 96640c837f Made remotefortressreader send an item list, and the item that constructions are made from. 2015-06-20 22:17:35 +05:30
Japa 4182a30cc5 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-06-19 23:30:47 +05:30
Japa 4b05423e58 Made remotefortressreader send proper indices for inbuilt materials. 2015-06-19 23:28:32 +05:30
lethosor a8480070a0 Add look menu search 2015-06-16 20:36:19 -04:00
lethosor 81cba0b0fc Merge remote-tracking branch 'Fukken-Saved/master' (autohauler) into develop 2015-06-16 19:56:16 -04:00
lethosor 8145a04944 dwarfmonitor: Add mouse cursor widget
Suggested by @ragundo
2015-06-15 13:42:29 -04:00
lethosor 7581bda7d5 Update dwarfmonitor documentation and NEWS 2015-06-13 21:50:15 -04:00
lethosor 93c9a41a3a Reimplement dwarfmonitor widgets in Lua (and improve customizability)
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
2015-06-13 21:15:43 -04:00
Fukken-Saved 9a262ad013 Travis compliance 2015-06-13 14:19:14 -04:00
Fukken-Saved d4c7cd2a4e Update autohauler.cpp 2015-06-13 14:08:42 -04:00
lethosor 2d121caabc Allow searching noble suggestions in liaison meetings
Closes #622
2015-06-11 21:37:58 -04:00
Lethosor 09db800f3d Change tabs to spaces 2015-06-11 12:50:00 -04:00
Japa eef9f49ae8 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2015-06-11 21:51:03 +05:30
Japa cf13b677b6 Added all main tile flags to the list of sent stuff. 2015-06-11 21:49:42 +05:30
lethosor 84b0b48028 dwarfmonitor: Allow weather indicator to be configured separately 2015-06-10 23:09:01 -04:00
lethosor eabcee38e5 dwarfmonitor: Get rid of "Clear" weather indicator 2015-06-10 23:05:33 -04:00
Adam Watkins 772ad0372d Improved issue with workflow job being resumed but never being worked
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?)
2015-05-22 22:26:58 -04:00