Skip to content

Releases: DFHack/dfhack

DFHack 0.47.04-beta1

04 Apr 07:00
Compare
Choose a tag to compare
DFHack 0.47.04-beta1 Pre-release
Pre-release

DFHack 0.47.04-beta1

0.47.04 support is hopefully nearly complete. We're relying on community testing to promote this to a stable release, so let us know what you find!

To download, scroll down to "assets".

Updates since this was released:

  • There is a fixed exportlegends script that can generate maps here. To use, click "Raw", download the file, and save it to your hack/scripts folder (this should replace the file that is already there - if not, make sure you only give it the .lua extension).

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

  • 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)

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
  • 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
  • devel/export-dt-ini: updated some field names for DT for 0.47

  • devel/visualize-structure: added human-readable lengths to containers

  • 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
  • full-heal:

    • 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

  • 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

Internals

  • Improved support for tagged unions, allowing tools to access union fields more safely
  • Added separate changelogs in the scripts and df-structures repos
  • Moved reversing scripts to df_misc repo

Structures

  • Added an XML schema for validating df-structures syntax
  • Added divination_set_next_id and image_set_next_id globals
  • activity_entry_type: new enum type
  • adventure_optionst: identified many vmethods
  • agreement_details: identified most fields of most sub-structs
  • artifact_claim: identified several fields
  • artifact_record: identified several fields
  • caste_raw_flags: renamed and identified many flags to match information from Toady
  • creature_raw_flags: renamed and identified many flags to match information from Toady
  • crime_type: new enum type
  • dfhack_room_quality_level: added enum attributes for names of rooms of each quality
  • entity_site_link_type: new enum type
  • export_map_type: new enum type
  • historical_entity.flags: identified several flags
  • historical_entity.relations: renamed from unknown1b and identified several fields
  • historical_figure.vague_relationships: identified
  • historical_figure_info.known_info: renamed from secret, identified some fields
  • historical_figure: renamed unit_id2 to nemesis_id
  • history_event_circumstance_info: new struct type (and changed several history_event subclasses to use this)
  • history_event_reason_info: new struct type (and changed several history_event subclasses to use this)
  • honors_type: identified several fields
  • interaction_effect_create_itemst: new struct type
  • interaction_effect_summon_unitst: new struct type
  • item: identified several vmethods
  • layer_type: new enum type
  • plant.damage_flags: added is_dead
  • plot_role_type: new enum type
  • plot_strategy_type: new enum type
  • relationship_event_supplement: new struct type
  • relationship_event: new struct type
  • specific_ref: moved union data to data field
  • ui_look_list: moved union fields to data and renamed to match type enum
  • ui_sidebar_menus.location: added new profession-related fields, renamed and fixed types of deity-related fields
  • ui_sidebar_mode: added ZonesLocationInfo
  • unit_action: rearranged as tagged union with new sub-types; existing code should be compatible
  • vague_relationship_type: new enum type
  • vermin_flags: identified is_roaming_colony
  • viewscreen_justicest: identified interrogation-related fields
  • world_data.field_battles: identified and named several fields

DFHack 0.47.03-beta1

28 Feb 04:33
Compare
Choose a tag to compare
DFHack 0.47.03-beta1 Pre-release
Pre-release
  • Scroll down for downloads (under "assets")
  • This release only supports DF 0.47.03
  • This is more stable than earlier builds, but you may still run into issues, including crashes

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

  • deep-embark:

    • prevented running in non-fortress modes
    • ensured that only the newest wagon is deconstructed
  • full-heal:

    • 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

  • deep-embark:

    • improved support for using directly from the DFHack console
    • added a -clear option to cancel
  • exportlegends:

    • 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.47
  • agreement_details_type: added enum
  • agreement_details: added struct type (and many associated data types)
  • agreement_party: added struct type
  • announcement_type: added types new to 0.47
  • artifact_claim_type: added enum
  • artifact_claim: added struct type
  • breath_attack_type: added SHARP_ROCK
  • building_offering_placest: new class
  • building_type: added OfferingPlace
  • creature_interaction_effect: added subclasses new to 0.47
  • creature_raw_flags: identified several more items
  • d_init: added settings new to 0.47
  • entity_name_type: added MERCHANT_COMPANY, CRAFT_GUILD
  • entity_position_responsibility: added values new to 0.47
  • fortress_type: added enum
  • general_ref_type: added UNIT_INTERROGATEE
  • ghost_type: added None value
  • goal_type: added goals types new to 0.47
  • histfig_site_link: added subclasses new to 0.47
  • history_event_collection: added subtypes new to 0.47
  • history_event_context: added lots of new fields
  • history_event_reason: added captions for all items
  • history_event_reason: added items new to 0.47
  • history_event_type: added types for events new to 0.47, as well as corresponding history_event subclasses (too many to list here)
  • honors_type: added 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
  • job_skill: added INTRIGUE, RIDING
  • lair_type: added enum
  • monument_type: added enum
  • next_global_id: added enum
  • poetic_form_action: added Beseech
  • setup_character_info: expanded significantly in 0.47
  • text_system: added layout for struct
  • tile_occupancy: added varied_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

