DFHack 0.47.04-r1
New Scripts
color-schemes
: manages color schemesdevel/print-event
: prints the description of an event by ID or indexdevel/sc
: checks size of structuresdevel/visualize-structure
: displays the raw memory of a structuregui/color-schemes
: an in-game interface forcolor-schemes
light-aquifers-only
: changes heavy aquifers to light aquiferson-new-fortress
: runs DFHack commands only in a new fortressonce-per-save
: runs DFHack commands unless already run in the current saveresurrect-adv
: brings your adventurer back to lifereveal-hidden-units
: exposes all sneaking unitsworkorder
: allows queuing manager jobs; smart about shear and milk creature jobs
Fixes
-
Fixed a crash in
find()
for some types when no world is loaded -
Fixed a crash when starting DFHack in headless mode with no terminal
-
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) -
deep-embark
:- prevented running in non-fortress modes
- ensured that only the newest wagon is deconstructed
-
devel/visualize-structure
: fixed padding detection for globals -
exportlegends
:- 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
-
full-heal
:- 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)
- fixed issues with removing corpses
- fixed resurrection for non-historical figures
-
spawnunit
: fixed an error when forwarding some arguments but not a location tomodtools/create-unit
-
stocks
: fixed display of book titles -
teleport
: fixed setting new tile occupancy -
tweak
embark-profile-name: fixed handling of the native shift+space key
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
-
deep-embark
:- improved support for using directly from the DFHack console
- added a
-clear
option to cancel
-
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 -
embark-assistant
:- updated embark aquifer info to show all aquifer kinds present
- added neighbor display, including kobolds (SKULKING) and necro tower count
- updated aquifer search criteria to handle the new variation
- added search criteria for embark initial tree cover
- added search criteria for necro tower count, neighbor civ count, and specific neighbors. Should handle additional entities, but not tested
-
exportlegends
:- 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 interaction export more robust and human-readable
- removed empty
<item_subtype>
and<claims>
tags - added identity information
- added creature raw names and flags
-
full-heal
:- made resurrection produce a historical event viewable in Legends mode
- made error messages more explanatory
-
getplants
: added switches for designations for farming seeds and for max number designated per plant -
gui/prerelease-warning
: updated links and information about nightly builds -
install-info
: added DFHack build ID to report -
manipulator
: added intrigue to displayed skills -
modtools/create-item
: added-matchingGloves
and-matchingShoes
arguments -
modtools/create-unit
:- 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
-equip
option to equip created units - added
-skills
option to give skills to units - added
-profession
and-customProfession
options to adjust unit professions
- added
-
modtools/syndrome-trigger
: enabled simultaneous use of-synclass
and-syndrome
-
repeat
: added-list
option -
search
: added support for the fortress mode justice screen -
dfhack.init-example
: enabledautodump
API
- Added
Items::getBookTitle
to get titles of books. Catches titles buried in improvements, unlike getDescription.
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
Lua
pairs()
now returns available class methods for DF types
Structures
-
Added an XML schema for validating df-structures syntax
-
Added globals:
cur_rain
,cur_rain_counter
,cur_snow
,cur_snow_counter
,weathertimer
,jobvalue
,jobvalue_setter
,interactitem
,interactinvslot
,handleannounce
,preserveannounce
,updatelightstate
-
Added
divination_set_next_id
andimage_set_next_id
globals -
Dropped support for 0.44.12-0.47.02
-
abstract_building_type
: added types (and subclasses) new to 0.47 -
activity_entry_type
: new enum type -
adventure_optionst
: identified many vmethods -
agreement_details_data_plot_sabotage
: new struct type, along with relatedagreement_details_type.PlotSabotage
-
agreement_details_type
: added enum -
agreement_details
:- identified most fields of most sub-structs
- added struct type (and many associated data types)
-
agreement_party
: added struct type -
announcement_type
: added types new to 0.47 -
architectural_element
: new enum -
artifact_claim_type
: added enum -
artifact_claim
:- identified several fields
- added struct type
-
artifact_record
: identified several fields -
battlefield
: new struct type -
breath_attack_type
: addedSHARP_ROCK
-
breed
: new struct type -
building_offering_placest
: new class -
building_type
: addedOfferingPlace
-
caste_raw_flags
:- renamed and identified many flags to match information from Toady
- renamed many items to match DF names
-
creature_handler
: identified vmethods -
creature_interaction_effect
: added subclasses new to 0.47 -
creature_raw_flags
:- renamed and identified many flags to match information from Toady
- renamed many items to match DF names
- identified several more items
-
crime_type
: new enum type -
crime
: removed fields ofreports
that are no longer present -
dfhack_room_quality_level
: added enum attributes for names of rooms of each quality -
d_init
: added settings new to 0.47 -
entity_name_type
: addedMERCHANT_COMPANY
,CRAFT_GUILD
-
entity_position_responsibility
: added values new to 0.47 -
entity_site_link_type
: new enum type -
export_map_type
: new enum type -
fortress_type
: added enum -
general_ref_type
: addedUNIT_INTERROGATEE
-
ghost_type
: addedNone
value -
goal_type
: added goals types new to 0.47 -
histfig_site_link
: added subclasses new to 0.47 -
historical_entity.flags
: identified several flags -
historical_entity.relations
: renamed fromunknown1b
and identified several fields -
historical_figure.vague_relationships
: identified -
historical_figure_info.known_info
: renamed fromsecret
, identified some fields -
historical_figure
: renamedunit_id2
tonemesis_id
-
history_event_circumstance_info
: new struct type (and changed severalhistory_event
subclasses to use this) -
history_event_collection
: added subtypes new to 0.47 -
history_event_context
:- identified fields
- added lots of new fields
-
history_event_reason_info
: new struct type (and changed severalhistory_event
subclasses to use this) -
history_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
:- identified several fields
- added struct type
-
identity_type
: new enum -
identity
: renamedciv
toentity_id
, identifiedtype
-
image_set
: new struct type -
interaction_effect_create_itemst
: new struct type -
interaction_effect_summon_unitst
: new struct type -
interaction_effect
: added subtypes new to 0.47 -
interaction_source_experimentst
: added class type -
interaction_source_usage_hint
: added values new to 0.47 -
interface_key
: added items for keys new to 0.47 -
interrogation_report
: new struct type -
itemdef_flags
: new enum, withGENERATED
flag -
item
: identified several vmethods -
job_skill
: addedINTRIGUE
,RIDING
-
justification
: new enum -
lair_type
: added enum -
layer_type
: new enum type -
lever_target_type
: identifiedLeverMechanism
andTargetMechanism
values -
monument_type
: added enum -
next_global_id
: added enum -
plant.damage_flags
: addedis_dead
-
plot_role_type
: new enum type -
plot_strategy_type
: new enum type -
poetic_form_action
: addedBeseech
-
region_weather
: new struct type -
relationship_event_supplement
: new struct type -
relationship_event
: new struct type -
setup_character_info
: expanded significantly in 0.47 -
specific_ref
: moved union data todata
field -
squad_order_cause_trouble_for_entityst
: identified fields -
text_system
: added layout for struct -
tile_occupancy
: addedvaried_heavy_aquifer
-
tool_uses
: added items:PLACE_OFFERING
,DIVINATION
,GAMES_OF_CHANCE
-
ui_look_list
: moved union fields todata
and renamed to matchtype
enum -
ui_sidebar_menus.location
: added new profession-related fields, renamed and fixed types of deity-related fields -
ui_sidebar_mode
: addedZonesLocationInfo
-
unit_action
: rearranged as tagged union with new sub-types; existing code should be compatible -
unit_thought_type
: added several new thought types -
vague_relationship_type
: new enum type -
vermin_flags
: identifiedis_roaming_colony
-
viewscreen_counterintelligencest
: new class (only layout identified so far) -
viewscreen_justicest
: identified interrogation-related fields -
viewscreen_workquota_detailsst
: identified fields -
world_data.field_battles
: identified and named several fields