Releases: DFHack/dfhack
DFHack 0.44.03-beta1
Some minor changes since 0.44.03-alpha1
Fixes
autolabor
,autohauler
,labormanager
: added support for "put item on
display" jobs and building/destroying display furnituregui/gm-editor
: fixed an error when editing primitives in Lua tables
Structures
- Added 7 new globals from DF:
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 fieldsmission
: added typeunit
: added 3 new vmethods:getCreatureTile
,getCorpseTile
,getGlowTile
viewscreen_assign_display_itemst
: fixed layout on x64 and identified many fieldsviewscreen_reportlistst
: fixed layout, addedmission_id
vectorworld.status
: namedmissions
vector
Other Changes
-
devel/dump-offsets
: now ignoresindex
globals -
gui/pathable
: added tile types to sidebar -
modtools/skill-change
:- now updates skill levels appropriately
- only prints output if
-loud
is passed
DFHack 0.44.03-alpha1
0.44.03 support! This is very experimental, but it looks like there have been few changes since 0.44.02, so hopefully nothing breaks too terribly. As usual, make backups of any saves you care about.
Not much has changed since 0.44.02-beta1:
Other Changes
- Lua: Improved
json
I/O error messages - Lua: Stopped a crash when trying to create instances of classes whose vtable
addresses are not available
DFHack 0.44.02-beta1
DFHack 0.44.02-beta1
Hopefully this is the last one before a stable release. Changes since 0.44.02-alpha1 are below:
Fixes
- Fixed issues with the console output color affecting the prompt on Windows
createitem
: stopped items from teleporting away in some fortsgui/gm-unit
: can now edit mining skillgui/quickcmd
: stopped error from adding too many commandsmodtools/create-unit
: fixed error when domesticating units
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)
API Changes
- Lua; Exposed
get_vector()
(from C++) for all types that support
find()
, e.g.df.unit.get_vector() == df.global.world.units.all
Additions/Removals
- Added
devel/check-other-ids
: Checks the validity of "other" vectors in the
world
global - Added
gui/cp437-table
: An in-game CP437 table - Removed
warn-stuck-trees
: the corresponding DF bug was fixed in 0.44.01
Other Changes
- The console now provides suggestions for built-in commands
devel/export-dt-ini
: avoid hardcoding flagsgui/gm-editor
: added enum names to enum edit dialogsgui/gm-unit
: made skill search case-insensitivegui/rename
: added "clear" and "special characters" optionsremotefortressreader
: includes item stack sizes and some performance improvements
DFHack 0.44.02-alpha1
This is an initial release for 0.44.02. Not everything has been fully tested, so make backups of any saves you care about.
For script/plugin authors: a few globals have changed - see below.
DFHack 0.44.02-alpha1
Fixes
- Fixed a crash that could occur if a symbol table in symbols.xml had no content
- The Lua 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
formerui_area_map_width
global, which is now removed - The former
announcements
global is now a field ind_init
world
fields formerly beginning withjob_
are now fields of
world.jobs
, e.g.world.job_list
is nowworld.jobs.list
API Changes
- Lua: Added a new
dfhack.console
API
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
setarch
in thedfhack
launcher script -
Ruby: fixed an error that occurred when the DF path contained an apostrophe
-
diggingInvaders
now 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
Buildings
module functions:markedForRemoval()
,getCageOccupants()
- Limited recursive command invocations to 20 to prevent crashes
- Added an
onLoad.init-example
file
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_pen
option in Label widgets -
Fixed
to_first
argument todfhack.screen.dismiss()
-
Added optional
map
parameters 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
key
option 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
lever
crash) - 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.exterminate
now 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 theteleport
scriptwarn-stuck-trees
: Detects citizens stuck in trees
New Tweaks
tweak
burrow-name-cancel: Implements the "back" option when renaming a
burrow, which currently does nothing (bug 1518)tweak
cage-butcher: Adds an option to butcher units when viewing cages with "q"
Fixes
-
Enforced use of
stdout.log
andstderr.log
(instead of their.txt
counterparts) on Windows -
Fixed
getItemBaseValue()
for cheese, sheets and instruments -
Fixed alignment in:
viewscreen_choose_start_sitest
viewscreen_export_graphical_mapst
viewscreen_setupadventurest
viewscreen_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_weather
scan -
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-prompt
a 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-n
in 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 -
tweak
embark-profile-name: now enabled indfhack.init-example
-
tweak
hotkey-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-material
module -
Added a
Painter:key_string()
method -
Made
dfhack.gui.revealInDwarfmodeMap()
available
Ruby
- Added support for loading ruby 2.x libraries
New Plugins
dwarfvet
enables animal caretakinggenerated-creature-renamer
: Renames generated creature IDs for use with graphics packslabormanager
(formerly autolabor2): a more advanced alternative toautolabor
misery
: 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
-
ls
now lists scripts in folders other thanhack/scripts
, when applicable -
Fixed
plug
output 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
-setUnitToFort
option 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 -
lua
andgui/gm-editor
now 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-W
keybindings
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
plug
output alignment for plugins with long names - Fixed a crash that happened when a
LUA_PATH
environment 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
: identifiedparchment
entity_sell_category
: addedParchment
andCupsMugsGoblets
ui_advmode_menu
: addedBuild
ui_unit_view_mode
: addedPrefOccupation
unit_skill
: identifiednatural_skill_lvl
(wasunk_1c
)viewscreen_jobmanagementst
: identifiedmax_workshops
viewscreen_overallstatusst
: madevisible_pages
an enumviewscreen_pricest
: identified fieldsviewscreen_workquota_conditionst
: gave some fieldsunk
names
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-rumors
script: improves the "Bring up specific incident or rumor" menu in adventure mode - Added
install-info
script 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) ls
now 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_warning
viewscreen_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 extendedstocks
screen, 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-material
module
Other Changes
labormanager
: Add support for shell craftsmanipulator
: Custom professions are now sorted alphabetically more reliably