Commit Graph

4028 Commits (106349782888dca11465f96f8071ead627495636)

Author SHA1 Message Date
lethosor 58917b03d1
Switch away from CheckDFObject in unprotected calls
See https://github.com/DFHack/dfhack/pull/1674#issuecomment-716028460
2020-10-24 14:27:33 -04:00
Myk Taylor a2f943e7e5 don't shift UI down for track constructions
automat doesn't have UI there to avoid
2020-10-24 09:19:15 -07:00
Myk Taylor e614d16e0e use Lua::CheckDFObject instead of static cast 2020-10-23 15:30:40 -07:00
Myk 55a52554ee
use CheckDFObject instead of static cast
Co-authored-by: Alan <lethosor@users.noreply.github.com>
2020-10-23 13:55:14 -07:00
Myk Taylor 0f517f38f8 don't conflict with automaterial plugin
shift buildingplan text down so we don't overwrite each other
2020-10-22 22:01:45 -07:00
Myk Taylor 7e78d8802e migrate qf's buildings_use_blocks to buildingplan
- remove buildings_use_blocks setting from quickfort config file
- add a new Buildingplan Global Settings dialog to house global settings
- move Quickfort Mode (for legacy Python Quickfort) into that dialog
- add four settings to control how generic building materials are matched:
  - blocks
  - boulders
  - logs
  - bars
- ajust the buildingplan algorithm to register duplicate tasks for
  building material item filters, one for each type. since we track how
  many items we've matched for a filter, the first matched item will
  "win" and the extras will get detected as invalid and popped off the
  queue.
- ensure boulders, logs, and bars are scanned last, and in that order
- more global settings planned for the future! see
  http://www.bay12forums.com/smf/index.php?topic=176889.msg8202679#msg8202679
2020-10-22 21:37:49 -07:00
Myk Taylor 09fbaba726 buildingplan: support all building types
Allow buildingplan to handle all building types, update the docs, and add in little extra fixes to ensure all the new types work correctly.
2020-10-16 14:23:35 -07:00
Myk Taylor 100b374af7 generalize buildingplan for all building types
but restrict to only the currently supported set so we can still assume only one filter is required for each building.

changes:
- update buildingplan plugin version to 2.0
- new serialization format for planned buildings
- old persistent data is automatically migrated to new format on load
- algorithm now respects job_item filters; items must match job_item filter and buildingplan ItemFilter
- more invalid items are now filtered out, like items encased in ice. are there any others we should be checking (see BadFlags struct)
- items are sorted before job is unsuspended so final item ordering is correct regardless of what order the items were matched and attached
- item counts in filters are kept up to date so if buildingplan is disabled before all filters are matched and the building is completed by DF itself, the item counts will come out correct (though the item ordering and building "roughness" may be incorrect)
- fixes two memory leaks in building finalization code
- allows artifacts to be matched (ItemFilter defaults now top out at Masterful -- Artifact is selectable but must be manually specified)
- add gui to switch between items for buildings that require multiple item types
2020-10-16 14:08:52 -07:00
Myk Taylor 1368fb4003 buildingplan: construct buildings from lua
Replace C++ building construction code with lua constructBuilding so we can get the proper job_item filters set. these filters will be used when we replace the core buildingplan algorithm in the next PR.
2020-10-16 14:03:05 -07:00
Myk Taylor 82013c0c5e prep buildingplan for core algorithm changes
Lots of refactoring and reorganizing, with only cosmetic player-visible changes.

- show quickfort mode hotlkey label regardless of whether the current building type has buildingplan enabled. before, it was only shown after the user enabled buildingplan for the current building. this eliminates the extra step when enabling quickfort mode, which force-enables all building types.
- changed signature of lua-exported isPlannableBuilding to take subtype
  and custom type in addition to building type. this is only used by
  quickfort, and it already sends all three params in preparation for
  this change
- added lua-exported scheduleCycle(), which is like doCycle(), but only
  takes effect on the next non-paused frame. this lets quickfort
  run only one buildingplan cycle regardless of how many #build
  blueprints were run
- declared a few dfhack library methods and params const so buildingplan
  could call them from const methods
