In this update11
Full notes
Full DFHack - Dwarf Fortress Modding Engine update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Fixes
- Workshop
- Gameplay
- UI and audio
- Performance
- Maps
DFHack - Dwarf Fortress Modding Engine changes
Please report any issues (or feature requests) on the DFHack GitHub issue tracker. When reporting issues, please upload a zip file of your savegame and a zip file of your [c]mods[/c] directory to the cloud and add links to the GitHub issue. Make sure your files are downloadable by "everyone with the link". We need your savegame to reproduce the problem and test the fix, and we need your active mods so we can load your savegame. Issues with savegames and mods attached get fixed first!
Highlights
Bug fixes
A bug in [c]buildingplan[/c] which made some controls invisible has been fixed.
API changes and improvements
Some of our Lua and C++ APIs have been updated in this release; see the changelog for details. Notably, several [c]MaterialInfo[/c] constants have been removed, which may impact third party plugins and scripts. Developers of third party plugins and scripts should be aware of these.
Announcements
PSAs
As always, remember that, just like the vanilla DF game, DFHack tools can also have bugs. It is a good idea to save often and keep backups of the forts that you care about.
Some DFHack tools that worked in previous (pre-Steam) versions of DF have not been updated yet and are marked with the "unavailable" tag in their docs. If you try to run them, they will show a warning and exit immediately. You can run the command again to override the warning (though of course the tools may not work). We make no guarantees of reliability for the tools that are marked as "unavailable".
The in-game interface for running DFHack commands ([c]gui/launcher[/c]) will not show "unavailable" tools by default. You can still run them if you know their names, or you can turn on dev mode by hitting Ctrl-D while in [c]gui/launcher[/c] and they will be added to the autocomplete list. Some tools listed as "unavailable" in the docs do not compile yet and are not accessible at all, even when in dev mode.
If you see a tool complaining about the lack of a cursor, know that it's referring to the keyboard cursor (which used to be the only real option in Dwarf Fortress). You can enable the keyboard cursor by entering mining mode or selecting the dump/forbid tool and hitting Alt-K (the DFHack keybinding for [c]toggle-kbd-cursor[/c]). We're working on making DFHack tools more mouse-aware and accessible so this step isn't necessary in the future.
Changelog
New tools, fixes, and improvements
Fixes
[c]buildingplan[/c]: restore planner UI elements: hollow constructions, only engraved slabs, only empty cages, weapon count
Misc Improvements
[c]EventManager[/c]: add safety check to potentially avoid a DFHack crash when DF's [c]reports[/c] table is out of order
API
- [c]DFSDL[/c]added [c]obtain_library_handle[/c] and [c]obtain_image_library_handle[/c] so that a plugin can obtain DFHack's already-open handle to these libs instead of having to do it itself.
- [c]Materials[/c][c]MaterialInfo[/c] constants [c]NUM_BUILTIN[/c], [c]GROUP_SIZE[/c], [c]CREATURE_BASE[/c], [c]FIGURE_BASE[/c], [c]PLANT_BASE[/c], and [c]END_BASE[/c] removed. New plugins should use appropriate members of the [c]df::builtin_mats[/c] enum.
- [c]Screen[/c]new functions [c]paintMapPortTile[/c] and [c]readMapPortTile[/c] to write and read world and region map tiles.
Lua
Added [c]Screen::paintMapPortTile[/c] as [c]dfhack.screen.paintMapPortTile[/c]
Added [c]Screen::readMapPortTile[/c] as [c]dfhack.screen.readMapPortTile[/c]
Deprecated [c]gui.materials.CREATURE_BASE[/c] and [c]gui.materials.PLANT_BASE[/c] - scripts should instead use [c]df.builtin_mats.CREATURE_1[/c] and [c]df.builtin_mats.PLANT_1[/c], respectively.
Structures
changed codegen to use [c]std::array[/c] for fixed-length arrays instead of C-style arrays
Source
Changelog.gg summarizes and formats this update. How we read updates.
