Development Changelog¶
This file contains changes grouped by the release (stable or development) in which they first appeared. See Building the changelogs for more information.
See Changelog for a list of changes grouped by stable releases.
Contents
- DFHack 0.47.04-r3
- DFHack 0.47.04-r2
- DFHack 0.47.04-r1
- DFHack 0.47.04-beta1
- DFHack 0.47.03-beta1
- DFHack 0.44.12-r3
- DFHack 0.44.12-r2
- DFHack 0.44.12-r1
- DFHack 0.44.12-alpha1
- DFHack 0.44.11-beta2.1
- DFHack 0.44.11-beta2
- DFHack 0.44.11-beta1
- DFHack 0.44.11-alpha1
- DFHack 0.44.10-r2
- DFHack 0.44.10-r1
- DFHack 0.44.10-beta1
- DFHack 0.44.10-alpha1
- DFHack 0.44.09-r1
- DFHack 0.44.09-alpha1
- DFHack 0.44.08-alpha1
- DFHack 0.44.07-beta1
- DFHack 0.44.07-alpha1
- DFHack 0.44.05-r2
- DFHack 0.44.05-r1
- DFHack 0.44.05-alpha1
- DFHack 0.44.04-alpha1
- DFHack 0.44.03-beta1
- DFHack 0.44.03-alpha1
- DFHack 0.44.02-beta1
- DFHack 0.44.02-alpha1
DFHack 0.47.04-r3¶
New Plugins¶
- xlsxreader: provides an API for Lua scripts to read Excel spreadsheets
New Scripts¶
- quickfort: DFHack-native implementation of quickfort with many new features and integrations - see the Quickfort User Guide for details
- timestream: controls the speed of the calendar and creatures
- uniform-unstick: prompts units to reevaluate their uniform, by removing/dropping potentially conflicting worn items
Fixes¶
ban-cooking: fixed an error in several subcommands
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
-
- fixed an error when saving furniture stockpiles
- fixed a crash when loading food stockpiles
Misc Improvements¶
-
- added an
inspect
subcommand to print the item and material tokens of existing items, which can be used to create additional matching items - added support for plant growths (fruit, berries, leaves, etc.)
- added an
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
unretire-anyone: made undead creature names appear in the historical figure list
zone:
- added slaughter indication to
uinfo
output - added an
enumnick
subcommand to assign enumerated nicknames (e.g “Hen 1”, “Hen 2”…)
- added slaughter indication to
API¶
- Added
DFHack::to_search_normalized()
(Lua:dfhack.toSearchNormalized()
) to convert non-ASCII alphabetic characters to their ASCII equivalents
Structures¶
history_event_masterpiece_createdst
: fixed alignment, including subclasses, and identifiedskill_at_time
item_body_component
: fixed some alignment issues and identified some fields (also applies to subclasses likeitem_corpsest
)stockpile_settings
: removedfurniture.sand_bags
(no longer present)
Documentation¶
- Fixed syntax highlighting of most code blocks to use the appropriate language (or no language) instead of Python
DFHack 0.47.04-r2¶
New Scripts¶
- animal-control: helps manage the butchery and gelding of animals
- devel/kill-hf: kills a historical figure
- geld: gelds or ungelds animals
- list-agreements: lists all guildhall and temple agreements
- list-waves: displays migration wave information for citizens/units
- ungeld: ungelds animals (wrapper around geld)
New Tweaks¶
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
Fixed
Units::isEggLayer
,Units::isGrazer
,Units::isMilkable
,Units::isTrainableHunting
,Units::isTrainableWar
, andUnits::isTamable
ignoring the unit’s casteLinux: fixed
dfhack.getDFPath()
(Lua) andProcess::getPath()
(C++) to always return the DF root path, even if the working directory has changed-
- fixed an issue causing blueprints touching the southern or eastern edges of the map to be rejected (northern and western edges were already allowed). This allows blueprints that span the entire embark area.
- fixed y-line tracking when .csv files contain lines with only commas
embark-assistant: fixed a couple of incursion handling bugs.
embark-skills: fixed an issue with structures causing the
points
option to do nothing-
- stopped including some tags with
-1
values which don’t provide useful information - fixed an issue where two different
<reason>
tags could be included in a<historical_event>
- stopped including some tags with
getplants: fixed issues causing plants to be collected even if they have no growths (or unripe growths)
gui/advfort: fixed “operate pump” job
gui/load-screen: fixed an issue causing longer timezones to be cut off
-
- fixed an issue preventing custom furnaces from being built
- fixed handling of new jobs in 0.47
-
- made
-depictedAs
argument work - removed unused
-domain
and-description
arguments - fixed an error when creating the historical figure
- made
-
- fixed an issue causing renamed units to display their old name in legends mode and some other places
- fixed an error preventing the script from working
pref-adjust: fixed some compatibility issues and a potential crash
-
- fixed an issue that could cause block coordinates to be incorrect
- fixed a couple crashes that could result from decoding invalid enum items (
site_realization_building_type
andimprovement_type
)
rendermax: fixed a hang that could occur when enabling some renderers, notably on Linux
-
- fixed some issues that could cause the splash screen to hang
- fixed a crash when launching Stonesense
Misc Improvements¶
Linux/macOS: Added console keybindings for deleting words (Alt+Backspace and Alt+d in most terminals)
-
- added a command explanation or error message when entering an invalid command
- added tool recipes (minecarts, wheelbarrows, stepladders, etc.)
armoks-blessing: added adjustments to values and needs
-
- now automatically creates folder trees when organizing blueprints into subfolders (e.g.
blueprint 30 30 1 rooms/dining dig
will create the fileblueprints/rooms/dining-dig.csv
); previously it would fail if theblueprints/rooms/
directory didn’t already exist - now writes blueprints to the
blueprints/
subfolder instead of the df root folder
- now automatically creates folder trees when organizing blueprints into subfolders (e.g.
confirm: added a confirmation dialog for convicting dwarves of crimes
devel/query: added many new query options
-
- added a
force
option to truncate blueprints if the full blueprint would extend off the edge of the map - documented that removing ramps, cutting trees, and gathering plants are indeed supported
- handled double quotes (“) at the start of a string, allowing .csv files exported from spreadsheets to work without manual modification
- added a
-
- added ability to protect dwarves based on symbols in their custom professions
- added ability to select dwarves based on migration wave
-
- added ability to save all files to a subfolder, named after the region folder and date by default
- changed some enum values from numbers to their string representations
- changed some flags to be represented by self-closing tags instead of true/false strings (e.g.
<is_volcano/>
) - note that this may require changes to other XML-parsing utilities
gui/advfort: added support for specifying the entity used to determine available resources
gui/gm-editor: added support for automatically following ref-targets when pressing the
i
keymanipulator: added a new column option to display units’ goals
modtools/moddable-gods: added support for
neuter
gender-
- added a new
goth
profile - added support for adjusting just the selected dwarf
- added a new
remove-stress: added a
-value
argument to enable setting stress level directlyworkorder: changed default frequency from “Daily” to “OneTime”
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 theref-target
XML attribute - Made
dfhack.units.getRaceNameById()
,dfhack.units.getRaceBabyNameById()
, anddfhack.units.getRaceChildNameById()
available to Lua
Ruby¶
- Updated
item_find
andbuilding_find
to use centralized logic that works on more screens
Structures¶
- Added a new
<df-other-vectors-type>
, which allowsworld.*.other
collections of vectors to use the correct subtypes for items creature_raw
: renamedgender
tosex
to match the field inunit
, which is more frequently usedcrime
: identifiedwitnesses
, which contains the data held by the old field namedreports
intrigue
: new type (split out fromhistorical_figure_relationships
)items_other_id
: removedBAD
, and by extension,world.items.other.BAD
, which was overlapping withworld.items.bad
job_type
: added job types new to 0.47plant_raw
: material_defs now contains arrays rather than loose fieldspronoun_type
: new enum (previously documented in field comments)setup_character_info
: fixed a couple alignment issues (needed by embark-skills)ui_advmode_menu
: identified some new enum items
Documentation¶
- Added some new dev-facing pages, including dedicated pages about the remote API, memory research, and documentation
- Expanded the installation guide
- Made a couple theme adjustments
DFHack 0.47.04-r1¶
Fixes¶
- Fixed a crash in
find()
for some types when no world is loaded - Fixed translation of certain types of in-game names
- autogems: fixed an issue with binned gems being ignored in linked stockpiles
- catsplosion: fixed error when handling races with only one caste (e.g. harpies)
- exportlegends: fixed error when exporting maps
- spawnunit: fixed an error when forwarding some arguments but not a location to modtools/create-unit
- stocks: fixed display of book titles
- tweak embark-profile-name: fixed handling of the native shift+space key
Misc Improvements¶
-
- made interaction export more robust and human-readable
- removed empty
<item_subtype>
and<claims>
tags
getplants: added switches for designations for farming seeds and for max number designated per plant
manipulator: added intrigue to displayed skills
-
- added
-equip
option to equip created units - added
-skills
option to give skills to units - added
-profession
and-customProfession
options to adjust unit professions
- added
search: added support for the fortress mode justice screen
dfhack.init-example
: enabled autodump
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
Structures¶
- Added globals:
cur_rain
,cur_rain_counter
,cur_snow
,cur_snow_counter
,weathertimer
,jobvalue
,jobvalue_setter
,interactitem
,interactinvslot
,handleannounce
,preserveannounce
,updatelightstate
agreement_details_data_plot_sabotage
: new struct type, along with relatedagreement_details_type.PlotSabotage
architectural_element
: new enumbattlefield
: new struct typebreed
: new struct typecreature_handler
: identified vmethodscrime
: removed fields ofreports
that are no longer presentdance_form
: identified most fieldshistory_event_context
: identified fieldsidentity_type
: new enumidentity
: renamedciv
toentity_id
, identifiedtype
image_set
: new struct typeinterrogation_report
: new struct typeitemdef_flags
: new enum, withGENERATED
flagjustification
: new enumlever_target_type
: identifiedLeverMechanism
andTargetMechanism
valuesmusical_form
: identified fields, including some renames. Also identified fields inscale
andrhythm
region_weather
: new struct typesquad_order_cause_trouble_for_entityst
: identified fieldsunit_thought_type
: added several new thought typesviewscreen_workquota_detailsst
: identified fields
DFHack 0.47.04-beta1¶
New Scripts¶
- color-schemes: manages color schemes
- devel/print-event: prints the description of an event by ID or index
- gui/color-schemes: an in-game interface for color-schemes
- light-aquifers-only: changes heavy aquifers to light aquifers
- on-new-fortress: runs DFHack commands only in a new fortress
- once-per-save: runs DFHack commands unless already run in the current save
- resurrect-adv: brings your adventurer back to life
- reveal-hidden-units: exposes all sneaking units
- workorder: allows queuing manager jobs; smart about shear and milk creature jobs
Fixes¶
Fixed a crash when starting DFHack in headless mode with no terminal
devel/visualize-structure: fixed padding detection for globals
-
- added UTF-8 encoding and XML escaping for more fields
- added checking for unhandled structures to avoid generating invalid XML
- fixed missing fields in
history_event_assume_identityst
export
-
- when resurrected by specifying a corpse, units now appear at the location of the corpse rather than their location of death
- resurrected units now have their tile occupancy set (and are placed in the prone position to facilitate this)
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
devel/export-dt-ini: updated some field names for DT for 0.47
devel/visualize-structure: added human-readable lengths to containers
dfhack-run: added color output support
-
- 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
-
- added evilness and force IDs to regions
- added profession and weapon info to relevant entities
- added support for many new history events in 0.47
- added historical event relationships and supplementary data
-
- made resurrection produce a historical event viewable in Legends mode
- made error messages more explanatory
install-info: added DFHack build ID to report
modtools/create-item: added
-matchingGloves
and-matchingShoes
arguments-
- added
-duration
argument to make the unit vanish after some time - added
-locationRange
argument to allow spawning in a random position within a defined area - added
-locationType
argument to specify the type of location to spawn in
- added
Internals¶
- Added separate changelogs in the scripts and df-structures repos
- Improved support for tagged unions, allowing tools to access union fields more safely
- Moved
reversing
scripts to df_misc repo
Structures¶
- Added an XML schema for validating df-structures syntax
- Added
divination_set_next_id
andimage_set_next_id
globals activity_entry_type
: new enum typeadventure_optionst
: identified many vmethodsagreement_details
: identified most fields of most sub-structsartifact_claim
: identified several fieldsartifact_record
: identified several fieldscaste_raw_flags
: renamed and identified many flags to match information from Toadycreature_raw_flags
: renamed and identified many flags to match information from Toadycrime_type
: new enum typedfhack_room_quality_level
: added enum attributes for names of rooms of each qualityentity_site_link_type
: new enum typeexport_map_type
: new enum typehistorical_entity.flags
: identified several flagshistorical_entity.relations
: renamed fromunknown1b
and identified several fieldshistorical_figure.vague_relationships
: identifiedhistorical_figure_info.known_info
: renamed fromsecret
, identified some fieldshistorical_figure
: renamedunit_id2
tonemesis_id
history_event_circumstance_info
: new struct type (and changed severalhistory_event
subclasses to use this)history_event_reason_info
: new struct type (and changed severalhistory_event
subclasses to use this)honors_type
: identified several fieldsinteraction_effect_create_itemst
: new struct typeinteraction_effect_summon_unitst
: new struct typeitem
: identified several vmethodslayer_type
: new enum typeplant.damage_flags
: addedis_dead
plot_role_type
: new enum typeplot_strategy_type
: new enum typerelationship_event_supplement
: new struct typerelationship_event
: new struct typespecific_ref
: moved union data todata
fieldui_look_list
: moved union fields todata
and renamed to matchtype
enumui_sidebar_menus.location
: added new profession-related fields, renamed and fixed types of deity-related fieldsui_sidebar_mode
: addedZonesLocationInfo
unit_action
: rearranged as tagged union with new sub-types; existing code should be compatiblevague_relationship_type
: new enum typevermin_flags
: identifiedis_roaming_colony
viewscreen_justicest
: identified interrogation-related fieldsworld_data.field_battles
: identified and named several fields
DFHack 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
-
- prevented running in non-fortress modes
- ensured that only the newest wagon is deconstructed
-
- 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¶
-
- improved support for using directly from the DFHack console
- added a
-clear
option to cancel
-
- 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.47agreement_details_type
: added enumagreement_details
: added struct type (and many associated data types)agreement_party
: added struct typeannouncement_type
: added types new to 0.47artifact_claim_type
: added enumartifact_claim
: added struct typebreath_attack_type
: addedSHARP_ROCK
building_offering_placest
: new classbuilding_type
: addedOfferingPlace
caste_raw_flags
: renamed many items to match DF namescreature_interaction_effect
: added subclasses new to 0.47creature_raw_flags
:- renamed many items to match DF names
- identified several more items
d_init
: added settings new to 0.47entity_name_type
: addedMERCHANT_COMPANY
,CRAFT_GUILD
entity_position_responsibility
: added values new to 0.47fortress_type
: added enumgeneral_ref_type
: addedUNIT_INTERROGATEE
ghost_type
: addedNone
valuegoal_type
: added goals types new to 0.47histfig_site_link
: added subclasses new to 0.47history_event_collection
: added subtypes new to 0.47history_event_context
: added lots of new fieldshistory_event_reason
:- added items new to 0.47
- added captions for all items
history_event_type
: added types for events new to 0.47, as well as correspondinghistory_event
subclasses (too many to list here)honors_type
: added struct typeinteraction_effect
: added subtypes new to 0.47interaction_source_experimentst
: added class typeinteraction_source_usage_hint
: added values new to 0.47interface_key
: added items for keys new to 0.47job_skill
: addedINTRIGUE
,RIDING
lair_type
: added enummonument_type
: added enumnext_global_id
: added enumpoetic_form_action
: addedBeseech
setup_character_info
: expanded significantly in 0.47text_system
: added layout for structtile_occupancy
: addedvaried_heavy_aquifer
tool_uses
: added items:PLACE_OFFERING
,DIVINATION
,GAMES_OF_CHANCE
viewscreen_counterintelligencest
: new class (only layout identified so far)
DFHack 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 inconsistent results from
Units::isGay
for asexual unitsFixed some cases where Lua filtered lists would not properly intercept keys, potentially triggering other actions on the same screen
-
- 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
-
- 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
-
- 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
-
- stopped “invert” from resetting the designation type
- switched to using DF’s designation keybindings instead of custom bindings
- fixed some typos and text overlapping
-
- 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
-
- 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 toTEXT
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
combine-drinks: added more default output, similar to combine-plants
createitem: added a list of valid castes to the “invalid caste” error message, for convenience
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
-
- 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-
- 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-
- 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)
- added the ability to specify
-
- 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
- added
mousequery: made it more clear when features are enabled
-
- 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 new
plugin_load_data
andplugin_save_data
events for plugins to load/save persistent data - Added
Maps::GetBiomeType
andMaps::GetBiomeTypeByRef
to infer biome types properly - Added
Units::getPhysicalDescription
(note that this depends on theunit_get_physical_description
offset, which is not yet available for all DF builds)
Internals¶
- Added new Persistence module
- Cut down on internal DFHack dependencies to improve build times
- Improved concurrency in event and server handlers
- Persistent data is now stored in JSON files instead of historical figures - existing data will be migrated when saving
- Stonesense: fixed some OpenGL build issues on Linux
Lua¶
- Exposed
gui.dwarfmode.get_movement_delta
andgui.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 platformsAdded/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
need_type
: fixedPrayOrMeditate
typopersonality_facet_type
,value_type
: addedNONE
valuestwbt_render_map
: added for 64-bit 0.44.12 (for map-render)
DFHack 0.44.12-r2¶
New Plugins¶
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-
- stopped wagon resurrection
- fixed a minor issue with post-resurrection hostility
-
- 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
-
- 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
prospect: (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
-
- added viewscreen offsets for DT 40.1.2
- added item base flags offset
- added needs offsets
-
- 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.
-
- added
-all
,-all_civ
and-all_citizens
arguments - added module support
- now removes historical figure death dates and ghost data
- added
growcrops: added
all
argument to grow all cropsgui/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 messagessiren: removed break handling (relevant
misc_trait_type
was no longer used - see “Structures” section)
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
- Classes (C++ only):
Internals¶
- Added a usable unit test framework for basic tests, and a few basic tests
- Added
CMakeSettings.json
with intellisense support - Changed
plugins/CMakeLists.custom.txt
to be ignored by git and created (if needed) at build time instead - 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 - Linux/macOS: changed recommended build backend from Make to Ninja (Make builds will be significantly slower now)
Lua¶
utils
: newOrderedTable
class
Structures¶
Win32: added missing vtables for
viewscreen_storesst
andsquad_order_rescue_hfst
activity_event_performancest
: renamed poem as written_content_idbody_part_status
: identifiedgelded
dance_form
: named musical_form_id and musical_written_content_idincident_sub6_performance.participants
: named performance_event and role_indexincident_sub6_performance
:- named poetic_form_id, musical_form_id, and dance_form_id
- made performance_event an enum
misc_trait_type
: removedLikesOutdoors
,Hardened
,TimeSinceBreak
,OnBreak
(all unused by DF)musical_form_instruments
: named minimum_required and maximum_permittedmusical_form
: named voices fieldplant_tree_info
: identifiedextent_east
, etc.plant_tree_tile
: gave connection bits more meaningful names (e.g.connection_east
instead ofthick_branches_1
)poetic_form
: identified many fields and related enum/bitfield typessetup_character_info
: identifiedskill_points_remaining
(for embark-skills)ui.main
: identifiedfortress_site
ui.squads
: identifiedkill_rect_targets_scroll
ui
: fixed alignment ofmain
andsquads
(fixes tweak hotkey-clear and DF-AI)unit_action.attack
:- added
lightly_tap
andspar_report
flags - identified
attack_skill
- added
unit_flags3
: identifiedmarked_for_gelding
unit_personality
: identifiedstress_drain
,stress_boost
,likes_outdoors
,combat_hardened
unit_storage_status
: newly identified type, stores noble holdings information (used inviewscreen_layer_noblelistst
)unit_thought_type
: added new expulsion thoughts from 0.44.12viewscreen_layer_arena_creaturest
: identified item- and name-related fieldsviewscreen_layer_militaryst
: identifiedequip.assigned.assigned_items
viewscreen_layer_noblelistst
: identifiedstorage_status
(seeunit_storage_status
type)viewscreen_new_regionst
:- changed many
int8_t
fields tobool
- identified
rejection_msg
,raw_folder
,load_world_params
- changed many
viewscreen_setupadventurest
: identified some nemesis and personality fields, andpage.ChooseHistfig
world_data
: addedmountain_peak_flags
type, includingis_volcano
world_history
: identified names and/or types of some fieldsworld_site
: identified names and/or types of some fieldswritten_content
: named poetic_form
DFHack 0.44.12-r1¶
Fixes¶
- Console: fixed crash when entering long commands on Linux/macOS
- Fixed special characters in command-prompt and other non-console in-game outputs on Linux/macOS (in tools using
df2console
) - Removed jsoncpp’s
include
andlib
folders from DFHack builds/packages - 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 dig to be assigned workers
-
- 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.
-
- Added
-all
argument to apply to all citizens - Added
-force
to include units under 20 years old - Clarified documentation
- Added
API¶
Added to
Units
module:getStressCategory(unit)
getStressCategoryRaw(level)
stress_cutoffs
(Lua:getStressCutoffs()
)
Internals¶
- Added documentation for all RPC functions and a build-time check
- Added support for build IDs to development builds
- Changed default build architecture to 64-bit
- Use
dlsym(3)
to find vtables from libgraphics.so
Structures¶
Added
start_dwarf_count
on 64-bit Linux again and fixed scanning scriptarmy_controller
: added new vector from 0.44.11belief_system
: new type, few fields identifiedmental_picture
: new type, some fields identifiedmission_report
:- new type (renamed, was
mission
before) - identified some fields
- new type (renamed, was
mission
: new type (used inviewscreen_civlistst
)spoils_report
: new type, most fields identifiedviewscreen_civlistst
:- identified new pages
- identified new messenger-related fields
- split
unk_20
into 3 pointers
viewscreen_image_creatorst
:- fixed layout
- identified many fields
viewscreen_reportlistst
: added new mission and spoils report-related fields (fixed layout)world.languages
: identified (minimal information; whole languages stored elsewhere)world.status
:mission_reports
: renamed, wasmissions
spoils_reports
: identified
world.unk_131ec0
,world.unk_131ef0
: researched layoutworld.worldgen_status
: identified many fieldsworld
:belief_systems
: identified
DFHack 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
DFHack 0.44.11-beta2.1¶
Internals¶
- Stonesense: fixed build
DFHack 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
DFHack 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:
Linux: added automatic support for GCC sanitizers in
dfhack
scriptMade the
DFHACK_PORT
environment variable take priority overremote-server.json
dfhack-run: added support for port specified in
remote-server.json
, to match DFHack’s behaviordigfort: added better map bounds checking
-
- added support for
-all
as an alternative to the existingall
argument for consistency - sped up significantly
- improved output/error messages
- now removes tantrums, depression, and obliviousness
- added support for
ruby: sped up handling of onupdate events
API¶
- Exposed
Screen::zoom()
to C++ (was Lua-only) - New functions:
Units::isDiplomat(unit)
Internals¶
- jsoncpp: updated to version 1.8.4 and switched to using a git submodule
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
cloneschoices
for internal table changes
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
: addedSITE_SURRENDERED
,ENTITY_EXPELS_HF
(new in 0.44.11)syndrome
: identified a few fieldsviewscreen_civlistst
: fixed layout and identified many fields
DFHack 0.44.11-alpha1¶
Structures¶
Added support for automatically sizing arrays indexed with an enum
Dropped 0.44.10 support
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
: addedOTHER
historical_figure_info.relationships.list
: addedunk_3a
-unk_3c
fields at endinterface_key
: added bindings new in 0.44.11occupation_type
: new in 0.44.11:MESSENGER
profession
: new in 0.44.11:MESSENGER
ui_sidebar_menus
:unit.in_squad
: renamed tounit.squad_list_opened
, fixed locationunit
: addedexpel_error
and other unknown fields new in 0.44.11hospital
: added, new in 0.44.11num_speech_tokens
,unk_17d8
: moved out ofcommand_line
to fix layout on x64
viewscreen_civlistst
: added a few new fields (incomplete)viewscreen_locationsst
: identifiededit_input
DFHack 0.44.10-r2¶
New Scripts¶
- add-recipe: adds unknown crafting recipes to the player’s civ
- gui/stamper: allows manipulation of designations by transforms such as translations, reflections, rotations, and inversion
Fixes¶
Fixed many tools incorrectly using the
dead
unit flag (they should generally checkflags2.killed
instead)Fixed many tools passing incorrect arguments to printf-style functions, including a few possible crashes (changelayer, follow, forceequip, generated-creature-renamer)
Fixed several bugs in Lua scripts found by static analysis (df-luacheck)
Fixed
-g
flag (GDB) in Linuxdfhack
script (particularly on x64)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
-
- stop running repeatedly when paused
- fixed crash when furnaces are linked to same stockpiles as jeweler’s workshops
autogems, fix-unit-occupancy: stopped running when a fort isn’t loaded (e.g. while embarking)
autounsuspend: now skips planned buildings
ban-cooking: fixed errors introduced by kitchen structure changes in 0.44.10-r1
buildingplan, fortplan: stopped running before a world has fully loaded
deramp: fixed deramp to find designations that already have jobs posted
dig: fixed “Inappropriate dig square” announcements if digging job has been posted
fixnaked: fixed errors due to emotion changes in 0.44
remove-stress: fixed an error when running on soul-less units (e.g. with
-all
)reveal: stopped revealing tiles adjacent to tiles above open space inappropriately
stockpiles:
loadstock
now sets usable and unusable weapon and armor settingsstocks: stopped listing carried items under stockpiles where they were picked up from
Misc Improvements¶
Added script name to messages produced by
qerror()
in Lua scriptsFixed 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
-
- 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
fix/retrieve-units: now re-adds units to active list to counteract fix/dead-units
item-descriptions: fixed several grammatical errors
-
- added quantity argument
- now selects a caste at random if none is specified
-
- 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
API¶
New functions (also exposed to Lua):
Units::isKilled()
Units::isActive()
Units::isGhost()
Removed Vermin module (unused and obsolete)
Internals¶
- Added build option to generate symbols for large generated files containing df-structures metadata
- Added fallback for YouCompleteMe database lookup failures (e.g. for newly-created files)
- Improved efficiency and error handling in
stl_vsprintf
and related functions - jsoncpp: fixed constructor with
long
on Linux
Lua¶
- Added
profiler
module to measure lua performance - Enabled shift+cursor movement in WorkshopOverlay-derived screens
Structures¶
incident_sub6_performance
: identified some fieldsitem_body_component
: fixed location ofcorpse_flags
job_handler
: fixed static array layoutjob_type
: addedis_designation
attributeunit_flags1
: renameddead
toinactive
to better reflect its useunit_personality
: fixed location ofcurrent_focus
andundistracted_focus
unit_thought_type
: addedSawDeadBody
(new in 0.44.10)
DFHack 0.44.10-r1¶
New Tweaks¶
Fixes¶
- Lua: registered
dfhack.constructions.designateRemove()
correctly - prospect: 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 functionsadv-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
-
- added support for stone restrictions screen (under
z
: Status) - added support for kitchen preferences (also under
z
)
- added support for stone restrictions screen (under
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()
Internals¶
- Fixed compiler warnings on all supported build configurations
- Windows build scripts now work with non-C system drives
Structures¶
dfhack_room_quality_level
: new enumglowing_barrier
: identifiedtriggered
, added commentsitem_flags2
: renamedhas_written_content
tounk_book
kitchen_exc_type
: new enum (forui.kitchen
)mandate.mode
: now an enumunit_personality.emotions.flags.memory
: identifiedviewscreen_kitchenprefst.forbidden
,possible
: now a bitfield,kitchen_pref_flag
world_data.feature_map
: added extensive documentation (in XML)
DFHack 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
autodump, automelt, autotrade, stocks, stockpiles: fixed conflict with building renaming
exterminate: fixed documentation of
this
option-
- 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
-
- 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
stockpiles: stopped sidebar option from overlapping with autodump
tweak block-labors: fixed two causes of crashes related in the v-p-l menu
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 function names to DFHack’s NullPointer and InvalidArgument exceptions
- Added
Gui::inRenameBuilding()
- Linux: required plugins to have symbols resolved at link time, for consistency with other platforms
DFHack 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)
DFHack 0.44.09-r1¶
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
Internals¶
- OS X: Can now build with GCC 7 (or older)
Structures¶
army
: added vector new in 0.44.07building_type
: added human-readablename
attributefurnace_type
: added human-readablename
attributerenderer
: fixed vtable addresses on 64-bit OS Xsite_reputation_report
: namedreports
vectorworkshop_type
: added human-readablename
attribute
DFHack 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
DFHack 0.44.08-alpha1¶
Fixes¶
- fix/dead-units: fixed a bug that could remove some arriving (not dead) units
DFHack 0.44.07-beta1¶
Misc Improvements¶
- modtools/item-trigger: added the ability to specify inventory mode(s) to trigger on
Structures¶
- Added symbols for Toady’s 0.44.07 Linux test build to fix Bug 10615
world_site
: fixed alignment
DFHack 0.44.07-alpha1¶
Fixes¶
- Fixed some CMake warnings (CMP0022)
- Support for building on Ubuntu 18.04
- embark-assistant: fixed detection of reanimating biomes
Misc Improvements¶
-
- Added search for adamantine
- Now supports saving/loading profiles
fillneeds: added
-all
option to apply to all unitsremotefortressreader: added flows, instruments, tool names, campfires, ocean waves, spiderwebs
Structures¶
Several new names in instrument raw structures
identity
: identifiedprofession
,civ
manager_order_template
: fixed last field typeviewscreen_createquotast
: fixed layoutworld.language
: movedcolors
,shapes
,patterns
toworld.descriptors
world.reactions
,world.reaction_categories
: moved to new compound,world.reactions
. Requires renaming:world.reactions
toworld.reactions.reactions
world.reaction_categories
toworld.reactions.reaction_categories
DFHack 0.44.05-r2¶
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 theDFHACK_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.)
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
DFHack 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-
- fixed display of creatures and poetic/music/dance forms on
prefs
screen - added “view unit” option
- now exposes the selected unit to other tools
- fixed display of creatures and poetic/music/dance forms on
names: fixed many errors
quicksave: fixed an issue where the “Saving…” indicator often wouldn’t appear
Misc Improvements¶
binpatch: now reports errors for empty patch files
force: now provides useful help
-
- 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
-
- added a profession editor
- misc. layout improvements
launch: can now ride creatures
names: can now edit names of units
-
- support for moving adventurers
- support for vehicles, gem shapes, item volume, art images, item improvements
Internals¶
Gui::getAnyUnit()
supports many more screens/menus
Structures¶
- New globals:
soul_next_id
DFHack 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
DFHack 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
DFHack 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
globalsgui/pathable: added tile types to sidebar
-
- now updates skill levels appropriately
- only prints output if
-loud
is passed
Structures¶
Added
job_type.PutItemOnDisplay
Added
twbt_render_map
code offset on x64Fixed an issue preventing
enabler
from being allocated by DFHackFound
renderer
vtable on osx64New globals:
version
min_load_version
movie_version
basic_seed
title
title_spaced
ui_building_resize_radius
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
DFHack 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
DFHack 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
-
- 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
-
- 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 supportfind()
, e.g.df.unit.get_vector() == df.global.world.units.all
Structures¶
- Added
buildings_other_id.DISPLAY_CASE
- Fixed
unit
alignment - Fixed
viewscreen_titlest.start_savegames
alignment - Identified
historical_entity.unknown1b.deities
(deity IDs) - Located
start_dwarf_count
offset for all builds except 64-bit Linux; startdwarf should work now
DFHack 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 former
announcements
global is now a field ind_init
- 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 world
fields formerly beginning withjob_
are now fields ofworld.jobs
, e.g.world.job_list
is nowworld.jobs.list