Releases: DFHack/dfhack
DFHack 0.43.05-r3.1
DFHack 0.43.05-r3.1
This is a final release for 0.43.05 (not 0.44.x!) with some fixes since 0.43.05-r2.
Note: If you previously downloaded 0.43.05-r3, the only change in r3.1 is the "scripts" folder. You can download one of the "new-scripts" archives below and replace your scripts folder with its contents.
Internals
- Fixed an uncommon crash that could occur when printing text to the console
- Added lots of previously-missing DF classes
- More names for fields: DFHack/df-structures@0.43.05-r2...0.43.05
Fixes
-
Linux: fixed argument to
setarchin thedfhacklauncher script -
Ruby: fixed an error that occurred when the DF path contained an apostrophe
-
diggingInvadersnow compiles again and is included -
labormanager:- stopped waiting for on-duty military dwarves with minor injuries to obtain care
- stopped waiting for meetings when participant(s) are dead
- fixed a crash for dwarves with no cultural identity
-
luasocket: fixedreceive()with a byte count -
orders: fixed an error when importing orders with material categories -
siren: fixed an error -
stockpiles: fixed serialization of barrel and bin counts -
view-item-info: fixed aCHEESE_MAT-related error
Misc Improvements
-
devel/export-dt-ini: added more offsets for new DT versions -
digfort: added support for changing z-levels -
exportlegends: suppressed ABSTRACT_BUILDING warning -
gui/dfstatus: excluded logs in constructions -
labormanager:- stopped assigning woodcutting jobs to elves
- "recover wounded" jobs now weighted based on altruism
-
remotefortressreader: added support for buildings, grass, riders, and
hair/beard styles
DFHack 0.43.05-r2
DFHack 0.43.05-r2
Internals
- Rebuilding DFHack can be faster if nothing Git-related has changed
- Plugins can now hook Screen::readTile()
- Improved Lua compatibility with plugins that hook into GUI functions (like TWBT)
- Expanded focus strings for jobmanagement and workquota_condition viewscreens
Gui::getAnyUnit(): added support for viewscreen_unitst,
viewscreen_textviewerst, viewscreen_layer_unit_relationshipst- Fixed (limited) keybinding support in PRINT_MODE:TEXT on macOS
- Added a new standardized
Gui::refreshSidebar()function to fix behavior of
some plugins on the lowest z-level - New
Buildingsmodule functions:markedForRemoval(),getCageOccupants() - Limited recursive command invocations to 20 to prevent crashes
- Added an
onLoad.init-examplefile
Lua
-
Improved C++ exception handling for some native functions that aren't direct
wrappers around C++ functions (in this case, error messages could be nil and
cause the Lua interpreter to quit) -
Added support for a
key_penoption in Label widgets -
Fixed
to_firstargument todfhack.screen.dismiss() -
Added optional
mapparameters to some screen functions -
Exposed some more functions to Lua:
dfhack.gui.refreshSidebar()dfhack.gui.getAnyUnit()dfhack.gui.getAnyBuilding()dfhack.gui.getAnyItem()dfhack.gui.getAnyPlant()dfhack.gui.getDepthAt()dfhack.units.getUnitsInBox()dfhack.units.isVisible()dfhack.maps.isTileVisible()dfhack.buildings.markedForRemoval()dfhack.buildings.getCageOccupants()dfhack.internal.md5()dfhack.internal.md5File()dfhack.internal.threadid()
-
New function:
widgets.Pages:getSelectedPage() -
Added a
keyoption to EditField and FilteredList widgets -
Fixed an issue preventing
repeatUtil.cancel()from working when called
from the callback
Ruby
- Fixed a crash when creating new instances of DF virtual classes (e.g. fixes a
levercrash) - Ruby scripts can now be loaded from any script paths specified (from script-
paths.txt or registered through the Lua API) unit_find()now usesGui::getSelectedUnit()and works in more places
(e.g.exterminatenow works from more screens, likecommand-prompt)
New Internal Commands
alias: allows configuring aliases for other commands
New Plugins
orders: Manipulate manager orderspathable: Back-end forgui/pathable
New Scripts
clear-smoke: Removes all smoke from the mapempty-bin: Empty a bin onto the floorfix/retrieve-units: Spawns stuck invaders/guestsfix/stuck-merchants: Dismisses stuck merchants that haven't entered the map yetgui/pathable: View whether tiles on the map can be pathed togui/teleport: A front-end for theteleportscriptwarn-stuck-trees: Detects citizens stuck in trees
New Tweaks
tweakburrow-name-cancel: Implements the "back" option when renaming a
burrow, which currently does nothing (bug 1518)tweakcage-butcher: Adds an option to butcher units when viewing cages with "q"
Fixes
-
Enforced use of
stdout.logandstderr.log(instead of their.txt
counterparts) on Windows -
Fixed
getItemBaseValue()for cheese, sheets and instruments -
Fixed alignment in:
viewscreen_choose_start_sitestviewscreen_export_graphical_mapstviewscreen_setupadventurestviewscreen_setupdwarfgamest
-
adv-max-skills: fixed error due to viewscreen changes -
autolabor: fixed a crash when assigning haulers while traders are active -
buildingplan: fixed an issue that prevented certain numbers from being used
in building names -
confirm:- dialogs are now closed permanently when disabled from the settings UI
- fixed an issue that could have prevented closing dialogs opened by pressing "s"
-
embark-tools: stopped the sand indicator from overlapping dialogs -
exportlegends: fixed some crashes and site map issues -
devel/find-offsets: fixedcurrent_weatherscan -
gui/extended-status: fixed an error when no beds are available -
gui/family-affairs: fixed issues with assigning lovers -
gui/gm-editor:- made keybinding display order consistent
- stopped keys from performing actions in help screen
-
gui/manager-quantity:- now allows orders with a limit of 0
- fixed screen detection
-
gui/mechanisms,gui/room-list: fixed an issue when recentering the map when exiting -
lever: prevented pulling non-lever buildings, which can cause crashes -
markdown: fixed file encoding -
modtools/create-unit:- fixed when popup announcements are present
- added checks to ensure that the current game mode is restored
-
resume: stopped drawing on the map border -
show-unit-syndromes: fixed an error when handling some syndromes -
strangemood: fixed some issues with material searches -
view-item-info: fixed a color-related error for some materials
Misc Improvements
-
Docs: prevented automatic hyphenation in some browsers, which was producing
excessive hyphenation sometimes -
command-prompt: invokingcommand-prompta second time now hides the prompt -
gui/extended-status: added an option to assign/replace the manager -
gui/load-screen:- adjusted dialog width for long folder names
- added modification times and DF versions to dialog
-
gui/mechanisms,gui/room-list,gui/siege-engine: add and list "exit to map" options -
lever: added support for pulling levers at high priority -
markdown: now recognizes-nin addition to/n -
remotefortressreader: more data exported, used by Armok Vision v0.17.0 -
resume,siege-engine: improved compatibility with GUI-hooking plugins (like TWBT) -
sc-script: improved help text -
teleport: can now be used as a module -
tweakembark-profile-name: now enabled indfhack.init-example -
tweakhotkey-clear: fixed display on larger screens
DFHack 0.43.05-r1
(See below for downloads)
Internals
- 64-bit support on all platforms
- Several structure fixes to match 64-bit DF's memory layout
- Added
DFHack::Job::removeJob()function - New module:
Designations- handles designation creation (currently for plants only) - Added
Gui::getSelectedPlant() - Added
Units::getMainSocialActivity(),Units::getMainSocialEvent() - Visual Studio 2015 now required to build on Windows instead of 2010
- GCC 4.8 or newer required to build on Linux and OS X (and now supported on OS X)
- Updated TinyXML from 2.5.3 to 2.6.2
- Added the ability to download files manually before building
Lua
-
Lua has been updated to 5.3 - see http://www.lua.org/manual/5.3/readme.html for details
- Floats are no longer implicitly converted to integers in DFHack API calls
-
df.new()supports more types:char,intptr_t,uintptr_t,long,unsigned long -
String representations of vectors and a few other containers now include their lengths
-
Added a
tile-materialmodule -
Added a
Painter:key_string()method -
Made
dfhack.gui.revealInDwarfmodeMap()available
Ruby
- Added support for loading ruby 2.x libraries
New Plugins
dwarfvetenables animal caretakinggenerated-creature-renamer: Renames generated creature IDs for use with graphics packslabormanager(formerly autolabor2): a more advanced alternative toautolabormisery: re-added and updated for the 0.4x seriestitle-folder: shows DF folder name in window title bar when enabled
New Scripts
adv-rumors: improves the "Bring up specific incident or rumor" menu in adventure modefix/tile-occupancy: Clears bad occupancy flags on the selected tile.install-info: Logs basic troubleshooting information about the current DFHack installationload-save: loads a save non-interactivelymodtools/change-build-menu: Edit the build mode sidebar menusmodtools/if-entity: Run a command if the current entity matches a given IDseason-palette: Swap color palettes with the changes of the seasonsunforbid: Unforbids all items
New Tweaks
tweak condition-material <tweak>: fixes a crash in the work order condition material listtweak hotkey-clear <tweak>: adds an option to clear bindings from DF hotkeys
Fixes
-
The DF path on OS X can now contain spaces and
:characters -
Buildings::setOwner() changes now persist properly when saved
-
lsnow lists scripts in folders other thanhack/scripts, when applicable -
Fixed
plugoutput alignment for plugins with long names -
add-thought: fixed support for emotion names -
autochop:- fixed several issues with job creation and removal
- stopped designating the center tile (unreachable) for large trees
- stopped options from moving when enabling and disabling burrows
- fixed display of unnamed burrows
-
devel/find-offsets: fixed a crash when vtables used by globals aren't available -
getplants:- fixed several issues with job creation and removal
- stopped designating the center tile (unreachable) for large trees
-
gui/workflow: added extra keybinding to work withgui/extended-status -
manipulator:- Fixed crash when selecting a profession from an empty list
- Custom professions are now sorted alphabetically more reliably
-
modtools/create-item:- made gloves usable by specifying handedness
- now creates pairs of boots and gloves
-
modtools/create-unit:- stopped permanently overwriting the creature creation menu in arena mode
- now uses non-English names
- added
-setUnitToFortoption to make a unit a civ/group member more easily - fixed some issues where units would appear in unrevealed areas of the map
-
modtools/item-trigger: fixed errors with plant growths -
remotefortressreader: fixed a crash when serializing the local map -
ruby: fixed a crash when unloading the plugin on Windows -
stonesense: disabled overlay in STANDARD-based print modes to prevent crashes -
title-version: now hidden when loading an arena
Misc Improvements
-
Documented all default keybindings (from :file:
dfhack.init-example) in the
docs for the relevant commands; updates enforced by build system. -
autounsuspend: reduced update frequency to address potential performance issues -
gui/extended-status: added a feature to queue beds -
luaandgui/gm-editornow support the same aliases (scr,unit, etc.) -
manipulator: added social activities to job column -
remotefortressreader: Added support for- world map snow coverage
- spatters
- wall info
- site towers, world buildings
- surface material
- building items
- DF version info
-
title-version: Added a prerelease indicator -
workflow: Re-addedAlt-Wkeybindings
DFHack 0.43.05-beta2
This release adds 64-bit Stonesense support on all platforms, plus a few new tweaks and other fixes.
Fixes
- Fixed Buildings::updateBuildings(), along with building creation/deletion events
- Fixed
plugoutput alignment for plugins with long names - Fixed a crash that happened when a
LUA_PATHenvironment variable was set add-thought: fixed number conversiongui/workflow: fixed range editing producing the wrong results for certain numbersmodtools/create-unit: now uses non-English namesmodtools/item-trigger: fixed errors with plant growthsremotefortressreader: fixed a crash when serializing the local mapstockflow: fixed an issue with non-integer manager order limitstitle-folder: fixed compatibility issues with certain SDL libraries on macOS
Structures
- Added some missing renderer VTable addresses on macOS
entity.resources.organic: identifiedparchmententity_sell_category: addedParchmentandCupsMugsGobletsui_advmode_menu: addedBuildui_unit_view_mode: addedPrefOccupationunit_skill: identifiednatural_skill_lvl(wasunk_1c)viewscreen_jobmanagementst: identifiedmax_workshopsviewscreen_overallstatusst: madevisible_pagesan enumviewscreen_pricest: identified fieldsviewscreen_workquota_conditionst: gave some fieldsunknames
API Changes
- Allowed the Lua API to accept integer-like floats and strings when expecting an integer
- Lua: New
Painter:key_string()method - Lua: Added
dfhack.getArchitecture()anddfhack.getArchitectureName()
Additions/Removals:
- Added
adv-rumorsscript: improves the "Bring up specific incident or rumor" menu in adventure mode - Added
install-infoscript for basic troubleshooting - Added
tweak condition-material: fixes a crash in the work order condition material list - Added
tweak hotkey-clear: adds an option to clear bindings from DF hotkeys autofarm: reverted local biome detection (from 0.43.05-alpha3)
Other Changes
- Added a DOWNLOAD_RUBY CMake option, to allow use of a system/external ruby library
- Added the ability to download files manually before building
gui/extended-status: added a feature to queue bedsremotefortressreader: added building items, DF version infostonesense: Added support for 64-bit macOS and Linux
DFHack 0.43.05-beta1
This build fixes some structure issues and related crashes.
DFHack 0.43.05-beta1
Fixes
- Fixed various crashes on 64-bit Windows related to DFHack screens, notably
manipulator - Fixed addresses of next_id globals on 64-bit Linux (fixes an
automaterial/box-select crash) lsnow lists scripts in folders other thanhack/scripts, when applicablemodtools/create-unit: stopped permanently overwriting the creature creation
menu in arena modeseason-palette: fixed an issue where only part of the screen was redrawn
after changing the color schemetitle-version: now hidden when loading an arena
Structures
file_compressorst: fixed field sizes on x64historical_entity: fixed alignment on x64ui_sidebar_menus.command_line: fixed field sizes on x64viewscreen_choose_start_sitest: added 3 missing fields, renamedin_embark_only_warningviewscreen_layer_arena_creaturest: identified more fieldsworld.math: identifiedworld.murky_pools: identified
Additions/Removals
generated-creature-renamer: Renames generated creature IDs for use with graphics packs
Other Changes
title-version: Added a prerelease indicator
DFHack 0.43.05-alpha4
This build fixes some strange behavior with buildingplan and several other tools on all platforms, as well as a number of broken tools due to missing globals on 64-bit Linux.
Fixes
- Fixed an issue with uninitialized bitfields that was causing several issues
(disappearing buildings inbuildingplan's planning mode, strange behavior in
the extendedstocksscreen, and likely other problems). This issue was
introduced in 0.43.05-alpha3. stockflow: Fixed an "integer expected" error
Structures
- Located several globals on 64-bit Linux: flows, timed_events, ui_advmode,
ui_building_assign_type, ui_building_assign_is_marked,
ui_building_assign_units, ui_building_assign_items, and ui_look_list. This
fixessearch,zone, andforce, among others. ui_sidebar_menus: Fixed some x64 alignment issues
Additions/Removals
- Added
fix/tile-occupancy: Clears bad occupancy flags on the selected tile.
Useful for fixing blocked tiles introduced by the above buildingplan issue. - Added a Lua
tile-materialmodule
Other Changes
labormanager: Add support for shell craftsmanipulator: Custom professions are now sorted alphabetically more reliably
DFHack 0.43.05-alpha3
This release has many issues and has been superseded by 0.43.05-alpha4. Using this version is discouraged. The builds below above may break your save.
This release fixes some crashes, notably a Ruby crash on 64-bit Windows and a labormanager crash on 64-bit OS X and Linux. There are also some structure fixes. Please continue reporting issues in this build.
Changes since 0.43.05-alpha2 (note that this is since the last alpha release, not the last stable one for 0.43.03):
Fixes
add-thought: fixed support for emotion namesautofarm: Made surface farms detect local biomedevel/export-dt-ini: fixed squad_schedule_entry sizelabormanager:- Now accounts for unit attributes
- Made instrument-building jobs work (constructed instruments)
- Fixed deconstructing constructed instruments
- Fixed jobs in bowyer's shops
- Fixed trap component jobs
- Fixed multi-material construction jobs
- Fixed deconstruction of buildings containing items
- Fixed interference caused by "store item in vehicle" jobs
manipulator: Fixed crash when selecting a profession from an empty listruby:- Fixed crash on Win64 due to truncated global addresses
- Fixed compilation on Win64
- Use correct raw string length with encodings
Structures
- Changed many
commentXML attributes with version numbers to use new
sinceattribute instead activity_event_conflictst.sides: named many fieldsbuilding_def.build_key: fixed size on 64-bit Linux and OS Xhistorical_kills:unk_30->killed_underground_regionunk_40->killed_region
historical_kills.killed_undead: removedskeletalflagui_advmode: aligned enough so that it doesn't crash (64-bit OS X/Linux)ui_advmode.show_menu: changed from bool to enumunit_personality.emotions.flags: now a bitfield
API Changes
- Added
DFHack::Job::removeJob()function - C++: Removed bitfield constructors that take an initial value. These kept
bitfields from being used in unions. Setbitfield.wholedirectly instead. - Lua:
bitfield.wholenow returns an integer, not a decimal
Additions/Removals
- Removed source for treefarm plugin (wasn't built)
- Added
modtools/change-build-menu: Edit the build mode sidebar menus - Added
modtools/if-entity: Run a command if the current entity matches a
given ID - Added
season-palette: Swap color palettes with the changes of the seasons
Other changes
- Changed minimum GCC version to 4.8 on OS X and Linux (earlier versions
wouldn't have worked on Linux anyway) - Updated TinyXML from 2.5.3 to 2.6.2
This release has many issues and has been superseded by 0.43.05-alpha4. Using this version is discouraged. The builds below may break your save.
DFHack 0.43.05-alpha2
This release is hopefully more stable than 0.43.05-alpha1. There have been some structure fixes, including one that was causing an exportlegends crash. Also, Ruby should work on all platforms and architectures now. This has not been tested as extensively, so please pay special attention to any problems you find with Ruby scripts and report them.
Update: there is a fairly common Ruby crash on 64-bit Windows. Also, Stonesense is not included.
The following changelog consists of changes since 0.43.03-r1:
Internals
- 64-bit support on all platforms
- Visual Studio 2015 now required on Windows instead of 2010
- GCC 4.8 recommended on Linux and OS X (and now supported on OS X)
- Several structure fixes to match 64-bit DF's memory layout
Lua
- Lua has been updated to 5.3 - see http://www.lua.org/manual/5.3/readme.html for details
- Floats are no longer implicitly converted to integers in DFHack API calls
df.new()supports more types:char,intptr_t,uintptr_t,long,unsigned long- String representations of vectors and a few other containers now include their lengths
Ruby
- Added support for loading ruby 2.x libraries
- Fixed some layouts on x64 (incomplete)
New Plugins
dwarfvetenables animal caretakinglabormanager(formerly autolabor2): a more advanced alternative toautolabortitle-folder: shows DF folder name in window title bar when enabled
New Scripts
load-save: loads a save non-interactively
Fixes
- The DF path on OS X can now contain spaces and
:characters - Buildings::setOwner() changes now persist properly when saved
devel/find-offsets: fixed a crash when vtables used by globals aren't available
Misc Improvements
- Documented all default keybindings (from
dfhack.init-example) in the
docs for the relevant commands; updates enforced by build system. luaandgui/gm-editornow support the same aliases (scr,unit, etc.)remotefortressreader: Added support for- world map snow coverage
- spatters
- wall info
- site towers, world buildings
- surface material
DFHack 0.43.05-alpha1
This release has some support for 0.43.05. 32-bit support should be about as good as it was in 0.43.03, while 64-bit support is somewhat more experimental. Please report issues that you encounter. It's especially helpful if you can try to reproduce them with both 32-bit and 64-bit DFHack.
Important: Some alpha releases in the past have been stable. This is most likely not one of them. It's intended primarily for people to help test and find issues.
The following things are known to be missing or possibly broken, so please don't report them if they are:
- Ruby
- Stonesense
- Some offsets (although do report any crashes that occur as a result)
Changelog since 0.43.03-r1:
Internals
- 64-bit support on all platforms
- Visual Studio 2015 now required on Windows instead of 2010
- GCC 4.8 recommended on Linux and OS X (and now supported on OS X)
- Several structure fixes to match 64-bit DF's memory layout
Lua
- Lua has been updated to 5.3 - see http://www.lua.org/manual/5.3/readme.html for details
- Floats are no longer implicitly converted to integers in DFHack API calls
df.new()supports more types:char,intptr_t,uintptr_t,long,unsigned long- String representations of vectors and a few other containers now include their lengths
Ruby
- Added support for loading ruby 2.x libraries
- Fixed some layouts on x64 (incomplete)
New Plugins
dwarfvetenables animal caretakinglabormanager(formerly autolabor2): a more advanced alternative toautolabortitle-folder: shows DF folder name in window title bar when enabled
New Scripts
load-save: loads a save non-interactively
Fixes
- The DF path on OS X can now contain spaces and
:characters - Buildings::setOwner() changes now persist properly when saved
devel/find-offsets: fixed a crash when vtables used by globals aren't available
Misc Improvements
luaandgui/gm-editornow support the same aliases (scr,unit, etc.)remotefortressreader: Added support for- world map snow coverage
- spatters
- wall info
- site towers, world buildings
- surface material
DFHack 0.43.03-r1
This is a release for 0.43.03 (not 0.43.04, 0.43.05, or anything newer - support for those is in progress, but likely to take longer than usual, so we decided to make a release for 0.43.03 in the meantime). Please do let us know about any issues - we can always make another 0.43.03 release, even if support for newer versions isn't done.
Changes since 0.42.06:
Lua
- Label widgets can now easily register handlers for mouse clicks
New Features
add-thought: allow syndrome name as-thoughtargumentgui/gm-editor- Added ability to insert default types into containers. For primitive types leave the type entry empty, and for references use
*. - Added
shift-escbinding to fully exit from editor - Added
gui/gm-editor togglecommand to toggle editor visibility (saving position)
- Added ability to insert default types into containers. For primitive types leave the type entry empty, and for references use
modtools/create-unit:- Added an option to attach units to an existing wild animal population
- Added an option to attach units to a map feature
Fixes
autofarm: Can now handle crops that grow for more than a seasoncombine-plants: Fixed recursion into sub-containerscreateitem: Now moves multiple created items to cursor correctlyexportlegends: Improved handling of unknown enum items (fixes many errors)gui/create-item: Fixed quality when creating multiple itemsgui/mod-manager: Fixed error when mods folder doesn't existmodtools/item-trigger: Fixed handling of items with subtypesstockflow:- Can order metal mechanisms
- Fixed material category of thread-spinning jobs
Misc Improvements
- The built-in
lscommand now wraps the descriptions of commands catsplosion: now a lua script instead of a pluginfix/diplomats: replacesfixdiplomatsfix/merchants: replacesfixmerchants- Unified script documentation and in-terminal help options
Removed
tweakmanager-quantity: no longer needed