Skip to content

Releases: DFHack/dfhack

DFHack 0.44.03-beta1

30 Dec 07:14
Compare
Choose a tag to compare
DFHack 0.44.03-beta1 Pre-release
Pre-release

Some minor changes since 0.44.03-alpha1

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

Structures

  • Added 7 new globals from DF: version, min_load_version,
    movie_version, basic_seed, title, title_spaced,
    ui_building_resize_radius
  • Added twbt_render_map code offset on x64
  • Fixed an issue preventing enabler from being allocated by DFHack
  • Added job_type.PutItemOnDisplay
  • Found renderer vtable on osx64
  • adventure_movement_optionst, adventure_movement_hold_tilest,
    adventure_movement_climbst: named coordinate fields
  • mission: added type
  • unit: added 3 new vmethods: getCreatureTile, getCorpseTile, getGlowTile
  • viewscreen_assign_display_itemst: fixed layout on x64 and identified many fields
  • viewscreen_reportlistst: fixed layout, added mission_id vector
  • world.status: named missions vector

Other Changes

  • devel/dump-offsets: now ignores index globals

  • gui/pathable: added tile types to sidebar

  • modtools/skill-change:

    • now updates skill levels appropriately
    • only prints output if -loud is passed

DFHack 0.44.03-alpha1

26 Dec 17:09
Compare
Choose a tag to compare
DFHack 0.44.03-alpha1 Pre-release
Pre-release

0.44.03 support! This is very experimental, but it looks like there have been few changes since 0.44.02, so hopefully nothing breaks too terribly. As usual, make backups of any saves you care about.

Not much has changed since 0.44.02-beta1:

Other Changes

  • Lua: Improved json I/O error messages
  • Lua: Stopped a crash when trying to create instances of classes whose vtable
    addresses are not available

DFHack 0.44.02-beta1

24 Dec 22:55
Compare
Choose a tag to compare
DFHack 0.44.02-beta1 Pre-release
Pre-release

DFHack 0.44.02-beta1

Hopefully this is the last one before a stable release. Changes since 0.44.02-alpha1 are below:

Fixes

  • Fixed issues with the console output color affecting the prompt on Windows
  • createitem: stopped items from teleporting away in some 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

Structures

  • Located start_dwarf_count offset for all builds except 64-bit Linux;
    startdwarf should work now
  • Added buildings_other_id.DISPLAY_CASE
  • Fixed viewscreen_titlest.start_savegames alignment
  • Fixed unit alignment
  • Identified historical_entity.unknown1b.deities (deity IDs)

API Changes

  • Lua; Exposed get_vector() (from C++) for all types that support
    find(), e.g. df.unit.get_vector() == df.global.world.units.all

Additions/Removals

  • Added devel/check-other-ids: Checks the validity of "other" vectors in the
    world global
  • Added gui/cp437-table: An in-game CP437 table
  • Removed warn-stuck-trees: the corresponding DF bug was fixed in 0.44.01

Other Changes

  • The console now provides suggestions for built-in commands
  • devel/export-dt-ini: avoid hardcoding flags
  • 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
  • remotefortressreader: includes item stack sizes and some performance improvements

DFHack 0.44.02-alpha1

07 Dec 22:52
Compare
Choose a tag to compare
DFHack 0.44.02-alpha1 Pre-release
Pre-release

This is an initial release for 0.44.02. Not everything has been fully tested, so make backups of any saves you care about.

For script/plugin authors: a few globals have changed - see below.

DFHack 0.44.02-alpha1

Fixes

  • Fixed a crash that could occur if a symbol table in symbols.xml had no content
  • The Lua API can now wrap functions with 12 or 13 parameters

Structures

  • The ui_menu_width global is now a 2-byte array; the second item is the
    former ui_area_map_width global, which is now removed
  • The former announcements global is now a field in d_init
  • world fields formerly beginning with job_ are now fields of
    world.jobs, e.g. world.job_list is now world.jobs.list

API Changes

  • Lua: Added a new dfhack.console API

DFHack 0.43.05-r3.1

23 Nov 22:02
Compare
Choose a tag to compare

DFHack 0.43.05-r3.1