16 Feb 23:51
Compare
Choose a tag to compare
  • Important reminder: this only supports DF 0.44.12, because that was the newest version that existed when this DFHack version was released. See https://dfhack.org/builds/ for unstable builds that support newer versions.
  • Look under "Assets" below for downloads
  • Thanks to the 12 new contributors who made contributions to this release!

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 units

  • Fixed some cases where Lua filtered lists would not properly intercept keys, potentially triggering other actions on the same screen

  • autofarm:

    • 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

  • embark-assistant:

    • 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

  • gui/companion-order:

    • 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

  • gui/stamper:

    • stopped "invert" from resetting the designation type
    • switched to using DF's designation keybindings instead of custom bindings
    • fixed some typos and text overlapping
  • modtools/create-unit:

    • 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
  • modtools/reaction-trigger:

    • 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 to TEXT

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

  • embark-assistant:

    • 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

  • gui/gm-unit:

    • 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

  • modtools/create-unit:

    • 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)
  • modtools/reaction-trigger:

    • 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
  • mousequery: made it more clear when features are enabled

  • RemoteFortressReader:

    • 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 and plugin_save_data events for plugins to load/save persistent data
  • Added Maps::GetBiomeType and Maps::GetBiomeTypeByRef to infer biome types properly
  • Added Units::getPhysicalDescription (note that this depends on the unit_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 and gui.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 platforms

  • Added/identified types:

    • assume_identity_mode
    • musical_form_purpose
    • musical_form_style
      ...
Read more

DFHack 0.44.12-r2

28 Dec 02:34
Compare
Choose a tag to compare

This release fixes a few longstanding bugs from 0.44.12-r1.

DFHack 0.44.12-r2

New Plugins

  • debug: manages runtime debug print category filtering
  • nestboxes: automatically scan for and forbid fertile eggs incubating in a nestbox

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

  • full-heal:

    • stopped wagon resurrection
    • fixed a minor issue with post-resurrection hostility
  • gui/companion-order:

    • 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

  • labormanager:

    • 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
  • prospector: (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

  • devel/export-dt-ini:

    • added viewscreen offsets for DT 40.1.2
    • added item base flags offset
    • added needs offsets
  • embark-assistant:

    • 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.
  • full-heal:

    • added -all, -all_civ and -all_citizens arguments
    • added module support
    • now removes historical figure death dates and ghost data
  • growcrops: added all argument to grow all crops

  • gui/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 messages

  • siren: 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

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: new OrderedTable class

Structures

  • Win32: added missing vtables for viewscreen_storesst and squad_order_rescue_hfst

  • activity_event_performancest: renamed poem as written_content_id

  • body_part_status: identified gelded

  • dance_form: named musical_form_id and musical_written_content_id

  • incident_sub6_performance.participants: named performance_event and role_index

  • incident_sub6_performance:

    • named poetic_form_id, musical_form_id, and dance_form_id
    • made performance_event an enum
  • misc_trait_type: removed LikesOutdoors, Hardened, TimeSinceBreak, OnBreak (all unused by DF)

  • musical_form_instruments: named minimum_required and maximum_permitted

  • musical_form: named voices field

  • plant_tree_info: identified extent_east, etc.

  • plant_tree_tile: gave connection bits more meaningful names (e.g. connection_east instead of thick_branches_1)

  • poetic_form: identified many fields and related enum/bitfield types

  • setup_character_info: identified skill_points_remaining (for embark-skills)

  • ui.main: identified fortress_site

  • ui.squads: identified kill_rect_targets_scroll

  • ui: fixed alignment of main and squads (fixes tweak hotkey-clear and DF-AI)

  • unit_action.attack:

    • added lightly_tap and spar_report flags
    • identified attack_skill
  • unit_flags3: identified marked_for_gelding

  • unit_personality: identified stress_drain, stress_boost, likes_outdoors, combat_hardened

  • unit_storage_status: newly identified type, stores noble holdings information (used in viewscreen_layer_noblelistst)

  • unit_thought_type: added new expulsion thoughts from 0.44.12

  • viewscreen_layer_arena_creaturest: identified item- and name-related fields

  • viewscreen_layer_militaryst: identified equip.assigned.assigned_items

  • viewscreen_layer_noblelistst: identified storage_status (see unit_storage_status type)

  • viewscreen_new_regionst:

    • changed many int8_t fields to bool
    • identified rejection_msg, raw_folder, load_world_params
  • viewscreen_setupadventurest: identified some nemesis and personality fields, and page.ChooseHistfig

  • world_data: added mountain_peak_flags type, including is_volcano

  • world_history: identified names and/or types of some fields

  • world_site: identified names and/or types of some fields

  • written_content: named poetic_form

DFHack 0.44.12-r1

14 Jul 02:42
Compare
Choose a tag to compare

DFHack 0.44.12-r1

Fixes

  • Fixed displayed names (from Units::getVisibleName) for units with identities
  • Fixed potential memory leak in Screen::show()
  • Fixed special characters in command-prompt and other non-console in-game outputs on Linux/macOS (in tools using df2console)
  • command-prompt: added support for commands that require a specific screen to be visible, e.g. spotclean
  • die: fixed Windows crash in exit handling
  • dwarfmonitor, manipulator: fixed stress cutoffs
  • fix/dead-units: fixed script trying to use missing isDiplomat function
  • gui/workflow: fixed advanced constraint menu for crafts
  • 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
  • stonesense: fixed PLANT:DESERT_LIME:LEAF typo

Misc Improvements

  • Console:

    • added support for multibyte characters on Linux/macOS
    • made the console exit properly when an interactive command is active (liquids, mode, tiletypes)
  • Linux: added automatic support for GCC sanitizers in dfhack script

  • Made the DFHACK_PORT environment variable take priority over remote-server.json

  • Reduced time for designation jobs from tools like digv to be assigned workers

  • dfhack-run: added support for port specified in remote-server.json, to match DFHack's behavior

  • digfort: added better map bounds checking

  • embark-assistant:

    • 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.
  • rejuvenate:

    • Added -all argument to apply to all citizens
    • Added -force to include units under 20 years old
    • Clarified documentation
  • remove-stress:

    • added support for -all as an alternative to the existing all argument for consistency
    • sped up significantly
    • improved output/error messages
    • now removes tantrums, depression, and obliviousness
  • ruby: sped up handling of onupdate events

API

  • Added C++-style linked list interface for DF linked lists

  • Added to Units module:

    • getStressCategory(unit)
    • getStressCategoryRaw(level)
    • stress_cutoffs (Lua: getStressCutoffs())
  • Added Screen::Hide to temporarily hide screens, like command-prompt

  • Exposed Screen::zoom() to C++ (was Lua-only)

  • New functions: Units::isDiplomat(unit)

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
  • jsoncpp: updated to version 1.8.4 and switched to using a git submodule
  • Use dlsym(3) to find vtables from libgraphics.so

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 clones choices for internal table changes

Structures

  • Added support for automatically sizing arrays indexed with an enum

  • Added start_dwarf_count on 64-bit Linux again and fixed scanning script

  • Dropped 0.44.10 support

  • Dropped 0.44.11 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

  • army_controller: added new vector from 0.44.11

  • belief_system: new type, few fields identified

  • breath_attack_type: added OTHER

  • historical_figure_info.relationships.list: added unk_3a-unk_3c fields at end

  • history_event_entity_expels_hfst: added (new in 0.44.11)

  • history_event_site_surrenderedst: added (new in 0.44.11)

  • history_event_type: added SITE_SURRENDERED, ENTITY_EXPELS_HF (new in 0.44.11)

  • interface_key: added bindings new in 0.44.11

  • mental_picture: new type, some fields identified

  • mission_report:

    • new type (renamed, was mission before)
    • identified some fields
  • mission: new type (used in viewscreen_civlistst)

  • occupation_type: new in 0.44.11: MESSENGER

  • profession: new in 0.44.11: MESSENGER

  • spoils_report: new type, most fields identified

  • syndrome: identified a few fields

  • ui.squads: Added fields new in 0.44.12

  • ui_sidebar_menus:

    • unit.in_squad: renamed to unit.squad_list_opened, fixed location
    • unit: added expel_error and other unknown fields new in 0.44.11
    • hospital: added, new in 0.44.11
    • num_speech_tokens, unk_17d8: moved out of command_line to fix layout on x64
  • viewscreen_civlistst:

    • fixed layout and identified many fields
    • identified new pages
    • identified new messenger-related fields
  • viewscreen_image_creatorst:

    • fixed layout
    • identified many fields
  • viewscreen_locationsst: identified edit_input

  • 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, was missions
    • spoils_reports: identified
  • world.unk_131ec0, world.unk_131ef0: researched layout

  • world.worldgen_status: identified many fields

  • world: belief_systems: identified

DFHack 0.44.12-alpha1

08 Jul 21:14
Compare
Choose a tag to compare
DFHack 0.44.12-alpha1 Pre-release
Pre-release

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

08 Jul 03:21
Compare
Choose a tag to compare
Pre-release

Hotfix for Stonesense. 0.44.11-beta2 release notes are also included.

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-beta2

08 Jul 01:31
Compare
Choose a tag to compare
DFHack 0.44.11-beta2 Pre-release
Pre-release

Hopefully the Windows console won't shut itself down whenever it starts successfully now. There are also a few other quick bugfixes.

Note: due to Stonesense issues, this will be superseded by beta2.1. A Windows and macOS build are attached for now.

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

07 Jul 00:15
Compare
Choose a tag to compare
DFHack 0.44.11-beta1 Pre-release
Pre-release

This release contains some significant changes to the core and console. If you notice issues with the console or DF hanging in particular, please report them (along with anything else).

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:

    • added support for multibyte characters on Linux/macOS
    • made the console exit properly when an interactive command is active (liquids, mode, tiletypes)
  • Made the DFHACK_PORT environment variable take priority over remote-server.json

  • Linux: added automatic support for GCC sanitizers in dfhack script

  • digfort: added better map bounds checking

  • dfhack-run: added support for port specified in remote-server.json, to match DFHack's behavior

  • remove-stress:

    • added support for -all as an alternative to the existing all argument for consistency
    • sped up significantly
    • improved output/error messages
    • now removes tantrums, depression, and obliviousness
  • ruby: sped up handling of onupdate events

API

  • New functions: Units::isDiplomat(unit)
  • Exposed Screen::zoom() to C++ (was Lua-only)

Internals

  • jsoncpp: updated to version 1.8.4 and switched to using a git submodule

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: added SITE_SURRENDERED, ENTITY_EXPELS_HF (new in 0.44.11)
  • syndrome: identified a few fields
  • viewscreen_civlistst: fixed layout and identified many fields

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 clones choices for internal table changes

DFHack 0.44.11-alpha1

28 Jun 20:19
Compare
Choose a tag to compare
DFHack 0.44.11-alpha1 Pre-release
Pre-release

DFHack 0.44.11-alpha1

This is an initial release for 0.44.11 only. It hasn't been extensively tested, so use at your own risk, make backups of important saves, etc.

Structures

  • Dropped 0.44.10 support

  • Added support for automatically sizing arrays indexed with an enum

  • 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: added OTHER

  • historical_figure_info.relationships.list: added unk_3a-unk_3c fields at end

  • interface_key: added bindings new in 0.44.11

  • occupation_type: new in 0.44.11: MESSENGER

  • profession: new in 0.44.11: MESSENGER

  • ui_sidebar_menus:

    • unit.in_squad: renamed to unit.squad_list_opened, fixed location
    • unit: added expel_error and other unknown fields new in 0.44.11
    • hospital: added, new in 0.44.11
    • num_speech_tokens, unk_17d8: moved out of command_line to fix layout on x64
  • viewscreen_civlistst: added a few new fields (incomplete)

  • viewscreen_locationsst: identified edit_input