- converted buildingplan internal debug logging fn to have a printf api
- reshaped buildingplan-planner API and refactored implementation in
  preparation for upcoming core algorithm changes for supporing all
  building types (no externally-visible functionality changes)
  - changed df::building_type params to type, subtype, custom tuple keys
  - introduced capability to return multiple filters per building type
    (though the current buildings all only have one filter per)
- split monolith hook functions in buildingplan.cpp into one per scope.
  this significantly cleans up the code and preps the hooks to handle
  iterating through multiple item filters.
- got rid of send_key function and replaced with better reporting of
  whether keys have been handled
2020-10-16 13:52:23 -07:00
lethosor 895fa59c79
Merge branch 'buildingplan_refactor' into develop 2020-10-16 00:05:01 -04:00
lethosor 93520b4b00
dwarfmonitor prefs: fix segfault if item_subtype is null for some item types 2020-10-11 20:45:56 -04:00
lethosor 9c8098b4f0
Expose to_search_normalized to Lua, add test, and use in ListColumn (most useful for the `stocks` plugin) 2020-10-10 01:40:00 -04:00
lethosor 1b53c0e748
Merge remote-tracking branch 'GitOnUp/normalize_search' into develop 2020-10-09 22:18:39 -04:00
lethosor e2de358f00
Merge remote-tracking branch 'PassionateAngler/zone-qol-improvements' into develop 2020-10-09 21:43:04 -04:00
lethosor 2382247398
Update some docs links to use HTTPS 2020-10-09 19:17:59 -04:00
lethosor c9609ad590
Make `createitem inspect` consistent for PLANT_GROWTH items 2020-10-09 12:45:49 -04:00
lethosor 691b35bf04
Merge remote-tracking branch 'quietust/createitem' into develop 2020-10-09 12:35:40 -04:00
George Murray a3c565b243 Add to_search_normalized to search for characters with accents 2020-09-24 07:31:10 -07:00
Myk Taylor 1c2761f903 enable all in quickfort mode
and simplify logic since new bool map values are already initialized to
false
2020-09-23 20:00:04 -07:00
Myk Taylor 323d377f63 Merge remote-tracking branch 'upstream/develop' into buildingplan_refactor 2020-09-23 19:21:49 -07:00
lethosor 577bb0a258
Merge remote-tracking branch 'myk002/buildingplan_format' into develop 2020-09-23 20:04:17 -04:00
Quietust d3520a2f5f Fix createitem to properly create plant growths (#898) 2020-09-20 16:11:41 -06:00
lethosor 0e6e00af5e
getplants: fix crash when world_object_data is not present for certain blocks 2020-09-20 01:24:46 -04:00
lethosor 9c37a3a068
Add "createitem inspect" subcommand 2020-09-19 20:33:47 -04:00
lethosor 8df8eb0c5d
Remove obsolete xlsxio_project dependency 2020-09-19 16:23:21 -04:00
lethosor 5952c16d87
Merge branch 'develop' into deps-subdirectory 2020-09-19 16:19:47 -04:00
PassionateAngler 11ee3a223d enumnick: command added to 'zone' plugin and other QoL improvements
zone: enumnick command create nick for creature from given prefix and number
      uinfo displays "Matched creatures" i.e number of creatures matched by filter
      maxage, and minage filters accept float now
      slaughter flag displayed on uinfo cretures list
2020-09-19 14:52:16 +02:00
lethosor a4254a4d2c
xlsxreader: Don't link to zlib directly
It's complicated on Windows, and xlsxio already links to it directly
2020-09-18 15:04:06 -04:00
lethosor b85759620f
Switch libzip and xlsxio to be included with add_subdirectory(), disable xlsxio installation 2020-09-18 00:33:41 -04:00
lethosor 42d4d33571
Only modify xlsxreader target if it was created
Ref #1620
2020-09-17 15:41:29 -04:00
lethosor 1efa09582a
Change libexpat to be included with add_subdirectory()
- Confirmed that libexpat is built statically and linked with xlsxreader
- May need da7cda3a85 for Windows
- Although libexpat's CMake options are all prefixed with LIBEXPAT_, it also adds some cache entries like SIZE_T (from expat/ConfigureChecks.cmake). Unsure if these affect other libs.
- xlsxio may need additional reconfiguration after moving to add_subdirectory() to find libexpat/libzip on non-Linux platforms.
2020-09-17 00:25:50 -04:00
Myk Taylor 8660355838 formally declare used globals in fortplan 2020-09-08 21:30:12 -07:00
Myk Taylor 3b362294b9 move quickfort logic from Planner to buildingplan
where all the other gui-related logic is.
2020-09-08 17:34:11 -07:00
Myk Taylor f3da131db7 reorganize buildingplan code - no logic changes
- no API or logic changes, just moving code around
- split buildingplan-lib into planner and rooms files
- move business logic from .h files to .cpp files
2020-09-08 00:17:56 -07:00
lethosor 09b018bea6
stockpiles: remove sand_bags field
Fixes #1013
2020-08-29 20:04:09 -04:00
lethosor 23dc7727b5
Merge remote-tracking branch 'kristjanmoore/develop' into develop 2020-08-29 17:43:46 -04:00
George Murray a84a1f0ee9 Switch trade screen search to use search_multicolumn_modifiable so that item counts are updated correctly with other information 2020-08-25 14:15:41 -07:00
kristjanmoore 293b0253c4 Set min_waterfall special cases outside loop 2020-08-23 17:35:45 +00:00
kristjanmoore 3ebb812cd5 Allow searches for higher waterfalls 2020-08-23 13:20:45 +00:00
lethosor 45a0b7b3a6
Fix stockpiles crash when building food map
Fixes #1628

Broke due to ecd6bcc9ed
2020-08-18 21:00:10 -04:00
lethosor 19a4d1df5a
Merge remote-tracking branch 'myk002/quickfort_buildingplan' into develop 2020-08-17 23:43:05 -04:00
Myk Taylor 7a7aff7745 closing NULL pointers is ok 2020-08-15 23:37:21 -07:00
Myk Taylor e4a35514ab document buildingplan Lua API 2020-08-15 23:03:49 -07:00
Myk Taylor 4e331ce4ce much better NULL handling/detection for xlsxreader 2020-08-15 22:35:20 -07:00
Myk Taylor 42108a64b9 expose basic buildingplan functionality to Lua 2020-08-12 15:24:32 -07:00
Myk Taylor 0bda289b17 move xlsxreader identity statics to dfhack lib 2020-08-11 14:51:17 -07:00
Myk Taylor cfc736caa1 give the identity classes distinctive name fields
both would have been represented as "handle" to Lua
2020-08-11 14:18:09 -07:00
Myk Taylor c6f9eb519a remove outdated example code in xlsxreader.cpp
there is already good example code in Lua API.rst and in xlsxreader.lua,
so just remove this one
2020-08-11 13:44:07 -07:00
Myk Taylor 438d264b31 use separate identity classes for each handle type 2020-08-10 23:09:03 -07:00
Myk Taylor 17c509a596 update sample code for xlsxreader to use finalize 2020-08-10 09:18:49 -07:00
Myk Taylor 69322ec429 use proper USERDATA instead of LIGHTUSERDATA 2020-08-10 01:13:16 -07:00
Myk Taylor 679ca41da8 make sure xlsxio knows to link statically 2020-08-09 21:22:17 -07:00
Myk Taylor 06e3f77e39 fix windows zlib path, hopefully for the last time 2020-08-09 10:47:15 -07:00
Myk Taylor e2129673c1 fix zlib path on windows 2020-08-09 10:11:24 -07:00
Myk Taylor 5294360908 more windows library naming shenanigans 2020-08-09 09:46:54 -07:00
Myk Taylor 4a04273fae document xlsxreader functions 2020-08-09 09:28:19 -07:00
Myk Taylor a41f7c0998 convert XlsxReader module to xlsxreader plugin 2020-08-09 08:54:42 -07:00
lethosor 73ba692f15
Fix road building (#1596)
Paved roads need architecture before road building
2020-08-08 14:46:42 -04:00
lethosor b2368b3c34
Merge remote-tracking branch 'ab9rf/labormanager-custom-furnaces' into develop 2020-08-08 14:35:44 -04:00
lethosor a28e939370
Recalculate size after toggling columns (goals can be longer than professions) 2020-08-08 00:45:57 -04:00
lethosor ee8d130298
Use existing pronoun_type enum 2020-08-08 00:12:59 -04:00
Ryan Bennitt 23c22b3b9d Merge branch 'develop' of https://github.com/DFHack/dfhack into feature/manipulator_goal 2020-08-07 22:17:32 +01:00
Ryan Bennitt a85b77e6f1 Retrieve goal string values from enum attributes and add new Units methods to Lua API and docs 2020-08-07 22:07:48 +01:00
lethosor ed9f724117
Use BUILDJOB_NOW key, dim text when no job is selected 2020-08-06 22:44:49 -04:00
lethosor c7e4c724e8
Sort tweaks alphabetically 2020-08-06 22:37:04 -04:00
lethosor 0c53b2b6c5
Add do-job-now tweak
Forum thread: http://www.bay12forums.com/smf/index.php?topic=176700
Original source: https://github.com/dlmarquis/dfhack/blob/dojobnow-r1/plugins/dojobnow.cpp

Co-authored-by: dlmarquis <dlmarquis@users.noreply.github.com>
2020-08-06 22:36:57 -04:00
lethosor 02c0a6c8f6
Update getplants to use new plant_raw.material_defs layout
a9f219baf9 applied to #1564
2020-08-06 00:53:06 -04:00
lethosor d3fc691858
Merge remote-tracking branch 'PatrikLundell/Units' into develop 2020-08-06 00:12:54 -04:00
Ryan Bennitt 9510dd52e1 Add Goal to Manipulator Detail Modes 2020-08-04 23:01:28 +01:00
PatrikLundell 19ad5c92d6 corrected incursion bugs 2020-07-30 10:09:41 +02:00
lethosor 4554ca35f3
Ruby: add _indexenum wrapper to OtherVectors for compat with devel/scanitemsother
Ref #1558
2020-07-26 23:11:04 -04:00
lethosor 655b363238
Fix some spelling errors 2020-07-22 02:23:29 -04:00
lethosor 044add2147
Reorder .proto comments 2020-07-18 12:48:20 -04:00
lethosor 35d659091d
Merge remote-tracking branch 'myk002/blueprint_in_blueprints' into develop 2020-07-17 17:32:59 -04:00
lethosor c858f33f61
reaction-gloves: fix warnings 2020-07-17 00:00:57 -04:00
lethosor 89c24ac8be
Merge remote-tracking branch 'quietust/reaction-gloves' into develop 2020-07-16 22:40:49 -04:00
Myk Taylor bb91fdcf8c Merge remote-tracking branch 'upstream/develop' into blueprint_in_blueprints 2020-07-16 09:24:52 -07:00
lethosor a0d627ebc7
Merge remote-tracking branch 'PatrikLundell/embark-assistant' into develop 2020-07-16 01:48:07 -04:00
Myk Taylor c19fc1f349 gcc-4.8 compatibility 2020-07-15 21:35:21 -07:00
Myk Taylor e2334387a9 blueprint: write blueprints to blueprints/ subdir
to enable writing to a subdir that may not exist, blueprint now automatically
creates folder trees. E.g. ``blueprint 30 30 1 rooms/dining dig`` will create
the file ``blueprints/rooms/dining-dig.csv``). Previously it would fail if the
``blueprints/rooms/`` directory didn't already exist.
2020-07-15 16:57:14 -07:00
lethosor b6de6f12ec Merge remote-tracking branch 'RosaryMala/remote_reader' into develop 2020-07-13 19:58:33 -04:00
lethosor 07a2b4a9d7 Use language_name_type enum item names 2020-07-11 02:05:38 -04:00
lethosor c30d27cfbd Silence strangemood warnings 2020-07-11 01:41:38 -04:00
lethosor f32757fa09 Update scripts 2020-07-03 22:49:48 -04:00
PatrikLundell 0a2a16d29c corrected ripeness calculation 2020-07-03 15:50:18 +02:00
PatrikLundell a04c609980 fixed getplants, issue #1479 2020-07-03 13:46:32 +02:00
Ben Lubar 72ce52e004
update structures 2020-07-01 23:10:34 -05:00
Ben Lubar 9def098ef9
add enum-attrs to pronoun_type 2020-06-29 21:30:22 -05:00
Ben Lubar d13e5a3f31
update structures
handle renaming of caste_raw::gender
2020-06-29 20:20:37 -05:00
Ben Lubar a9f219baf9
update for DFHack/df-structures#7dfea1f1d4e453b97d5529785701db46360596ce 2020-06-29 16:16:44 -05:00
Quietust 3dcde1554a Update xml, fix reaction_product::produce() parms 2020-06-23 13:37:11 -06:00
Quietust 2597aeab0e Add a new tweak, "reaction-gloves"
When enabled, custom reactions will begin to produce gloves in sets, based
on the number of hands the job performer's race has, and set the
Handedness flags accordingly.

The "createitem" plugin already contains a simpler workaround (which
doesn't check body plan but instead just produces pairs), but it shouldn't
trigger when this tweak is enabled (unless you use it on a creature which
has been modded to only have "neutral" hands).
2020-06-23 13:37:11 -06:00
Quietust e2301ecae7 Update structures, fix reaction_productst::produce() parms 2020-06-23 13:31:27 -06:00
Kelly Kinkade 61a00f7809 stupid whitespace 2020-06-20 23:10:44 -05:00
Kelly Kinkade 7ddc3bb918 fix labor inferences for custom furnaces
Also clean up how paved roads are handled (the way it was was stupid)
2020-06-20 23:05:55 -05:00
lethosor aee4fcd1a6 Add confirmation for convicting dwarves of crimes
Closes #1593
2020-06-20 12:06:50 -04:00
PatrikLundell d5a491e852 fixed parameter bugs 2020-06-07 08:38:12 +02:00
PatrikLundell 4a48c356a9 fixed bug with incursion handling along world tile edges 2020-06-02 15:58:46 +02:00
PatrikLundell dda31c06db merged 2020-06-02 15:08:02 +02:00
Rose ad37354211 Bump version number to make sure the updater works. 2020-05-24 15:42:59 -07:00
Rose b3080c73ca Merge remote-tracking branch 'DFHack/develop' into remote_reader 2020-05-22 08:06:33 -07:00
Rose 6e2f71b10f Merge branch 'remote_reader' of https://github.com/RosaryMala/dfhack into develop 2020-05-22 08:04:38 -07:00
Rose 3db490ee9e Fix a problem where the block coordinates would sometimes not get copied. 2020-05-22 08:01:34 -07:00
Ben Lubar 28c34217d8
Ruby implementation of df-other-vectors-type 2020-05-09 18:28:40 -05:00
PatrikLundell 31d984e934 Fixed 2 incursion handling bugs 2020-05-05 10:21:56 +02:00
lethosor be517370a6 rendermax: move to std::mutex
fast_mutex can deadlock on Linux with optimization enabled
2020-05-04 18:38:54 -04:00
Kelly Kinkade 2dfd7ea0d0 Update labormanager.cpp again
These should probably be OTHER rather than BUSY.
2020-05-03 18:19:49 -05:00
Kelly Kinkade 319354f6cd Update labormanager.cpp
Add entries for jobs 241-243 to the `dwarf_states` vector as well, derp.
2020-05-03 18:16:31 -05:00
Kelly Kinkade 866660169e Update joblabormapper.cpp
Add no-labor mappings for new jobs 241 through 243.
2020-05-03 17:53:32 -05:00
JapaMala 63c7b69b5b Change item improvement type to bare ints. 2020-05-02 14:38:55 -07:00
JapaMala 60853a543d Remove the site realization building type from the remote reader spec. It has no business being there. 2020-05-02 13:28:28 -07:00
JapaMala 2762f75d69 Merge remote-tracking branch 'dfhack/develop' into develop 2020-05-02 10:58:41 -07:00
JapaMala fcc4962052 Update stonesense to not crash. 2020-05-02 10:58:07 -07:00
lethosor 1dc59d3772 Ruby: use core methods for finding selected item and building
Similar to c3d566332, the core methods have become more complicated (and are also checked at compile-time). This will give a more consistent experience across scripts.

Fixes #1563
2020-05-01 22:50:02 -04:00
lethosor 7c1d1c43e5 Merge remote-tracking branch 'PatrikLundell/stocks' into develop
Conflicts:
	docs/changelog.txt
2020-04-25 21:12:27 -04:00
lethosor f008da32f8 Update submodules 2020-04-25 17:58:09 -04:00
lethosor 1546d9ec1a Tweak docs from #1484 2020-04-25 02:41:27 -04:00
lethosor 4dce9f2010 Merge remote-tracking branch 'PatrikLundell/getplants' into develop
Merges #1484

Conflicts:
	docs/changelog.txt
2020-04-25 02:39:05 -04:00
lethosor 55a82e43c6 Update xml, fix stockpiles build 2020-04-24 23:50:35 -04:00
lethosor 75c8bf1a59 Indent more 2020-04-22 22:05:48 -04:00
PatrikLundell 07571e9eb4 updated and resolved conflict 2020-04-22 11:43:37 +02:00
Ben Lubar 2f1e057bc7
check-structures-sanity: report known void* types with a better message 2020-04-19 22:03:03 -05:00
Ben Lubar 8427f518c9
match capitalization changes I made to df-structures in specific_ref 2020-04-15 20:05:15 -05:00
PatrikLundell f4f2aa0d5e removed underscores, adapted to structure (re)naming 2020-04-15 10:18:37 +02:00
PatrikLundell b0d184e2f9 Merge branch 'develop' of https://github.com/DFHack/dfhack into Units 2020-04-15 09:45:54 +02:00
Nilsolm 362e49c0bc autogems: check bin content in linked stockpiles 2020-04-12 11:02:26 +02:00
Nilsolm 2b44e52cab Add intrigue skill to manipulator 2020-04-11 16:47:29 +02:00
PatrikLundell 55988e3fc4 adapted to updated structures, remote Using units for age 2020-04-08 08:45:40 +02:00
PatrikLundell 5ce84a76f9 Merge branch 'develop' of https://github.com/DFHack/dfhack into Units 2020-04-08 08:35:58 +02:00
Nilsolm c4853bd6e1 Add search to justice screen 2020-04-06 19:13:18 +02:00
lethosor 4e957eafe2 Merge remote-tracking branch 'ymber/embark-profile-name' into develop 2020-04-04 18:55:12 -04:00
PatrikLundell a0e2abe20a Units update need coordination with structure identity 2020-04-04 14:00:26 +02:00
ymber 9b813aab49
Restore style 2020-04-04 11:17:10 +01:00
ymber 5d032b3d9c
Restore esc abort key 2020-04-04 11:12:51 +01:00
Ben Lubar 845b53d7cd
fix integer signedness differences 2020-04-03 11:50:09 -05:00
ymber 6b603bc644
Update embark-profile-name tweak 2020-04-02 17:57:05 +01:00
lethosor 06201a4c6a Bail out if MALLOC_PERTURB_ is unset to avoid unexpected behavior 2020-04-02 01:48:21 -04:00
lethosor 9b1dddc336 Update xml, scripts, change unit_action.data field names back
Fixes #1520
Makes part of dfhack/scripts#130 unnecessary
2020-03-30 03:00:41 -04:00
Ben Lubar 97916fd55e
implement tagged union structures attributes 2020-03-21 14:29:14 -05:00
Ben Lubar b29d009b14
update structures; implement struct_field_info_extra 2020-03-21 13:21:35 -05:00
PatrikLundell 5c913270d6 forgot to update profile save/load 2020-03-15 17:56:13 +01:00
PatrikLundell 7e2872e607 Merge branch 'develop' of https://github.com/DFHack/dfhack into embark_assistant 2020-03-15 17:33:08 +01:00
Ben Lubar ccf92d4b0a
fix check-structures-sanity compile on 64-bit windows 2020-03-13 01:09:04 -05:00
Ben Lubar a456b2fcf3
fix windows build 2020-03-13 00:03:56 -05:00
Ben Lubar 39486083f5
handle overlapping structures in check-structures-sanity better
update structures
2020-03-12 22:16:30 -05:00
Ben Lubar d456e3db7a
check-structures-sanity: fix unknown pointer type not actually dereferencing the pointer
basic attempt at handling overlapping structs
2020-03-12 15:20:46 -05:00
Ben Lubar 616a57224f
check-structures-sanity: don't report possible pointers by default 2020-03-12 11:35:52 -05:00
Ben Lubar 08d2ed577e
fix check-structures-sanity compile on windows 2020-03-12 10:02:21 -05:00
Ben Lubar 469c49c8b9
check-structures-sanity: keep track of whether data is within a larger structure 2020-03-11 17:49:34 -05:00