This is a final release for 0.43.05 (not 0.44.x!) with some fixes since 0.43.05-r2.

Note: If you previously downloaded 0.43.05-r3, the only change in r3.1 is the "scripts" folder. You can download one of the "new-scripts" archives below and replace your scripts folder with its contents.

Internals

Fixes

  • Linux: fixed argument to setarch in the dfhack launcher script

  • Ruby: fixed an error that occurred when the DF path contained an apostrophe

  • diggingInvaders now compiles again and is included

  • labormanager:

    • stopped waiting for on-duty military dwarves with minor injuries to obtain care
    • stopped waiting for meetings when participant(s) are dead
    • fixed a crash for dwarves with no cultural identity
  • luasocket: fixed receive() with a byte count

  • orders: fixed an error when importing orders with material categories

  • siren: fixed an error

  • stockpiles: fixed serialization of barrel and bin counts

  • view-item-info: fixed a CHEESE_MAT-related error

Misc Improvements

  • devel/export-dt-ini: added more offsets for new DT versions

  • digfort: added support for changing z-levels

  • exportlegends: suppressed ABSTRACT_BUILDING warning

  • gui/dfstatus: excluded logs in constructions

  • labormanager:

    • stopped assigning woodcutting jobs to elves
    • "recover wounded" jobs now weighted based on altruism
  • remotefortressreader: added support for buildings, grass, riders, and
    hair/beard styles

DFHack 0.43.05-r2

13 Jul 03:14
Compare
Choose a tag to compare

DFHack 0.43.05-r2

Internals

  • Rebuilding DFHack can be faster if nothing Git-related has changed
  • Plugins can now hook Screen::readTile()
  • Improved Lua compatibility with plugins that hook into GUI functions (like TWBT)
  • Expanded focus strings for jobmanagement and workquota_condition viewscreens
  • Gui::getAnyUnit(): added support for viewscreen_unitst,
    viewscreen_textviewerst, viewscreen_layer_unit_relationshipst
  • Fixed (limited) keybinding support in PRINT_MODE:TEXT on macOS
  • Added a new standardized Gui::refreshSidebar() function to fix behavior of
    some plugins on the lowest z-level
  • New Buildings module functions: markedForRemoval(), getCageOccupants()
  • Limited recursive command invocations to 20 to prevent crashes
  • Added an onLoad.init-example file

Lua

  • Improved C++ exception handling for some native functions that aren't direct
    wrappers around C++ functions (in this case, error messages could be nil and
    cause the Lua interpreter to quit)

  • Added support for a key_pen option in Label widgets

  • Fixed to_first argument to dfhack.screen.dismiss()

  • Added optional map parameters to some screen functions

  • Exposed some more functions to Lua:

    • dfhack.gui.refreshSidebar()
    • dfhack.gui.getAnyUnit()
    • dfhack.gui.getAnyBuilding()
    • dfhack.gui.getAnyItem()
    • dfhack.gui.getAnyPlant()
    • dfhack.gui.getDepthAt()
    • dfhack.units.getUnitsInBox()
    • dfhack.units.isVisible()
    • dfhack.maps.isTileVisible()
    • dfhack.buildings.markedForRemoval()
    • dfhack.buildings.getCageOccupants()
    • dfhack.internal.md5()
    • dfhack.internal.md5File()
    • dfhack.internal.threadid()
  • New function: widgets.Pages:getSelectedPage()

  • Added a key option to EditField and FilteredList widgets

  • Fixed an issue preventing repeatUtil.cancel() from working when called
    from the callback

Ruby

  • Fixed a crash when creating new instances of DF virtual classes (e.g. fixes a
    lever crash)
  • Ruby scripts can now be loaded from any script paths specified (from script-
    paths.txt or registered through the Lua API)
  • unit_find() now uses Gui::getSelectedUnit() and works in more places
    (e.g. exterminate now works from more screens, like command-prompt)

New Internal Commands

  • alias: allows configuring aliases for other commands

New Plugins

  • orders: Manipulate manager orders
  • pathable: Back-end for gui/pathable

