1197 lines
59 KiB
Plaintext
1197 lines
59 KiB
Plaintext
=== Scroll down for changes
|
|
|
|
===[[[
|
|
The text below is included in docs/Documentation.rst - see that file for more details on the changelog setup.
|
|
This is kept in this file as a quick syntax reference.
|
|
|
|
===help
|
|
|
|
changelog.txt uses a syntax similar to RST, with a few special sequences:
|
|
|
|
- ``===`` indicates the start of a comment
|
|
- ``#`` indicates the start of a release name (do not include "DFHack")
|
|
- ``##`` indicates the start of a section name (this must be listed in ``gen_changelog.py``)
|
|
- ``-`` indicates the start of a changelog entry. **Note:** an entry currently must be only one line.
|
|
- ``:`` (colon followed by space) separates the name of a feature from a description of a change to that feature.
|
|
Changes made to the same feature are grouped if they end up in the same section.
|
|
- ``:\`` (colon, backslash, space) avoids the above behavior
|
|
- ``- @`` (the space is optional) indicates the start of an entry that should only be displayed in NEWS-dev.rst.
|
|
Use this sparingly, e.g. for immediate fixes to one development build in another development build that
|
|
are not of interest to users of stable builds only.
|
|
- Three ``[`` characters indicate the start of a block (possibly a comment) that
|
|
spans multiple lines. Three ``]`` characters indicate the end of such a block.
|
|
- ``!`` immediately before a phrase set up to be replaced (see gen_changelog.py) stops that occurrence from being replaced.
|
|
|
|
===end
|
|
]]]
|
|
|
|
================================================================================
|
|
======== IMPORTANT: rename this, and add a new "future" section, BEFORE ========
|
|
======== making a new DFHack release, even if the only changes made ========
|
|
======== were in submodules with their own changelogs! ========
|
|
================================================================================
|
|
|
|
# Future
|
|
|
|
# 0.47.04-r5
|
|
|
|
## Fixes
|
|
- `embark-assistant`: fixed order of factors when calculating min temperature
|
|
- `embark-assistant`: improved performance of surveying
|
|
- `quickfort`: fixed eventual crashes when creating zones
|
|
- `quickfort`: fixed library aliases for tallow and iron, copper, and steel weapons
|
|
- `seedwatch`: fixed an issue where the plugin would disable itself on map load
|
|
- `search`: fixed crash when searching the ``k`` sidebar and navigating to another tile with certain keys, like ``<`` or ``>``
|
|
- `stockflow`: fixed ``j`` character being intercepted when naming stockpiles
|
|
- `stockpiles`: no longer outputs hotkey help text beneath `stockflow` hotkey help text
|
|
|
|
## Misc Improvements
|
|
- Lua label widgets (used in all standard message boxes) are now scrollable with Up/Down/PgUp/PgDn keys
|
|
- `autofarm`: now fallows farms if all plants have reached the desired count
|
|
- `buildingplan`: added ability to set global settings from the console, e.g. ``buildingplan set boulders false``
|
|
- `buildingplan`: added "enable all" option for buildingplan (so you don't have to enable all building types individually). This setting is not persisted (just like quickfort_mode is not persisted), but it can be set from onMapLoad.init
|
|
- `buildingplan`: modified ``Planning Mode`` status in the UI to show whether the plugin is in quickfort mode, "enable all" mode, or whether just the building type is enabled.
|
|
- `quickfort`: Dreamfort blueprint set improvements: added a streamlined checklist for all required dreamfort commands and gave names to stockpiles, levers, bridges, and zones
|
|
- `quickfort`: added aliases for bronze weapons and armor
|
|
- `quickfort`: added alias for tradeable crafts
|
|
|
|
## Lua
|
|
- ``dfhack.run_command()``: changed to interface directly with the console when possible, which allows interactive commands and commands that detect the console encoding to work properly
|
|
- ``processArgsGetopt()`` added to utils.lua, providing a callback interface for parameter parsing and getopt-like flexibility for parameter ordering and combination (see docs in ``library/lua/utils.lua`` and ``library/lua/3rdparty/alt_getopt.lua`` for details).
|
|
|
|
## Documentation
|
|
- Added documentation for Lua's ``dfhack.run_command()`` and variants
|
|
|
|
# 0.47.04-r4
|
|
|
|
## Fixes
|
|
- Fixed an issue on some Linux systems where DFHack installed through a package manager would attempt to write files to a non-writable folder (notably when running `exportlegends` or `gui/autogems`)
|
|
- `buildingplan`: fixed an issue preventing artifacts from being matched when the maximum item quality is set to ``artifacts``
|
|
- `buildingplan`: stopped erroneously matching items to buildings while the game is paused
|
|
- `buildingplan`: fixed a crash when pressing 0 while having a noble room selected
|
|
- `dwarfvet`: fixed a crash that could occur when discharging patients
|
|
- `dwarfmonitor`: fixed a crash when opening the ``prefs`` screen if units have vague preferences
|
|
- `embark-assistant`: fixed an issue causing incursion resource matching (e.g. sand/clay) to skip some tiles if those resources were provided only through incursions
|
|
- `embark-assistant`: corrected river size determination by performing it at the MLT level rather than the world tile level
|
|
- `search`: fixed an issue where search options might not display if screens were destroyed and recreated programmatically (e.g. with `quickfort`)
|
|
- `workflow`: fixed an error when creating constraints on "mill plants" jobs and some other plant-related jobs
|
|
- `zone`: fixed an issue causing the ``enumnick`` subcommand to run when attempting to run ``assign``, ``unassign``, or ``slaughter``
|
|
|
|
## Misc Improvements
|
|
- `buildingplan`: added support for all buildings, furniture, and constructions (except for instruments)
|
|
- `buildingplan`: added support for respecting building job_item filters when matching items, so you can set your own programmatic filters for buildings before submitting them to buildingplan
|
|
- `buildingplan`: changed default filter setting for max quality from ``artifact`` to ``masterwork``
|
|
- `buildingplan`: changed min quality adjustment hotkeys from 'qw' to 'QW' to avoid conflict with existing hotkeys for setting roller speed - also changed max quality adjustment hotkeys from 'QW' to 'AS' to make room for the min quality hotkey changes
|
|
- `buildingplan`: added a new global settings page accessible via the ``G`` hotkey when on any building build screen; ``Quickfort Mode`` toggle for legacy Python Quickfort has been moved to this page
|
|
- `buildingplan`: added new global settings for whether generic building materials should match blocks, boulders, logs, and/or bars - defaults are everything but bars
|
|
- `embark-assistant`: split the lair types displayed on the local map into mound, burrow, and lair
|
|
- `probe`: added more output for designations and tile occupancy
|
|
- `quickfort`: The Dreamfort sample blueprints now have complete walkthroughs for each fort level and importable orders that automate basic fort stock management
|
|
- `quickfort`: added more blueprints to the blueprints library: several bedroom layouts, the Saracen Crypts, and the complete fortress example from Python Quickfort: TheQuickFortress
|
|
|
|
## Documentation
|
|
- `quickfort-alias-guide`: alias syntax and alias standard library documentation for `quickfort` blueprints
|
|
- `quickfort-library-guide`: overview of the quickfort blueprint library
|
|
|
|
## API
|
|
- `buildingplan`: added Lua interface API
|
|
- ``dfhack.job.isSuitableMaterial()``: added an item type parameter so the ``non_economic`` flag can be properly handled (it was being matched for all item types instead of just boulders)
|
|
- ``Buildings::setSize()``: changed to reuse existing extents when possible
|
|
|
|
## Lua
|
|
- ``utils.addressof()``: fixed for raw userdata
|
|
|
|
# 0.47.04-r3
|
|
|
|
## New Plugins
|
|
- `xlsxreader`: provides an API for Lua scripts to read Excel spreadsheets
|
|
|
|
## Fixes
|
|
- `buildingplan`: fixed handling of buildings that require buckets
|
|
- `getplants`: fixed a crash that could occur on some maps
|
|
- `search`: fixed an issue causing item counts on the trade screen to display inconsistently when searching
|
|
- `stockpiles`: fixed a crash when loading food stockpiles
|
|
- `stockpiles`: fixed an error when saving furniture stockpiles
|
|
|
|
## Misc Improvements
|
|
- `createitem`: added support for plant growths (fruit, berries, leaves, etc.)
|
|
- `createitem`: added an ``inspect`` subcommand to print the item and material tokens of existing items, which can be used to create additional matching items
|
|
- `embark-assistant`: added support for searching for taller waterfalls (up to 50 z-levels tall)
|
|
- `search`: added support for searching for names containing non-ASCII characters using their ASCII equivalents
|
|
- `stocks`: added support for searching for items containing non-ASCII characters using their ASCII equivalents
|
|
- `zone`: added an ``enumnick`` subcommand to assign enumerated nicknames (e.g "Hen 1", "Hen 2"...)
|
|
- `zone`: added slaughter indication to ``uinfo`` output
|
|
|
|
## Documentation
|
|
- Fixed syntax highlighting of most code blocks to use the appropriate language (or no language) instead of Python
|
|
|
|
## API
|
|
- Added ``DFHack::to_search_normalized()`` (Lua: ``dfhack.toSearchNormalized()``) to convert non-ASCII alphabetic characters to their ASCII equivalents
|
|
|
|
# 0.47.04-r2
|
|
|
|
## New Tweaks
|
|
- `tweak` do-job-now: adds a job priority toggle to the jobs list
|
|
- `tweak` reaction-gloves: adds an option to make reactions produce gloves in sets with correct handedness
|
|
|
|
## Fixes
|
|
- Fixed a segfault when attempting to start a headless session with a graphical PRINT_MODE setting
|
|
- Fixed an issue with the macOS launcher failing to un-quarantine some files
|
|
- Linux: fixed ``dfhack.getDFPath()`` (Lua) and ``Process::getPath()`` (C++) to always return the DF root path, even if the working directory has changed
|
|
- `getplants`: fixed issues causing plants to be collected even if they have no growths (or unripe growths)
|
|
- `labormanager`: fixed handling of new jobs in 0.47
|
|
- `labormanager`: fixed an issue preventing custom furnaces from being built
|
|
- `embark-assistant`: fixed a couple of incursion handling bugs.
|
|
- Fixed ``Units::isEggLayer``, ``Units::isGrazer``, ``Units::isMilkable``, ``Units::isTrainableHunting``, ``Units::isTrainableWar``, and ``Units::isTamable`` ignoring the unit's caste
|
|
- `RemoteFortressReader`: fixed a couple crashes that could result from decoding invalid enum items (``site_realization_building_type`` and ``improvement_type``)
|
|
- `RemoteFortressReader`: fixed an issue that could cause block coordinates to be incorrect
|
|
- `rendermax`: fixed a hang that could occur when enabling some renderers, notably on Linux
|
|
- `stonesense`: fixed a crash when launching Stonesense
|
|
- `stonesense`: fixed some issues that could cause the splash screen to hang
|
|
|
|
## Misc Improvements
|
|
- Linux/macOS: Added console keybindings for deleting words (Alt+Backspace and Alt+d in most terminals)
|
|
- `blueprint`: now writes blueprints to the ``blueprints/`` subfolder instead of the df root folder
|
|
- `blueprint`: now automatically creates folder trees when organizing blueprints into subfolders (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
|
|
- `confirm`: added a confirmation dialog for convicting dwarves of crimes
|
|
- `manipulator`: added a new column option to display units' goals
|
|
|
|
## API
|
|
- Added ``Filesystem::mkdir_recursive``
|
|
- Extended ``Filesystem::listdir_recursive`` to optionally make returned filenames relative to the start directory
|
|
- ``Units``: added goal-related functions: ``getGoalType()``, ``getGoalName()``, ``isGoalAchieved()``
|
|
|
|
## Internals
|
|
- Added support for splitting scripts into multiple files in the ``scripts/internal`` folder without polluting the output of `ls`
|
|
|
|
## Lua
|
|
- Added a ``ref_target`` field to primitive field references, corresponding to the ``ref-target`` XML attribute
|
|
- Made ``dfhack.units.getRaceNameById()``, ``dfhack.units.getRaceBabyNameById()``, and ``dfhack.units.getRaceChildNameById()`` available to Lua
|
|
|
|
## Ruby
|
|
- Updated ``item_find`` and ``building_find`` to use centralized logic that works on more screens
|
|
|
|
## Documentation
|
|
- Expanded the installation guide
|
|
- Added some new dev-facing pages, including dedicated pages about the remote API, memory research, and documentation
|
|
- Made a couple theme adjustments
|
|
|
|
# 0.47.04-r1
|
|
|
|
## Fixes
|
|
- Fixed translation of certain types of in-game names
|
|
- Fixed a crash in ``find()`` for some types when no world is loaded
|
|
- `autogems`: fixed an issue with binned gems being ignored in linked stockpiles
|
|
- `stocks`: fixed display of book titles
|
|
- `tweak` embark-profile-name: fixed handling of the native shift+space key
|
|
|
|
## Misc Improvements
|
|
- ``dfhack.init-example``: enabled `autodump`
|
|
- `getplants`: added switches for designations for farming seeds and for max number designated per plant
|
|
- `manipulator`: added intrigue to displayed skills
|
|
- `search`: added support for the fortress mode justice screen
|
|
|
|
## API
|
|
- Added ``Items::getBookTitle`` to get titles of books. Catches titles buried in improvements, unlike getDescription.
|
|
|
|
## Lua
|
|
- ``pairs()`` now returns available class methods for DF types
|
|
|
|
# 0.47.04-beta1
|
|
|
|
## Fixes
|
|
- Fixed a crash when starting DFHack in headless mode with no terminal
|
|
|
|
## Misc Improvements
|
|
- Added "bit" suffix to downloads (e.g. 64-bit)
|
|
- Tests:
|
|
- moved from DF folder to hack/scripts folder, and disabled installation by default
|
|
- made test runner script more flexible
|
|
- `dfhack-run`: added color output support
|
|
- `embark-assistant`:
|
|
- updated embark aquifer info to show all aquifer kinds present
|
|
- added neighbor display, including kobolds (SKULKING) and necro tower count
|
|
- updated aquifer search criteria to handle the new variation
|
|
- added search criteria for embark initial tree cover
|
|
- added search criteria for necro tower count, neighbor civ count, and specific neighbors. Should handle additional entities, but not tested
|
|
|
|
## Internals
|
|
- Improved support for tagged unions, allowing tools to access union fields more safely
|
|
- Added separate changelogs in the scripts and df-structures repos
|
|
- Moved ``reversing`` scripts to df_misc repo
|
|
|
|
# 0.47.03-beta1
|
|
|
|
## New Scripts
|
|
- `devel/sc`: checks size of structures
|
|
- `devel/visualize-structure`: displays the raw memory of a structure
|
|
|
|
## Fixes
|
|
- @ `adv-max-skills`: fixed for 0.47
|
|
- `deep-embark`:
|
|
- prevented running in non-fortress modes
|
|
- ensured that only the newest wagon is deconstructed
|
|
- `full-heal`:
|
|
- fixed issues with removing corpses
|
|
- fixed resurrection for non-historical figures
|
|
- @ `modtools/create-unit`: added handling for arena tame setting
|
|
- `teleport`: fixed setting new tile occupancy
|
|
|
|
## Misc Improvements
|
|
- `deep-embark`:
|
|
- improved support for using directly from the DFHack console
|
|
- added a ``-clear`` option to cancel
|
|
- `exportlegends`:
|
|
- added identity information
|
|
- added creature raw names and flags
|
|
- `gui/prerelease-warning`: updated links and information about nightly builds
|
|
- `modtools/syndrome-trigger`: enabled simultaneous use of ``-synclass`` and ``-syndrome``
|
|
- `repeat`: added ``-list`` option
|
|
|
|
## Structures
|
|
- Dropped support for 0.44.12-0.47.02
|
|
- ``abstract_building_type``: added types (and subclasses) new to 0.47
|
|
- ``agreement_details_type``: added enum
|
|
- ``agreement_details``: added struct type (and many associated data types)
|
|
- ``agreement_party``: added struct type
|
|
- ``announcement_type``: added types new to 0.47
|
|
- ``artifact_claim_type``: added enum
|
|
- ``artifact_claim``: added struct type
|
|
- ``breath_attack_type``: added ``SHARP_ROCK``
|
|
- ``building_offering_placest``: new class
|
|
- ``building_type``: added ``OfferingPlace``
|
|
- ``creature_interaction_effect``: added subclasses new to 0.47
|
|
- ``creature_raw_flags``: identified several more items
|
|
- ``creature_raw_flags``: renamed many items to match DF names
|
|
- ``caste_raw_flags``: renamed many items to match DF names
|
|
- ``d_init``: added settings new to 0.47
|
|
- ``entity_name_type``: added ``MERCHANT_COMPANY``, ``CRAFT_GUILD``
|
|
- ``entity_position_responsibility``: added values new to 0.47
|
|
- ``fortress_type``: added enum
|
|
- ``general_ref_type``: added ``UNIT_INTERROGATEE``
|
|
- ``ghost_type``: added ``None`` value
|
|
- ``goal_type``: added goals types new to 0.47
|
|
- ``histfig_site_link``: added subclasses new to 0.47
|
|
- ``history_event_collection``: added subtypes new to 0.47
|
|
- ``history_event_context``: added lots of new fields
|
|
- ``history_event_reason``: added captions for all items
|
|
- ``history_event_reason``: added items new to 0.47
|
|
- ``history_event_type``: added types for events new to 0.47, as well as corresponding ``history_event`` subclasses (too many to list here)
|
|
- ``honors_type``: added struct type
|
|
- ``interaction_effect``: added subtypes new to 0.47
|
|
- ``interaction_source_experimentst``: added class type
|
|
- ``interaction_source_usage_hint``: added values new to 0.47
|
|
- ``interface_key``: added items for keys new to 0.47
|
|
- ``job_skill``: added ``INTRIGUE``, ``RIDING``
|
|
- ``lair_type``: added enum
|
|
- ``monument_type``: added enum
|
|
- ``next_global_id``: added enum
|
|
- ``poetic_form_action``: added ``Beseech``
|
|
- ``setup_character_info``: expanded significantly in 0.47
|
|
- ``text_system``: added layout for struct
|
|
- ``tile_occupancy``: added ``varied_heavy_aquifer``
|
|
- ``tool_uses``: added items: ``PLACE_OFFERING``, ``DIVINATION``, ``GAMES_OF_CHANCE``
|
|
- ``viewscreen_counterintelligencest``: new class (only layout identified so far)
|
|
|
|
# 0.44.12-r3
|
|
|
|
## New Plugins
|
|
- `autoclothing`: automatically manage clothing work orders
|
|
- `autofarm`: replaces the previous Ruby script of the same name, with some fixes
|
|
- `map-render`: allows programmatically rendering sections of the map that are off-screen
|
|
- `tailor`: automatically manages keeping your dorfs clothed
|
|
|
|
## New Scripts
|
|
- `assign-attributes`: changes the attributes of a unit
|
|
- `assign-beliefs`: changes the beliefs of a unit
|
|
- `assign-facets`: changes the facets (traits) of a unit
|
|
- `assign-goals`: changes the goals of a unit
|
|
- `assign-preferences`: changes the preferences of a unit
|
|
- `assign-profile`: sets a dwarf's characteristics according to a predefined profile
|
|
- `assign-skills`: changes the skills of a unit
|
|
- `combat-harden`: sets a unit's combat-hardened value to a given percent
|
|
- `deep-embark`: allows embarking underground
|
|
- `devel/find-twbt`: finds a TWBT-related offset needed by the new `map-render` plugin
|
|
- `dwarf-op`: optimizes dwarves for fort-mode work; makes managing labors easier
|
|
- `forget-dead-body`: removes emotions associated with seeing a dead body
|
|
- `gui/create-tree`: creates a tree at the selected tile
|
|
- `linger`: takes over your killer in adventure mode
|
|
- `modtools/create-tree`: creates a tree
|
|
- `modtools/pref-edit`: add, remove, or edit the preferences of a unit
|
|
- `modtools/set-belief`: changes the beliefs (values) of units
|
|
- `modtools/set-need`: sets and edits unit needs
|
|
- `modtools/set-personality`: changes the personality of units
|
|
- `modtools/spawn-liquid`: spawns water or lava at the specified coordinates
|
|
- `set-orientation`: edits a unit's orientation
|
|
- `unretire-anyone`: turns any historical figure into a playable adventurer
|
|
|
|
## Fixes
|
|
- Fixed a crash in the macOS/Linux console when the prompt was wider than the screen width
|
|
- Fixed some cases where Lua filtered lists would not properly intercept keys, potentially triggering other actions on the same screen
|
|
- Fixed inconsistent results from ``Units::isGay`` for asexual units
|
|
- `autofarm`:
|
|
- fixed biome detection to properly determine crop assignments on surface farms
|
|
- reimplemented as a C++ plugin to make proper biome detection possible
|
|
- `bodyswap`: fixed companion list not being updated often enough
|
|
- `cxxrandom`: removed some extraneous debug information
|
|
- `digfort`: now accounts for z-level changes when calculating maximum y dimension
|
|
- `embark-assistant`:
|
|
- fixed bug causing crash on worlds without generated metals (as well as pruning vectors as originally intended).
|
|
- fixed bug causing mineral matching to fail to cut off at the magma sea, reporting presence of things that aren't (like DF does currently).
|
|
- fixed bug causing half of the river tiles not to be recognized.
|
|
- added logic to detect some river tiles DF doesn't generate data for (but are definitely present).
|
|
- `eventful`: fixed invalid building ID in some building events
|
|
- `exportlegends`: now escapes special characters in names properly
|
|
- `getplants`: fixed designation of plants out of season (note that picked plants are still designated incorrectly)
|
|
- `gui/autogems`: fixed error when no world is loaded
|
|
- `gui/companion-order`:
|
|
- fixed error when resetting group leaders
|
|
- ``leave`` now properly removes companion links
|
|
- `gui/create-item`: fixed module support - can now be used from other scripts
|
|
- `gui/stamper`:
|
|
- stopped "invert" from resetting the designation type
|
|
- switched to using DF's designation keybindings instead of custom bindings
|
|
- fixed some typos and text overlapping
|
|
- `modtools/create-unit`:
|
|
- fixed an error associating historical entities with units
|
|
- stopped recalculating health to avoid newly-created citizens triggering a "recover wounded" job
|
|
- fixed units created in arena mode having blank names
|
|
- fixed units created in arena mode having the wrong race and/or interaction effects applied after creating units manually in-game
|
|
- stopped units from spawning with extra items or skills previously selected in the arena
|
|
- stopped setting some unneeded flags that could result in glowing creature tiles
|
|
- set units created in adventure mode to have no family, instead of being related to the first creature in the world
|
|
- `modtools/reaction-product-trigger`:
|
|
- fixed an error dealing with reactions in adventure mode
|
|
- blocked ``\\BUILDING_ID`` for adventure mode reactions
|
|
- fixed ``-clear`` to work without passing other unneeded arguments
|
|
- `modtools/reaction-trigger`:
|
|
- fixed a bug when determining whether a command was run
|
|
- fixed handling of ``-resetPolicy``
|
|
- `mousequery`: fixed calculation of map dimensions, which was sometimes preventing scrolling the map with the mouse when TWBT was enabled
|
|
- `RemoteFortressReader`:
|
|
- fixed a crash when a unit's path has a length of 0
|
|
- `stonesense`:
|
|
- fixed crash due to wagons and other soul-less creatures
|
|
- `tame`: now sets the civ ID of tamed animals (fixes compatibility with `autobutcher`)
|
|
- `title-folder`: silenced error when ``PRINT_MODE`` is set to ``TEXT``
|
|
|
|
## Misc Improvements
|
|
- Added a note to `dfhack-run` when called with no arguments (which is usually unintentional)
|
|
- On macOS, the launcher now attempts to un-quarantine the rest of DFHack
|
|
- `bodyswap`: added arena mode support
|
|
- `createitem`: added a list of valid castes to the "invalid caste" error message, for convenience
|
|
- `combine-drinks`: added more default output, similar to `combine-plants`
|
|
- `devel/export-dt-ini`: added more size information needed by newer Dwarf Therapist versions
|
|
- `dwarfmonitor`: enabled widgets to access other scripts and plugins by switching to the core Lua context
|
|
- `embark-assistant`:
|
|
- added an in-game option to activate on the embark screen
|
|
- changed waterfall detection to look for level drop rather than just presence
|
|
- changed matching to take incursions, i.e. parts of other biomes, into consideration when evaluating tiles. This allows for e.g. finding multiple biomes on single tile embarks.
|
|
- changed overlay display to show when incursion surveying is incomplete
|
|
- changed overlay display to show evil weather
|
|
- added optional parameter "fileresult" for crude external harness automated match support
|
|
- improved focus movement logic to go to only required world tiles, increasing speed of subsequent searches considerably
|
|
- `exportlegends`: added rivers to custom XML export
|
|
- `exterminate`: added support for a special ``enemy`` caste
|
|
- `gui/gm-unit`: added support for editing:
|
|
- added attribute editor
|
|
- added orientation editor
|
|
- added editor for bodies and body parts
|
|
- added color editor
|
|
- added belief editor
|
|
- added personality editor
|
|
- `modtools/create-item`:
|
|
- documented already-existing ``-quality`` option
|
|
- `modtools/create-unit`:
|
|
- added the ability to specify ``\\LOCAL`` for the fort group entity
|
|
- now enables the default labours for adult units with CAN_LEARN.
|
|
- now sets historical figure orientation.
|
|
- improved speed of creating multiple units at once
|
|
- made the script usable as a module (from other scripts)
|
|
- `modtools/reaction-trigger`:
|
|
- added ``-ignoreWorker``: ignores the worker when selecting the targets
|
|
- changed the default behavior to skip inactive/dead units; added ``-dontSkipInactive`` to include creatures that are inactive
|
|
- added ``-range``: controls how far elligible targets can be from the workshop
|
|
- syndromes now are applied before commands are run, not after
|
|
- if both a command and a syndrome are given, the command only runs if the syndrome could be applied
|
|
- `mousequery`: made it more clear when features are enabled
|
|
- `RemoteFortressReader`:
|
|
- added a basic framework for controlling and reading the menus in DF (currently only supports the building menu)
|
|
- added support for reading item raws
|
|
- added a check for whether or not the game is currently saving or loading, for utilities to check if it's safe to read from DF
|
|
- added unit facing direction estimate and position within tiles
|
|
- added unit age
|
|
- added unit wounds
|
|
- added tree information
|
|
- added check for units' current jobs when calculating the direction they are facing
|
|
|
|
## API
|
|
- Added ``Maps::GetBiomeType`` and ``Maps::GetBiomeTypeByRef`` to infer biome types properly
|
|
- Added ``Units::getPhysicalDescription`` (note that this depends on the ``unit_get_physical_description`` offset, which is not yet available for all DF builds)
|
|
- Added new ``plugin_load_data`` and ``plugin_save_data`` events for plugins to load/save persistent data
|
|
|
|
## Internals
|
|
- Added new Persistence module
|
|
- Persistent data is now stored in JSON files instead of historical figures - existing data will be migrated when saving
|
|
- Cut down on internal DFHack dependencies to improve build times
|
|
- Improved concurrency in event and server handlers
|
|
- `stonesense`: fixed some OpenGL build issues on Linux
|
|
|
|
## Lua
|
|
- Exposed ``gui.dwarfmode.get_movement_delta`` and ``gui.dwarfmode.get_hotkey_target``
|
|
- ``dfhack.run_command`` now returns the command's return code
|
|
|
|
## Ruby
|
|
- Made ``unit_ishostile`` consistently return a boolean
|
|
|
|
## Structures
|
|
- Added ``unit_get_physical_description`` function offset on some platforms
|
|
- Added/identified types:
|
|
- ``assume_identity_mode``
|
|
- ``musical_form_purpose``
|
|
- ``musical_form_style``
|
|
- ``musical_form_pitch_style``
|
|
- ``musical_form_feature``
|
|
- ``musical_form_vocals``
|
|
- ``musical_form_melodies``
|
|
- ``musical_form_interval``
|
|
- ``unit_emotion_memory``
|
|
- ``twbt_render_map``: added for 64-bit 0.44.12 (for `map-render`)
|
|
- ``personality_facet_type``, ``value_type``: added ``NONE`` values
|
|
- ``need_type``: fixed ``PrayOrMeditate`` typo
|
|
|
|
# 0.44.12-r2
|
|
|
|
## New Plugins
|
|
- `debug`: manages runtime debug print category filtering
|
|
- `nestboxes`: automatically scan for and forbid fertile eggs incubating in a nestbox
|
|
|
|
## New Scripts
|
|
- `devel/query`: searches for field names in DF objects
|
|
- `extinguish`: puts out fires
|
|
- `tame`: sets tamed/trained status of animals
|
|
|
|
## Fixes
|
|
- `building-hacks`: fixed error when dealing with custom animation tables
|
|
- `devel/test-perlin`: fixed Lua error (``math.pow()``)
|
|
- `embark-assistant`: fixed crash when entering finder with a 16x16 embark selected, and added 16 to dimension choices
|
|
- `embark-skills`: fixed missing ``skill_points_remaining`` field
|
|
- `full-heal`:
|
|
- stopped wagon resurrection
|
|
- fixed a minor issue with post-resurrection hostility
|
|
- `gui/companion-order`:
|
|
- fixed issues with printing coordinates
|
|
- fixed issues with move command
|
|
- fixed cheat commands (and removed "Power up", which was broken)
|
|
- `gui/gm-editor`: fixed reinterpret cast (``r``)
|
|
- `gui/pathable`: fixed error when sidebar is hidden with ``Tab``
|
|
- `labormanager`:
|
|
- stopped assigning labors to ineligible dwarves, pets, etc.
|
|
- stopped assigning invalid labors
|
|
- added support for crafting jobs that use pearl
|
|
- fixed issues causing cleaning jobs to not be assigned
|
|
- added support for disabling management of specific labors
|
|
- `prospector`: (also affected `embark-tools`) - fixed a crash when prospecting an unusable site (ocean, mountains, etc.) with a large default embark size in d_init.txt (e.g. 16x16)
|
|
- `siege-engine`: fixed a few Lua errors (``math.pow()``, ``unit.relationship_ids``)
|
|
- `tweak`: fixed ``hotkey-clear``
|
|
|
|
## Misc Improvements
|
|
- `armoks-blessing`: improved documentation to list all available arguments
|
|
- `devel/export-dt-ini`:
|
|
- added viewscreen offsets for DT 40.1.2
|
|
- added item base flags offset
|
|
- added needs offsets
|
|
- `embark-assistant`:
|
|
- added match indicator display on the right ("World") map
|
|
- changed 'c'ancel to abort find if it's under way and clear results if not, allowing use of partial surveys.
|
|
- added Coal as a search criterion, as well as a coal indication as current embark selection info.
|
|
- `full-heal`:
|
|
- added ``-all``, ``-all_civ`` and ``-all_citizens`` arguments
|
|
- added module support
|
|
- now removes historical figure death dates and ghost data
|
|
- `growcrops`: added ``all`` argument to grow all crops
|
|
- `gui/load-screen`: improved documentation
|
|
- `labormanager`: now takes nature value into account when assigning jobs
|
|
- `open-legends`: added warning about risk of save corruption and improved related documentation
|
|
- `points`: added support when in ``viewscreen_setupdwarfgamest`` and improved error messages
|
|
- `siren`: removed break handling (relevant ``misc_trait_type`` was no longer used - see "Structures" section)
|
|
|
|
## Internals
|
|
- Linux/macOS: changed recommended build backend from Make to Ninja (Make builds will be significantly slower now)
|
|
- Added a usable unit test framework for basic tests, and a few basic tests
|
|
- Core: various thread safety and memory management improvements
|
|
- Fixed CMake build dependencies for generated header files
|
|
- Fixed custom ``CMAKE_CXX_FLAGS`` not being passed to plugins
|
|
- Changed ``plugins/CMakeLists.custom.txt`` to be ignored by git and created (if needed) at build time instead
|
|
- Added ``CMakeSettings.json`` with intellisense support
|
|
|
|
## Lua
|
|
- ``utils``: new ``OrderedTable`` class
|
|
|
|
## Structures
|
|
- Win32: added missing vtables for ``viewscreen_storesst`` and ``squad_order_rescue_hfst``
|
|
- ``activity_event_performancest``: renamed poem as written_content_id
|
|
- ``dance_form``: named musical_form_id and musical_written_content_id
|
|
- ``incident_sub6_performance.participants``: named performance_event and role_index
|
|
- ``incident_sub6_performance``: made performance_event an enum
|
|
- ``incident_sub6_performance``: named poetic_form_id, musical_form_id, and dance_form_id
|
|
- ``musical_form_instruments``: named minimum_required and maximum_permitted
|
|
- ``musical_form``: named voices field
|
|
- ``poetic_form``: identified many fields and related enum/bitfield types
|
|
- ``setup_character_info``: identified ``skill_points_remaining`` (for `embark-skills`)
|
|
- ``unit_thought_type``: added new expulsion thoughts from 0.44.12
|
|
- ``viewscreen_layer_militaryst``: identified ``equip.assigned.assigned_items``
|
|
- ``world_data``: added ``mountain_peak_flags`` type, including ``is_volcano``
|
|
- ``written_content``: named poetic_form
|
|
- ``unit_action.attack``: identified ``attack_skill``
|
|
- ``unit_action.attack``: added ``lightly_tap`` and ``spar_report`` flags
|
|
- ``misc_trait_type``: removed ``LikesOutdoors``, ``Hardened``, ``TimeSinceBreak``, ``OnBreak`` (all unused by DF)
|
|
- ``unit_personality``: identified ``stress_drain``, ``stress_boost``, ``likes_outdoors``, ``combat_hardened``
|
|
- ``plant_tree_tile``: gave connection bits more meaningful names (e.g. ``connection_east`` instead of ``thick_branches_1``)
|
|
- ``plant_tree_info``: identified ``extent_east``, etc.
|
|
- ``ui``: fixed alignment of ``main`` and ``squads`` (fixes `tweak` hotkey-clear and DF-AI)
|
|
- ``ui.main``: identified ``fortress_site``
|
|
- ``ui.squads``: identified ``kill_rect_targets_scroll``
|
|
- ``world_site``: identified names and/or types of some fields
|
|
- ``world_history``: identified names and/or types of some fields
|
|
- ``viewscreen_setupadventurest``: identified some nemesis and personality fields, and ``page.ChooseHistfig``
|
|
- ``unit_storage_status``: newly identified type, stores noble holdings information (used in ``viewscreen_layer_noblelistst``)
|
|
- ``viewscreen_layer_noblelistst``: identified ``storage_status`` (see ``unit_storage_status`` type)
|
|
- ``viewscreen_layer_arena_creaturest``: identified item- and name-related fields
|
|
- ``viewscreen_new_regionst``: identified ``rejection_msg``, ``raw_folder``, ``load_world_params``
|
|
- ``viewscreen_new_regionst``: changed many ``int8_t`` fields to ``bool``
|
|
- ``unit_flags3``: identified ``marked_for_gelding``
|
|
- ``body_part_status``: identified ``gelded``
|
|
|
|
## API
|
|
- New debug features related to `debug` plugin:
|
|
- Classes (C++ only): ``Signal<Signature, type_tag>``, ``DebugCategory``, ``DebugManager``
|
|
- Macros: ``TRACE``, ``DEBUG``, ``INFO``, ``WARN``, ``ERR``, ``DBG_DECLARE``, ``DBG_EXTERN``
|
|
|
|
================================================================================
|
|
# 0.44.12-r1
|
|
|
|
## Fixes
|
|
-@ Console: fixed crash when entering long commands on Linux/macOS
|
|
-@ Removed jsoncpp's ``include`` and ``lib`` folders from DFHack builds/packages
|
|
- Fixed special characters in `command-prompt` and other non-console in-game outputs on Linux/macOS (in tools using ``df2console``)
|
|
- `die`: fixed Windows crash in exit handling
|
|
- `dwarfmonitor`, `manipulator`: fixed stress cutoffs
|
|
- `modtools/force`: fixed a bug where the help text would always be displayed and nothing useful would happen
|
|
- `ruby`: fixed calling conventions for vmethods that return strings (currently ``enabler.GetKeyDisplay()``)
|
|
- `startdwarf`: fixed on 64-bit Linux
|
|
|
|
## Misc Improvements
|
|
- Reduced time for designation jobs from tools like `digv` to be assigned workers
|
|
- `embark-assistant`:
|
|
- Switched to standard scrolling keys, improved spacing slightly
|
|
- Introduced scrolling of Finder search criteria, removing requirement for 46 lines to work properly (Help/Info still formatted for 46 lines).
|
|
- Added Freezing search criterion, allowing searches for NA/Frozen/At_Least_Partial/Partial/At_Most_Partial/Never Freezing embarks.
|
|
- `rejuvenate`:
|
|
- Added ``-all`` argument to apply to all citizens
|
|
- Added ``-force`` to include units under 20 years old
|
|
- Clarified documentation
|
|
|
|
## API
|
|
- Added to ``Units`` module:
|
|
- ``getStressCategory(unit)``
|
|
- ``getStressCategoryRaw(level)``
|
|
- ``stress_cutoffs`` (Lua: ``getStressCutoffs()``)
|
|
|
|
## Internals
|
|
- Changed default build architecture to 64-bit
|
|
- Added documentation for all RPC functions and a build-time check
|
|
- Added support for build IDs to development builds
|
|
- Use ``dlsym(3)`` to find vtables from libgraphics.so
|
|
|
|
## Structures
|
|
- Added ``start_dwarf_count`` on 64-bit Linux again and fixed scanning script
|
|
- ``army_controller``: added new vector from 0.44.11
|
|
-@ ``viewscreen_civlistst``: split ``unk_20`` into 3 pointers
|
|
- ``belief_system``: new type, few fields identified
|
|
- ``mental_picture``: new type, some fields identified
|
|
- ``mission``: new type (used in ``viewscreen_civlistst``)
|
|
- ``mission_report``:
|
|
- new type (renamed, was ``mission`` before)
|
|
- identified some fields
|
|
- ``spoils_report``: new type, most fields identified
|
|
- ``viewscreen_civlistst``:
|
|
- identified new pages
|
|
- identified new messenger-related fields
|
|
- ``viewscreen_image_creatorst``:
|
|
- fixed layout
|
|
- identified many fields
|
|
- ``viewscreen_reportlistst``:
|
|
- added new mission and spoils report-related fields (fixed layout)
|
|
- ``world``:
|
|
- ``belief_systems``: identified
|
|
- ``world.languages``: identified (minimal information; whole languages stored elsewhere)
|
|
- ``world.status``:
|
|
- ``mission_reports``: renamed, was ``missions``
|
|
- ``spoils_reports``: identified
|
|
- ``world.unk_131ec0``, ``world.unk_131ef0``: researched layout
|
|
- ``world.worldgen_status``: identified many fields
|
|
|
|
================================================================================
|
|
# 0.44.12-alpha1
|
|
|
|
## Fixes
|
|
-@ macOS: fixed ``renderer`` vtable address on x64 (fixes `rendermax`)
|
|
- `stonesense`: fixed ``PLANT:DESERT_LIME:LEAF`` typo
|
|
|
|
## API
|
|
- Added C++-style linked list interface for DF linked lists
|
|
|
|
## Structures
|
|
- Dropped 0.44.11 support
|
|
- ``ui.squads``: Added fields new in 0.44.12
|
|
|
|
================================================================================
|
|
# 0.44.11-beta2.1
|
|
|
|
## Internals
|
|
-@ `stonesense`: fixed build
|
|
|
|
================================================================================
|
|
# 0.44.11-beta2
|
|
|
|
## Fixes
|
|
-@ Windows: Fixed console failing to initialize
|
|
- `command-prompt`: added support for commands that require a specific screen to be visible, e.g. `spotclean`
|
|
- `gui/workflow`: fixed advanced constraint menu for crafts
|
|
|
|
## API
|
|
- Added ``Screen::Hide`` to temporarily hide screens, like `command-prompt`
|
|
|
|
================================================================================
|
|
# 0.44.11-beta1
|
|
|
|
## Fixes
|
|
- Fixed displayed names (from ``Units::getVisibleName``) for units with identities
|
|
- Fixed potential memory leak in ``Screen::show()``
|
|
- `fix/dead-units`: fixed script trying to use missing isDiplomat function
|
|
|
|
## Misc Improvements
|
|
- Console:
|
|
- added support for multibyte characters on Linux/macOS
|
|
- made the console exit properly when an interactive command is active (`liquids`, `mode`, `tiletypes`)
|
|
- Made the ``DFHACK_PORT`` environment variable take priority over ``remote-server.json``
|
|
- Linux: added automatic support for GCC sanitizers in ``dfhack`` script
|
|
- `digfort`: added better map bounds checking
|
|
- `dfhack-run`: added support for port specified in ``remote-server.json``, to match DFHack's behavior
|
|
- `remove-stress`:
|
|
- added support for ``-all`` as an alternative to the existing ``all`` argument for consistency
|
|
- sped up significantly
|
|
- improved output/error messages
|
|
- now removes tantrums, depression, and obliviousness
|
|
- `ruby`: sped up handling of onupdate events
|
|
|
|
## API
|
|
- New functions:
|
|
- ``Units::isDiplomat(unit)``
|
|
- Exposed ``Screen::zoom()`` to C++ (was Lua-only)
|
|
|
|
## Lua
|
|
- Added ``printall_recurse`` to print tables and DF references recursively. It can be also used with ``^`` from the `lua` interpreter.
|
|
- ``gui.widgets``: ``List:setChoices`` clones ``choices`` for internal table changes
|
|
|
|
## Internals
|
|
- jsoncpp: updated to version 1.8.4 and switched to using a git submodule
|
|
|
|
## Structures
|
|
- ``history_event_entity_expels_hfst``: added (new in 0.44.11)
|
|
- ``history_event_site_surrenderedst``: added (new in 0.44.11)
|
|
- ``history_event_type``: added ``SITE_SURRENDERED``, ``ENTITY_EXPELS_HF`` (new in 0.44.11)
|
|
- ``syndrome``: identified a few fields
|
|
- ``viewscreen_civlistst``: fixed layout and identified many fields
|
|
|
|
================================================================================
|
|
# 0.44.11-alpha1
|
|
|
|
## Structures
|
|
- Dropped 0.44.10 support
|
|
- Added support for automatically sizing arrays indexed with an enum
|
|
- Removed stale generated CSV files and DT layouts from pre-0.43.05
|
|
- ``announcement_type``: new in 0.44.11: ``NEW_HOLDING``, ``NEW_MARKET_LINK``
|
|
- ``breath_attack_type``: added ``OTHER``
|
|
- ``historical_figure_info.relationships.list``: added ``unk_3a``-``unk_3c`` fields at end
|
|
- ``interface_key``: added bindings new in 0.44.11
|
|
- ``occupation_type``: new in 0.44.11: ``MESSENGER``
|
|
- ``profession``: new in 0.44.11: ``MESSENGER``
|
|
- ``ui_sidebar_menus``:
|
|
- ``unit.in_squad``: renamed to ``unit.squad_list_opened``, fixed location
|
|
- ``unit``: added ``expel_error`` and other unknown fields new in 0.44.11
|
|
- ``hospital``: added, new in 0.44.11
|
|
- ``num_speech_tokens``, ``unk_17d8``: moved out of ``command_line`` to fix layout on x64
|
|
-@ ``viewscreen_civlistst``: added a few new fields (incomplete)
|
|
- ``viewscreen_locationsst``: identified ``edit_input``
|
|
|
|
================================================================================
|
|
# 0.44.10-r2
|
|
|
|
## New Plugins
|
|
- `cxxrandom`: exposes some features of the C++11 random number library to Lua
|
|
|
|
## New Scripts
|
|
- `gui/stamper`: allows manipulation of designations by transforms such as translations, reflections, rotations, and inversion
|
|
- `add-recipe`: adds unknown crafting recipes to the player's civ
|
|
|
|
## Fixes
|
|
- Fixed many tools incorrectly using the ``dead`` unit flag (they should generally check ``flags2.killed`` instead)
|
|
- Fixed many tools passing incorrect arguments to printf-style functions, including a few possible crashes (`changelayer`, `follow`, `forceequip`, `generated-creature-renamer`)
|
|
- Fixed ``-g`` flag (GDB) in Linux ``dfhack`` script (particularly on x64)
|
|
- Fixed several bugs in Lua scripts found by static analysis (df-luacheck)
|
|
- `autochop`, `autodump`, `autogems`, `automelt`, `autotrade`, `buildingplan`, `dwarfmonitor`, `fix-unit-occupancy`, `fortplan`, `stockflow`: fix issues with periodic tasks not working for some time after save/load cycles
|
|
- `autogems`, `fix-unit-occupancy`: stopped running when a fort isn't loaded (e.g. while embarking)
|
|
- `buildingplan`, `fortplan`: stopped running before a world has fully loaded
|
|
- `autogems`:
|
|
- stop running repeatedly when paused
|
|
- fixed crash when furnaces are linked to same stockpiles as jeweler's workshops
|
|
- `ban-cooking`: fixed errors introduced by kitchen structure changes in 0.44.10-r1
|
|
- `remove-stress`: fixed an error when running on soul-less units (e.g. with ``-all``)
|
|
- `revflood`: stopped revealing tiles adjacent to tiles above open space inappropriately
|
|
- `dig`: fixed "Inappropriate dig square" announcements if digging job has been posted
|
|
- `stockpiles`: ``loadstock`` now sets usable and unusable weapon and armor settings
|
|
- `stocks`: stopped listing carried items under stockpiles where they were picked up from
|
|
- `deramp`: fixed deramp to find designations that already have jobs posted
|
|
- `fixnaked`: fixed errors due to emotion changes in 0.44
|
|
- `autounsuspend`: now skips planned buildings
|
|
|
|
## Misc Improvements
|
|
- Added script name to messages produced by ``qerror()`` in Lua scripts
|
|
- Fixed an issue in around 30 scripts that could prevent edits to the files (adding valid arguments) from taking effect
|
|
- Linux: Added several new options to ``dfhack`` script: ``--remotegdb``, ``--gdbserver``, ``--strace``
|
|
- `bodyswap`: improved error handling
|
|
- `buildingplan`: added max quality setting
|
|
- `caravan`: documented (new in 0.44.10-alpha1)
|
|
- `deathcause`: added "slaughtered" to descriptions
|
|
- `fix/retrieve-units`: now re-adds units to active list to counteract `fix/dead-units`
|
|
- `item-descriptions`: fixed several grammatical errors
|
|
- `modtools/create-unit`:
|
|
- added quantity argument
|
|
- now selects a caste at random if none is specified
|
|
- `mousequery`:
|
|
- migrated several features from TWBT's fork
|
|
- added ability to drag with left/right buttons
|
|
- added depth display for TWBT (when multilevel is enabled)
|
|
- made shift+click jump to lower levels visible with TWBT
|
|
- `title-version`: added version to options screen too
|
|
- `embark-assistant`:
|
|
- changed region interaction matching to search for evil rain, syndrome rain, and reanimation rather than interaction presence (misleadingly called evil weather), reanimation, and thralling
|
|
- gave syndrome rain and reanimation wider ranges of criterion values
|
|
- `fix/dead-units`: added a delay of around 1 month before removing units
|
|
|
|
## API
|
|
- New functions (also exposed to Lua):
|
|
- ``Units::isKilled()``
|
|
- ``Units::isActive()``
|
|
- ``Units::isGhost()``
|
|
- Removed Vermin module (unused and obsolete)
|
|
|
|
## Lua
|
|
- Added ``profiler`` module to measure lua performance
|
|
- Enabled shift+cursor movement in WorkshopOverlay-derived screens
|
|
|
|
## Structures
|
|
- ``unit_flags1``: renamed ``dead`` to ``inactive`` to better reflect its use
|
|
- ``item_body_component``: fixed location of ``corpse_flags``
|
|
- ``job_type``: added ``is_designation`` attribute
|
|
- ``unit_thought_type``: added ``SawDeadBody`` (new in 0.44.10)
|
|
- ``unit_personality``: fixed location of ``current_focus`` and ``undistracted_focus``
|
|
- ``incident_sub6_performance``: identified some fields
|
|
- ``job_handler``: fixed static array layout
|
|
|
|
## Internals
|
|
- Added fallback for YouCompleteMe database lookup failures (e.g. for newly-created files)
|
|
- jsoncpp: fixed constructor with ``long`` on Linux
|
|
- Improved efficiency and error handling in ``stl_vsprintf`` and related functions
|
|
- Added build option to generate symbols for large generated files containing df-structures metadata
|
|
|
|
================================================================================
|
|
# 0.44.10-r1
|
|
|
|
## New Scripts
|
|
- `bodyswap`: shifts player control over to another unit in adventure mode
|
|
|
|
## New Tweaks
|
|
- `tweak` stone-status-all: adds an option to toggle the economic status of all stones
|
|
- `tweak` kitchen-prefs-all: adds an option to toggle cook/brew for all visible items in kitchen preferences
|
|
|
|
## Fixes
|
|
- Lua: registered ``dfhack.constructions.designateRemove()`` correctly
|
|
- `prospector`: fixed crash due to invalid vein materials
|
|
- `tweak` max-wheelbarrow: fixed conflict with building renaming
|
|
- `view-item-info`: stopped appending extra newlines permanently to descriptions
|
|
|
|
## Misc Improvements
|
|
- Added logo to documentation
|
|
- Documented several missing ``dfhack.gui`` Lua functions
|
|
- `adv-rumors`: bound to Ctrl-A
|
|
- `command-prompt`: added support for ``Gui::getSelectedPlant()``
|
|
- `gui/advfort`: bound to Ctrl-T
|
|
- `gui/room-list`: added support for ``Gui::getSelectedBuilding()``
|
|
- `gui/unit-info-viewer`: bound to Alt-I
|
|
- `modtools/create-unit`: made functions available to other scripts
|
|
- `search`:
|
|
- added support for stone restrictions screen (under ``z``: Status)
|
|
- added support for kitchen preferences (also under ``z``)
|
|
|
|
## Internals
|
|
- Fixed compiler warnings on all supported build configurations
|
|
- Windows build scripts now work with non-C system drives
|
|
|
|
## API
|
|
- New functions (all available to Lua as well):
|
|
- ``Buildings::getRoomDescription()``
|
|
- ``Items::checkMandates()``
|
|
- ``Items::canTrade()``
|
|
- ``Items::canTradeWithContents()``
|
|
- ``Items::isRouteVehicle()``
|
|
- ``Items::isSquadEquipment()``
|
|
- ``Kitchen::addExclusion()``
|
|
- ``Kitchen::findExclusion()``
|
|
- ``Kitchen::removeExclusion()``
|
|
- syndrome-util: added ``eraseSyndromeData()``
|
|
|
|
## Structures
|
|
- ``dfhack_room_quality_level``: new enum
|
|
- ``glowing_barrier``: identified ``triggered``, added comments
|
|
- ``item_flags2``: renamed ``has_written_content`` to ``unk_book``
|
|
- ``kitchen_exc_type``: new enum (for ``ui.kitchen``)
|
|
- ``mandate.mode``: now an enum
|
|
- ``unit_personality.emotions.flags.memory``: identified
|
|
- ``viewscreen_kitchenprefst.forbidden``, ``possible``: now a bitfield, ``kitchen_pref_flag``
|
|
- ``world_data.feature_map``: added extensive documentation (in XML)
|
|
|
|
================================================================================
|
|
# 0.44.10-beta1
|
|
|
|
## New Scripts
|
|
- `devel/find-primitive`: finds a primitive variable in memory
|
|
|
|
## Fixes
|
|
- Units::getAnyUnit(): fixed a couple problematic conditions and potential segfaults if global addresses are missing
|
|
- `stockpiles`: stopped sidebar option from overlapping with `autodump`
|
|
-@ `autodump`, `automelt`, `autotrade`, `stocks`, `stockpiles`: fixed conflict with building renaming
|
|
- `tweak` block-labors: fixed two causes of crashes related in the v-p-l menu
|
|
- `full-heal`:
|
|
- units no longer have a tendency to melt after being healed
|
|
- healed units are no longer treated as patients by hospital staff
|
|
- healed units no longer attempt to clean themselves unsuccessfully
|
|
- wounded fliers now regain the ability to fly upon being healing
|
|
- now heals suffocation, numbness, infection, spilled guts and gelding
|
|
- `modtools/create-unit`:
|
|
- creatures of the appropriate age are now spawned as babies or children where applicable
|
|
- fix: civ_id is now properly assigned to historical_figure, resolving several hostility issues (spawned pets are no longer attacked by fortress military!)
|
|
- fix: unnamed creatures are no longer spawned with a string of numbers as a first name
|
|
- `exterminate`: fixed documentation of ``this`` option
|
|
|
|
## Misc Improvements
|
|
- `blueprint`: added a basic Lua API
|
|
- `devel/export-dt-ini`: added tool offsets for DT 40
|
|
- `devel/save-version`: added current DF version to output
|
|
- `install-info`: added information on tweaks
|
|
|
|
## Internals
|
|
- Added ``Gui::inRenameBuilding()``
|
|
- Added function names to DFHack's NullPointer and InvalidArgument exceptions
|
|
- Linux: required plugins to have symbols resolved at link time, for consistency with other platforms
|
|
|
|
================================================================================
|
|
# 0.44.10-alpha1
|
|
|
|
## New Scripts
|
|
- `caravan`: adjusts properties of caravans
|
|
- `gui/autogems`: a configuration UI for the `autogems` plugin
|
|
|
|
## Fixes
|
|
- Fixed uninitialized pointer being returned from ``Gui::getAnyUnit()`` in rare cases
|
|
- `autohauler`, `autolabor`, `labormanager`: fixed fencepost error and potential crash
|
|
- `dwarfvet`: fixed infinite loop if an animal is not accepted at a hospital
|
|
- `liquids`: fixed "range" command to default to 1 for dimensions consistently
|
|
- `search`: fixed 4/6 keys in unit screen search
|
|
- `view-item-info`: fixed an error with some armor
|
|
|
|
## Misc Improvements
|
|
- `autogems`: can now blacklist arbitrary gem types (see `gui/autogems`)
|
|
- `exterminate`: added more words for current unit, removed warning
|
|
- `fpause`: now pauses worldgen as well
|
|
|
|
## Internals
|
|
- Added some build scripts for Sublime Text
|
|
- Changed submodule URLs to relative URLs so that they can be cloned consistently over different protocols (e.g. SSH)
|
|
|
|
================================================================================
|
|
# 0.44.09-r1
|
|
|
|
## Internals
|
|
- OS X: Can now build with GCC 7 (or older)
|
|
|
|
## Fixes
|
|
- `modtools/item-trigger`: fixed token format in help text
|
|
|
|
## Misc Improvements
|
|
- Reorganized changelogs and improved changelog editing process
|
|
- `modtools/item-trigger`: added support for multiple type/material/contaminant conditions
|
|
|
|
## Structures
|
|
-@ ``renderer``: fixed vtable addresses on 64-bit OS X
|
|
- ``building_type``: added human-readable ``name`` attribute
|
|
- ``furnace_type``: added human-readable ``name`` attribute
|
|
- ``workshop_type``: added human-readable ``name`` attribute
|
|
- ``army``: added vector new in 0.44.07
|
|
- ``site_reputation_report``: named ``reports`` vector
|
|
|
|
================================================================================
|
|
# 0.44.09-alpha1
|
|
|
|
## Fixes
|
|
- `digtype`: stopped designating non-vein tiles (open space, trees, etc.)
|
|
- `labormanager`: fixed crash due to dig jobs targeting some unrevealed map blocks
|
|
|
|
|
|
================================================================================
|
|
# 0.44.08-alpha1
|
|
|
|
## Fixes
|
|
- `fix/dead-units`: fixed a bug that could remove some arriving (not dead) units
|
|
|
|
|
|
================================================================================
|
|
# 0.44.07-beta1
|
|
|
|
## Structures
|
|
-@ Added symbols for Toady's `0.44.07 Linux test build <http://www.bay12forums.com/smf/index.php?topic=169839.msg7720111#msg7720111>`_ to fix :bug:`10615`
|
|
-@ ``world_site``: fixed alignment
|
|
|
|
## Misc improvements
|
|
- `modtools/item-trigger`: added the ability to specify inventory mode(s) to trigger on
|
|
|
|
|
|
================================================================================
|
|
# 0.44.07-alpha1
|
|
|
|
## Fixes
|
|
- Support for building on Ubuntu 18.04
|
|
- Fixed some CMake warnings (CMP0022)
|
|
- `embark-assistant`: fixed detection of reanimating biomes
|
|
|
|
## Misc Improvements
|
|
- `embark-assistant`:
|
|
|
|
- Added search for adamantine
|
|
- Now supports saving/loading profiles
|
|
|
|
- `fillneeds`: added ``-all`` option to apply to all units
|
|
- `remotefortressreader`: added flows, instruments, tool names, campfires, ocean waves, spiderwebs
|
|
|
|
## Structures
|
|
- Several new names in instrument raw structures
|
|
- ``identity``: identified ``profession``, ``civ``
|
|
- ``manager_order_template``: fixed last field type
|
|
- ``viewscreen_createquotast``: fixed layout
|
|
- ``world.language``: moved ``colors``, ``shapes``, ``patterns`` to ``world.descriptors``
|
|
- ``world.reactions``, ``world.reaction_categories``:\ moved to new compound, ``world.reactions``. Requires renaming:
|
|
|
|
- ``world.reactions`` to ``world.reactions.reactions``
|
|
- ``world.reaction_categories`` to ``world.reactions.reaction_categories``
|
|
|
|
|
|
================================================================================
|
|
# 0.44.05-r2
|
|
|
|
## Fixes
|
|
- `devel/export-dt-ini`: fix language_name offsets for DT 39.2+
|
|
- `devel/inject-raws`: fixed gloves and shoes (old typo causing errors)
|
|
- `remotefortressreader`: fixed an issue with not all engravings being included
|
|
- `view-item-info`: fixed an error with some shields
|
|
|
|
## Misc Improvements
|
|
- `adv-rumors`: added more keywords, including names
|
|
- `autochop`: can now exclude trees that produce fruit, food, or cookable items
|
|
- `remotefortressreader`: added plant type support
|
|
|
|
## New Plugins
|
|
- `embark-assistant`: adds more information and features to embark screen
|
|
|
|
## New Scripts
|
|
- `adv-fix-sleepers`: fixes units in adventure mode who refuse to wake up (:bug:`6798`)
|
|
- `hermit`: blocks caravans, migrants, diplomats (for hermit challenge)
|
|
|
|
## New Features
|
|
- With ``PRINT_MODE:TEXT``, setting the ``DFHACK_HEADLESS`` environment variable will hide DF's display and allow the console to be used normally. (Note that this is intended for testing and is not very useful for actual gameplay.)
|
|
|
|
|
|
================================================================================
|
|
# 0.44.05-r1
|
|
|
|
## New Scripts
|
|
- `break-dance`: Breaks up a stuck dance activity
|
|
- `fillneeds`: Use with a unit selected to make them focused and unstressed
|
|
- `firestarter`: Lights things on fire: items, locations, entire inventories even!
|
|
- `flashstep`: Teleports adventurer to cursor
|
|
- `ghostly`: Turns an adventurer into a ghost or back
|
|
- `questport`: Sends your adventurer to the location of your quest log cursor
|
|
- `view-unit-reports`: opens the reports screen with combat reports for the selected unit
|
|
|
|
## Fixes
|
|
- `devel/inject-raws`: now recognizes spaces in reaction names
|
|
- `dig`: added support for designation priorities - fixes issues with designations from ``digv`` and related commands having extremely high priority
|
|
- `dwarfmonitor`:
|
|
- fixed display of creatures and poetic/music/dance forms on ``prefs`` screen
|
|
- added "view unit" option
|
|
- now exposes the selected unit to other tools
|
|
|
|
- `names`: fixed many errors
|
|
- `quicksave`: fixed an issue where the "Saving..." indicator often wouldn't appear
|
|
|
|
## Misc Improvements
|
|
- `gui/gm-unit`:
|
|
- added a profession editor
|
|
- misc. layout improvements
|
|
- `remotefortressreader`:
|
|
- support for moving adventurers
|
|
- support for vehicles, gem shapes, item volume, art images, item improvements
|
|
- `binpatch`: now reports errors for empty patch files
|
|
- `force`: now provides useful help
|
|
- `full-heal`:
|
|
- can now select corpses to resurrect
|
|
- now resets body part temperatures upon resurrection to prevent creatures from freezing/melting again
|
|
- now resets units' vanish countdown to reverse effects of `exterminate`
|
|
- `launch`: can now ride creatures
|
|
- `names`: can now edit names of units
|
|
|
|
## Removed
|
|
- `tweak`: ``kitchen-keys``: :bug:`614` fixed in DF 0.44.04
|
|
|
|
## Internals
|
|
- ``Gui::getAnyUnit()`` supports many more screens/menus
|
|
|
|
## Structures
|
|
- New globals: ``soul_next_id``
|
|
|
|
================================================================================
|
|
# 0.44.05-alpha1
|
|
|
|
## Misc Improvements
|
|
- `gui/liquids`: added more keybindings: 0-7 to change liquid level, P/B to cycle backwards
|
|
|
|
## Structures
|
|
-@ ``incident``: re-aligned again to match disassembly
|
|
|
|
|
|
================================================================================
|
|
# 0.44.04-alpha1
|
|
|
|
## Fixes
|
|
- `devel/inject-raws`: now recognizes spaces in reaction names
|
|
- `exportlegends`: fixed an error that could occur when exporting empty lists
|
|
|
|
|
|
## Structures
|
|
- ``artifact_record``: fixed layout (changed in 0.44.04)
|
|
- ``incident``: fixed layout (changed in 0.44.01) - note that many fields have moved
|
|
|
|
|
|
================================================================================
|
|
# 0.44.03-beta1
|
|
|
|
## Fixes
|
|
- `autolabor`, `autohauler`, `labormanager`: added support for "put item on display" jobs and building/destroying display furniture
|
|
- `gui/gm-editor`: fixed an error when editing primitives in Lua tables
|
|
|
|
## Misc Improvements
|
|
- @ `devel/dump-offsets`: now ignores ``index`` globals
|
|
- `gui/pathable`: added tile types to sidebar
|
|
- `modtools/skill-change`:
|
|
- now updates skill levels appropriately
|
|
- only prints output if ``-loud`` is passed
|
|
|
|
## Structures
|
|
- New globals:
|
|
- ``version``
|
|
- ``min_load_version``
|
|
- ``movie_version``
|
|
- ``basic_seed``
|
|
- ``title``
|
|
- ``title_spaced``
|
|
- ``ui_building_resize_radius``
|
|
- Added ``twbt_render_map`` code offset on x64
|
|
- Fixed an issue preventing ``enabler`` from being allocated by DFHack
|
|
- Added ``job_type.PutItemOnDisplay``
|
|
- Found ``renderer`` vtable on osx64
|
|
- ``adventure_movement_optionst``, ``adventure_movement_hold_tilest``, ``adventure_movement_climbst``: named coordinate fields
|
|
- ``mission``: added type
|
|
- ``unit``: added 3 new vmethods: ``getCreatureTile``, ``getCorpseTile``, ``getGlowTile``
|
|
- ``viewscreen_assign_display_itemst``: fixed layout on x64 and identified many fields
|
|
- ``viewscreen_reportlistst``: fixed layout, added ``mission_id`` vector
|
|
- ``world.status``: named ``missions`` vector
|
|
|
|
|
|
================================================================================
|
|
# 0.44.03-alpha1
|
|
|
|
## Lua
|
|
- Improved ``json`` I/O error messages
|
|
- Stopped a crash when trying to create instances of classes whose vtable addresses are not available
|
|
|
|
|
|
================================================================================
|
|
# 0.44.02-beta1
|
|
|
|
## New Scripts
|
|
- `devel/check-other-ids`: Checks the validity of "other" vectors in the ``world`` global
|
|
- `gui/cp437-table`: An in-game CP437 table
|
|
|
|
## Fixes
|
|
- Fixed issues with the console output color affecting the prompt on Windows
|
|
- `createitem`: stopped items from teleporting away in some forts
|
|
- `gui/gm-unit`: can now edit mining skill
|
|
- `gui/quickcmd`: stopped error from adding too many commands
|
|
- `modtools/create-unit`: fixed error when domesticating units
|
|
|
|
## Misc Improvements
|
|
- The console now provides suggestions for built-in commands
|
|
- `devel/export-dt-ini`: avoid hardcoding flags
|
|
- `exportlegends`:
|
|
- reordered some tags to match DF's order
|
|
- added progress indicators for exporting long lists
|
|
- `gui/gm-editor`: added enum names to enum edit dialogs
|
|
- `gui/gm-unit`: made skill search case-insensitive
|
|
- `gui/rename`: added "clear" and "special characters" options
|
|
- `remotefortressreader`:
|
|
- includes item stack sizes
|
|
- some performance improvements
|
|
|
|
## Removed
|
|
- `warn-stuck-trees`: :bug:`9252` fixed in DF 0.44.01
|
|
|
|
## Lua
|
|
- Exposed ``get_vector()`` (from C++) for all types that support ``find()``, e.g. ``df.unit.get_vector() == df.global.world.units.all``
|
|
|
|
## Structures
|
|
- Located ``start_dwarf_count`` offset for all builds except 64-bit Linux; `startdwarf` should work now
|
|
- Added ``buildings_other_id.DISPLAY_CASE``
|
|
- Fixed ``viewscreen_titlest.start_savegames`` alignment
|
|
- Fixed ``unit`` alignment
|
|
- Identified ``historical_entity.unknown1b.deities`` (deity IDs)
|
|
|
|
|
|
================================================================================
|
|
# 0.44.02-alpha1
|
|
|
|
## New Scripts
|
|
- `devel/dump-offsets`: prints an XML version of the global table included in in DF
|
|
|
|
## Fixes
|
|
- Fixed a crash that could occur if a symbol table in symbols.xml had no content
|
|
|
|
## Lua
|
|
- Added a new ``dfhack.console`` API
|
|
- API can now wrap functions with 12 or 13 parameters
|
|
|
|
## Structures
|
|
- The ``ui_menu_width`` global is now a 2-byte array; the second item is the former ``ui_area_map_width`` global, which is now removed
|
|
- The former ``announcements`` global is now a field in ``d_init``
|
|
- ``world`` fields formerly beginning with ``job_`` are now fields of ``world.jobs``, e.g. ``world.job_list`` is now ``world.jobs.list``
|