New Scripts

  • clear-smoke: Removes all smoke from the map
  • empty-bin: Empty a bin onto the floor
  • fix/retrieve-units: Spawns stuck invaders/guests
  • fix/stuck-merchants: Dismisses stuck merchants that haven't entered the map yet
  • gui/pathable: View whether tiles on the map can be pathed to
  • gui/teleport: A front-end for the teleport script
  • warn-stuck-trees: Detects citizens stuck in trees

New Tweaks

  • tweak burrow-name-cancel: Implements the "back" option when renaming a
    burrow, which currently does nothing (bug 1518)
  • tweak cage-butcher: Adds an option to butcher units when viewing cages with "q"

Fixes

  • Enforced use of stdout.log and stderr.log (instead of their .txt
    counterparts) on Windows

  • Fixed getItemBaseValue() for cheese, sheets and instruments

  • Fixed alignment in:

    • viewscreen_choose_start_sitest
    • viewscreen_export_graphical_mapst
    • viewscreen_setupadventurest
    • viewscreen_setupdwarfgamest
  • adv-max-skills: fixed error due to viewscreen changes

  • autolabor: fixed a crash when assigning haulers while traders are active

  • buildingplan: fixed an issue that prevented certain numbers from being used
    in building names

  • confirm:

    • dialogs are now closed permanently when disabled from the settings UI
    • fixed an issue that could have prevented closing dialogs opened by pressing "s"
  • embark-tools: stopped the sand indicator from overlapping dialogs

  • exportlegends: fixed some crashes and site map issues

  • devel/find-offsets: fixed current_weather scan

  • gui/extended-status: fixed an error when no beds are available

  • gui/family-affairs: fixed issues with assigning lovers

  • gui/gm-editor:

    • made keybinding display order consistent
    • stopped keys from performing actions in help screen
  • gui/manager-quantity:

    • now allows orders with a limit of 0
    • fixed screen detection
  • gui/mechanisms, gui/room-list: fixed an issue when recentering the map when exiting

  • lever: prevented pulling non-lever buildings, which can cause crashes

  • markdown: fixed file encoding

  • modtools/create-unit:

    • fixed when popup announcements are present
    • added checks to ensure that the current game mode is restored
  • resume: stopped drawing on the map border

  • show-unit-syndromes: fixed an error when handling some syndromes

  • strangemood: fixed some issues with material searches

  • view-item-info: fixed a color-related error for some materials

Misc Improvements

  • Docs: prevented automatic hyphenation in some browsers, which was producing
    excessive hyphenation sometimes

  • command-prompt: invoking command-prompt a second time now hides the prompt

  • gui/extended-status: added an option to assign/replace the manager

  • gui/load-screen:

    • adjusted dialog width for long folder names
    • added modification times and DF versions to dialog
  • gui/mechanisms, gui/room-list, gui/siege-engine: add and list "exit to map" options

  • lever: added support for pulling levers at high priority

  • markdown: now recognizes -n in addition to /n

  • remotefortressreader: more data exported, used by Armok Vision v0.17.0

  • resume, siege-engine: improved compatibility with GUI-hooking plugins (like TWBT)

  • sc-script: improved help text

  • teleport: can now be used as a module

  • tweak embark-profile-name: now enabled in dfhack.init-example

  • tweak hotkey-clear: fixed display on larger screens

DFHack 0.43.05-r1

14 May 03:21
Compare
Choose a tag to compare

(See below for downloads)

Internals

  • 64-bit support on all platforms
  • Several structure fixes to match 64-bit DF's memory layout
  • Added DFHack::Job::removeJob() function
  • New module: Designations - handles designation creation (currently for plants only)
  • Added Gui::getSelectedPlant()
  • Added Units::getMainSocialActivity(), Units::getMainSocialEvent()
  • Visual Studio 2015 now required to build on Windows instead of 2010
  • GCC 4.8 or newer required to build on Linux and OS X (and now supported on OS X)
  • Updated TinyXML from 2.5.3 to 2.6.2
  • Added the ability to download files manually before building

Lua

  • Lua has been updated to 5.3 - see http://www.lua.org/manual/5.3/readme.html for details

    • Floats are no longer implicitly converted to integers in DFHack API calls
  • df.new() supports more types: char, intptr_t, uintptr_t, long, unsigned long

  • String representations of vectors and a few other containers now include their lengths

  • Added a tile-material module

  • Added a Painter:key_string() method

  • Made dfhack.gui.revealInDwarfmodeMap() available

Ruby

  • Added support for loading ruby 2.x libraries

New Plugins

  • dwarfvet enables animal caretaking
  • generated-creature-renamer: Renames generated creature IDs for use with graphics packs
  • labormanager (formerly autolabor2): a more advanced alternative to autolabor
  • misery: re-added and updated for the 0.4x series
  • title-folder: shows DF folder name in window title bar when enabled

New Scripts

  • adv-rumors: improves the "Bring up specific incident or rumor" menu in adventure mode
  • fix/tile-occupancy: Clears bad occupancy flags on the selected tile.
  • install-info: Logs basic troubleshooting information about the current DFHack installation
  • load-save: loads a save non-interactively
  • modtools/change-build-menu: Edit the build mode sidebar menus
  • modtools/if-entity: Run a command if the current entity matches a given ID
  • season-palette: Swap color palettes with the changes of the seasons
  • unforbid: Unforbids all items

New Tweaks

  • tweak condition-material <tweak>: fixes a crash in the work order condition material list
  • tweak hotkey-clear <tweak>: adds an option to clear bindings from DF hotkeys

Fixes

  • The DF path on OS X can now contain spaces and : characters

  • Buildings::setOwner() changes now persist properly when saved

  • ls now lists scripts in folders other than hack/scripts, when applicable

  • Fixed plug output alignment for plugins with long names

  • add-thought: fixed support for emotion names

  • autochop:

    • fixed several issues with job creation and removal
    • stopped designating the center tile (unreachable) for large trees
    • stopped options from moving when enabling and disabling burrows
    • fixed display of unnamed burrows
  • devel/find-offsets: fixed a crash when vtables used by globals aren't available

  • getplants:

    • fixed several issues with job creation and removal
    • stopped designating the center tile (unreachable) for large trees
  • gui/workflow: added extra keybinding to work with gui/extended-status

  • manipulator:

    • Fixed crash when selecting a profession from an empty list
    • Custom professions are now sorted alphabetically more reliably
  • modtools/create-item:

    • made gloves usable by specifying handedness
    • now creates pairs of boots and gloves
  • modtools/create-unit:

    • stopped permanently overwriting the creature creation menu in arena mode
    • now uses non-English names
    • added -setUnitToFort option to make a unit a civ/group member more easily
    • fixed some issues where units would appear in unrevealed areas of the map
  • modtools/item-trigger: fixed errors with plant growths

  • remotefortressreader: fixed a crash when serializing the local map

  • ruby: fixed a crash when unloading the plugin on Windows

  • stonesense: disabled overlay in STANDARD-based print modes to prevent crashes

  • title-version: now hidden when loading an arena

Misc Improvements

  • Documented all default keybindings (from :file:dfhack.init-example) in the
    docs for the relevant commands; updates enforced by build system.

  • autounsuspend: reduced update frequency to address potential performance issues

  • gui/extended-status: added a feature to queue beds

  • lua and gui/gm-editor now support the same aliases (scr, unit, etc.)

  • manipulator: added social activities to job column

  • remotefortressreader: Added support for

    • world map snow coverage
    • spatters
    • wall info
    • site towers, world buildings
    • surface material
    • building items
    • DF version info
  • title-version: Added a prerelease indicator

  • workflow: Re-added Alt-W keybindings

DFHack 0.43.05-beta2

24 Apr 01:45
Compare
Choose a tag to compare
DFHack 0.43.05-beta2 Pre-release
Pre-release

This release adds 64-bit Stonesense support on all platforms, plus a few new tweaks and other fixes.

Fixes

  • Fixed Buildings::updateBuildings(), along with building creation/deletion events
  • Fixed plug output alignment for plugins with long names
  • Fixed a crash that happened when a LUA_PATH environment variable was set
  • add-thought: fixed number conversion
  • gui/workflow: fixed range editing producing the wrong results for certain numbers
  • modtools/create-unit: now uses non-English names
  • modtools/item-trigger: fixed errors with plant growths
  • remotefortressreader: fixed a crash when serializing the local map
  • stockflow: fixed an issue with non-integer manager order limits
  • title-folder: fixed compatibility issues with certain SDL libraries on macOS

Structures

  • Added some missing renderer VTable addresses on macOS
  • entity.resources.organic: identified parchment
  • entity_sell_category: added Parchment and CupsMugsGoblets
  • ui_advmode_menu: added Build
  • ui_unit_view_mode: added PrefOccupation
  • unit_skill: identified natural_skill_lvl (was unk_1c)
  • viewscreen_jobmanagementst: identified max_workshops
  • viewscreen_overallstatusst: made visible_pages an enum
  • viewscreen_pricest: identified fields
  • viewscreen_workquota_conditionst: gave some fields unk names

API Changes

  • Allowed the Lua API to accept integer-like floats and strings when expecting an integer
  • Lua: New Painter:key_string() method
  • Lua: Added dfhack.getArchitecture() and dfhack.getArchitectureName()

Additions/Removals:

  • Added adv-rumors script: improves the "Bring up specific incident or rumor" menu in adventure mode
  • Added install-info script for basic troubleshooting
  • Added tweak condition-material: fixes a crash in the work order condition material list
  • Added tweak hotkey-clear: adds an option to clear bindings from DF hotkeys
  • autofarm: reverted local biome detection (from 0.43.05-alpha3)

Other Changes

  • Added a DOWNLOAD_RUBY CMake option, to allow use of a system/external ruby library
  • Added the ability to download files manually before building
  • gui/extended-status: added a feature to queue beds
  • remotefortressreader: added building items, DF version info
  • stonesense: Added support for 64-bit macOS and Linux

DFHack 0.43.05-beta1

12 Feb 01:57
Compare
Choose a tag to compare
DFHack 0.43.05-beta1 Pre-release
Pre-release

This build fixes some structure issues and related crashes.

DFHack 0.43.05-beta1

Fixes

  • Fixed various crashes on 64-bit Windows related to DFHack screens, notably manipulator
  • Fixed addresses of next_id globals on 64-bit Linux (fixes an automaterial/box-select crash)
  • ls now lists scripts in folders other than hack/scripts, when applicable
  • modtools/create-unit: stopped permanently overwriting the creature creation
    menu in arena mode
  • season-palette: fixed an issue where only part of the screen was redrawn
    after changing the color scheme
  • title-version: now hidden when loading an arena

Structures

  • file_compressorst: fixed field sizes on x64
  • historical_entity: fixed alignment on x64
  • ui_sidebar_menus.command_line: fixed field sizes on x64
  • viewscreen_choose_start_sitest: added 3 missing fields, renamed in_embark_only_warning
  • viewscreen_layer_arena_creaturest: identified more fields
  • world.math: identified
  • world.murky_pools: identified

Additions/Removals

  • generated-creature-renamer: Renames generated creature IDs for use with graphics packs

Other Changes

  • title-version: Added a prerelease indicator

DFHack 0.43.05-alpha4

29 Dec 21:02
Compare
Choose a tag to compare
DFHack 0.43.05-alpha4 Pre-release
Pre-release

This build fixes some strange behavior with buildingplan and several other tools on all platforms, as well as a number of broken tools due to missing globals on 64-bit Linux.

Fixes

  • Fixed an issue with uninitialized bitfields that was causing several issues
    (disappearing buildings in buildingplan's planning mode, strange behavior in
    the extended stocks screen, and likely other problems). This issue was
    introduced in 0.43.05-alpha3.
  • stockflow: Fixed an "integer expected" error

Structures

  • Located several globals on 64-bit Linux: flows, timed_events, ui_advmode,
    ui_building_assign_type, ui_building_assign_is_marked,
    ui_building_assign_units, ui_building_assign_items, and ui_look_list. This
    fixes search, zone, and force, among others.
  • ui_sidebar_menus: Fixed some x64 alignment issues

Additions/Removals

  • Added fix/tile-occupancy: Clears bad occupancy flags on the selected tile.
    Useful for fixing blocked tiles introduced by the above buildingplan issue.
  • Added a Lua tile-material module

Other Changes

  • labormanager: Add support for shell crafts
  • manipulator: Custom professions are now sorted alphabetically more reliably