Merge remote-tracking branch 'origin_DFHACK/develop' into twbt_experiments
commit
41856aef37
@ -1,15 +1,18 @@
|
|||||||
[submodule "plugins/stonesense"]
|
[submodule "plugins/stonesense"]
|
||||||
path = plugins/stonesense
|
path = plugins/stonesense
|
||||||
url = git://github.com/DFHack/stonesense.git
|
url = ../../DFHack/stonesense.git
|
||||||
[submodule "plugins/isoworld"]
|
[submodule "plugins/isoworld"]
|
||||||
path = plugins/isoworld
|
path = plugins/isoworld
|
||||||
url = git://github.com/DFHack/isoworld.git
|
url = ../../DFHack/isoworld.git
|
||||||
[submodule "library/xml"]
|
[submodule "library/xml"]
|
||||||
path = library/xml
|
path = library/xml
|
||||||
url = git://github.com/DFHack/df-structures.git
|
url = ../../DFHack/df-structures.git
|
||||||
[submodule "depends/clsocket"]
|
[submodule "depends/clsocket"]
|
||||||
path = depends/clsocket
|
path = depends/clsocket
|
||||||
url = git://github.com/DFHack/clsocket.git
|
url = ../../DFHack/clsocket.git
|
||||||
[submodule "scripts2"]
|
[submodule "scripts2"]
|
||||||
path = scripts
|
path = scripts
|
||||||
url = git://github.com/dfhack/scripts.git
|
url = ../../DFHack/scripts.git
|
||||||
|
[submodule "depends/jsoncpp"]
|
||||||
|
path = depends/jsoncpp-sub
|
||||||
|
url = ../../open-source-parsers/jsoncpp.git
|
||||||
|
@ -0,0 +1,350 @@
|
|||||||
|
{
|
||||||
|
"environments": [
|
||||||
|
{
|
||||||
|
"environment": "msvc_2015_x86",
|
||||||
|
"PATH": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64_x86;${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64;${env.ProgramFiles(x86)}\\Windows Kits\\10\\bin\\x86;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\bin\\x86;${env.PATH}",
|
||||||
|
"VS140COMNTOOLS": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\Common7\\Tools\\",
|
||||||
|
"VCINSTALLDIR": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\",
|
||||||
|
"WindowsSdkDir": "${env.ProgramFiles(x86)}\\Windows Kits\\10\\",
|
||||||
|
"UCRTVersion": "10.0.10240.0",
|
||||||
|
"UniversalCRTSdkDir": "${env.ProgramFiles(x86)}\\Windows Kits\\10\\",
|
||||||
|
"LIB": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\LIB;${env.ProgramFiles(x86)}\\Windows Kits\\10\\lib\\10.0.10240.0\\ucrt\\x86;${env.ProgramFiles(x86)}\\Windows Kits\\10\\lib\\um\\x86;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\x86",
|
||||||
|
"INCLUDE": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\INCLUDE;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\shared;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\um;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\winrt;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\Include\\um;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\Include\\shared",
|
||||||
|
"LIBPATH": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\LIB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environment": "msvc_2015_x64",
|
||||||
|
"PATH": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64;${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\BIN;${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\BIN\\1033;${env.ProgramFiles(x86)}\\Windows Kits\\bin\\x64;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\bin\\x64;${env.PATH}",
|
||||||
|
"VS140COMNTOOLS": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\Common7\\Tools\\",
|
||||||
|
"VCINSTALLDIR": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\",
|
||||||
|
"WindowsSdkDir": "${env.ProgramFiles(x86)}\\Windows Kits\\10\\",
|
||||||
|
"UCRTVersion": "10.0.10240.0",
|
||||||
|
"UniversalCRTSdkDir": "${env.ProgramFiles(x86)}\\Windows Kits\\10\\",
|
||||||
|
"LIB": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\LIB\\amd64;${env.ProgramFiles(x86)}\\Windows Kits\\10\\lib\\10.0.10240.0\\ucrt\\x64;${env.ProgramFiles(x86)}\\Windows Kits\\10\\lib\\um\\x64;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\x64",
|
||||||
|
"INCLUDE": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\INCLUDE;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\shared;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\um;${env.ProgramFiles(x86)}\\Windows Kits\\10\\include\\winrt;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\Include\\um;${env.ProgramFiles(x86)}\\Windows Kits\\8.1\\Include\\shared",
|
||||||
|
"LIBPATH": "${env.ProgramFiles(x86)}\\Microsoft Visual Studio 14.0\\VC\\LIB\\amd64"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "MSVC 32 Debug",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "RelWithDebInfo",
|
||||||
|
"inheritEnvironments": [ "msvc_x86_x64", "msvc_2015_x86" ],
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REMOVE_SYMBOLS_FROM_DF_STUBS",
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_INCLUDE_CORE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MSVC 32 Release",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"inheritEnvironments": [ "msvc_x86_x64", "msvc_2015_x86" ],
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MSVC 64 Debug",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "RelWithDebInfo",
|
||||||
|
"inheritEnvironments": [ "msvc_x64_x64", "msvc_2015_x64" ],
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REMOVE_SYMBOLS_FROM_DF_STUBS",
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_INCLUDE_CORE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MSVC 64 Release",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"inheritEnvironments": [ "msvc_x64_x64", "msvc_2015_x64" ],
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 32 Debug",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/debug-32",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "RelWithDebInfo",
|
||||||
|
"intelliSenseMode": "linux-gcc-x86",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REMOVE_SYMBOLS_FROM_DF_STUBS",
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_INCLUDE_CORE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 32 Release",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/release-32",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"intelliSenseMode": "linux-gcc-x86",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 64 Debug",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/debug-64",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "RelWithDebInfo",
|
||||||
|
"intelliSenseMode": "linux-gcc-x64",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REMOVE_SYMBOLS_FROM_DF_STUBS",
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_INCLUDE_CORE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 64 Release",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/release-64",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"intelliSenseMode": "linux-gcc-x64",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 4.8 32 Debug",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/debug-32-48",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "RelWithDebInfo",
|
||||||
|
"intelliSenseMode": "linux-gcc-x86",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "CMAKE_C_COMPILER",
|
||||||
|
"value": "gcc-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CMAKE_CXX_COMPILER",
|
||||||
|
"value": "g++-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REMOVE_SYMBOLS_FROM_DF_STUBS",
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_INCLUDE_CORE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 4.8 32 Release",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/release-32-48",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"intelliSenseMode": "linux-gcc-x86",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "CMAKE_C_COMPILER",
|
||||||
|
"value": "gcc-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CMAKE_CXX_COMPILER",
|
||||||
|
"value": "g++-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 4.8 64 Debug",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/debug-64-48",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "RelWithDebInfo",
|
||||||
|
"intelliSenseMode": "linux-gcc-x64",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "CMAKE_C_COMPILER",
|
||||||
|
"value": "gcc-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CMAKE_CXX_COMPILER",
|
||||||
|
"value": "g++-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REMOVE_SYMBOLS_FROM_DF_STUBS",
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_INCLUDE_CORE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GCC 4.8 64 Release",
|
||||||
|
"remoteMachineName": "${defaultRemoteMachineName}",
|
||||||
|
"remoteCMakeListsRoot": "/tmp/dfhack-${workspaceHash}/src",
|
||||||
|
"remoteBuildRoot": "/tmp/dfhack-${workspaceHash}/release-64-48",
|
||||||
|
"rsyncCommandArgs": "--exclude=build --include=.git",
|
||||||
|
"remoteCopySources": true,
|
||||||
|
"cmakeExecutable": "$(which cmake)/..",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"intelliSenseMode": "linux-gcc-x64",
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "CMAKE_C_COMPILER",
|
||||||
|
"value": "gcc-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CMAKE_CXX_COMPILER",
|
||||||
|
"value": "g++-4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFHACK_BUILD_ARCH",
|
||||||
|
"value": "64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_STONESENSE",
|
||||||
|
"value": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1,911 +0,0 @@
|
|||||||
.. comment
|
|
||||||
This is the changelog file for DFHack. If you add or change anything, note
|
|
||||||
it here under the heading "DFHack Future", in the appropriate section.
|
|
||||||
Items within each section are listed in alphabetical order to minimise merge
|
|
||||||
conflicts. Try to match the style and level of detail of the other entries.
|
|
||||||
|
|
||||||
This file should not contain details specific to prereleases, but it should
|
|
||||||
contain changes from previous stable releases. For example, if a bug was
|
|
||||||
introduced in one alpha version and fixed in another, do not include it
|
|
||||||
here.
|
|
||||||
|
|
||||||
Sections for each release are added as required, and consist solely of the
|
|
||||||
following in order as subheadings::
|
|
||||||
|
|
||||||
New [Internal Commands | Plugins | Scripts | Tweaks | Features]
|
|
||||||
Fixes
|
|
||||||
Misc Improvements
|
|
||||||
Removed
|
|
||||||
Internals
|
|
||||||
Lua
|
|
||||||
Ruby
|
|
||||||
|
|
||||||
When referring to a script, plugin, or command, use backticks (```) to
|
|
||||||
create a link to the relevant documentation - and check that the docs are
|
|
||||||
still up to date!
|
|
||||||
|
|
||||||
When adding a new release, change "DFHack future" to the appropriate title
|
|
||||||
before releasing, and then add a new "DFHack future" section after releasing.
|
|
||||||
|
|
||||||
.. _changelog:
|
|
||||||
|
|
||||||
#########
|
|
||||||
Changelog
|
|
||||||
#########
|
|
||||||
|
|
||||||
.. contents::
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
DFHack future
|
|
||||||
=============
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
- The console now provides suggestions for built-in commands
|
|
||||||
- `devel/export-dt-ini`: avoid hardcoding flags
|
|
||||||
- `exportlegends`:
|
|
||||||
|
|
||||||
- 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/pathable`: added tile types to sidebar
|
|
||||||
- `gui/rename`: added "clear" and "special characters" options
|
|
||||||
- `modtools/skill-change`:
|
|
||||||
|
|
||||||
- now updates skill levels appropriately
|
|
||||||
- only prints output if ``-loud`` is passed
|
|
||||||
|
|
||||||
- `remotefortressreader`: includes item stack sizes and some performance improvements
|
|
||||||
|
|
||||||
Removed
|
|
||||||
-------
|
|
||||||
- `warn-stuck-trees`: the corresponding DF bug was fixed in 0.44.01
|
|
||||||
|
|
||||||
Lua
|
|
||||||
---
|
|
||||||
- Added a new ``dfhack.console`` API
|
|
||||||
- Exposed ``get_vector()`` (from C++) for all types that support ``find()``,
|
|
||||||
e.g. ``df.unit.get_vector() == df.global.world.units.all``
|
|
||||||
- Improved ``json`` I/O error messages
|
|
||||||
- Stopped a crash when trying to create instances of classes whose vtable
|
|
||||||
addresses are not available
|
|
||||||
|
|
||||||
|
|
||||||
DFHack 0.43.05-r3
|
|
||||||
=================
|
|
||||||
|
|
||||||
Internals
|
|
||||||
---------
|
|
||||||
- Fixed an uncommon crash that could occur when printing text to the console
|
|
||||||
- Added lots of previously-missing DF classes
|
|
||||||
- More names for fields: https://github.com/DFHack/df-structures/compare/0.43.05-r2...0.43.05
|
|
||||||
|
|
||||||
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
|
|
||||||
=================
|
|
||||||
|
|
||||||
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
|
|
||||||
=================
|
|
||||||
|
|
||||||
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.03-r1
|
|
||||||
=================
|
|
||||||
|
|
||||||
Lua
|
|
||||||
---
|
|
||||||
- Label widgets can now easily register handlers for mouse clicks
|
|
||||||
|
|
||||||
New Features
|
|
||||||
------------
|
|
||||||
- `add-thought`: allow syndrome name as ``-thought`` argument
|
|
||||||
- `gui/gm-editor`
|
|
||||||
|
|
||||||
- Added ability to insert default types into containers. For primitive types leave the type entry empty, and for references use ``*``.
|
|
||||||
- Added ``shift-esc`` binding to fully exit from editor
|
|
||||||
- Added ``gui/gm-editor toggle`` command to toggle editor visibility (saving position)
|
|
||||||
|
|
||||||
- `modtools/create-unit`:
|
|
||||||
|
|
||||||
- Added an option to attach units to an existing wild animal population
|
|
||||||
- Added an option to attach units to a map feature
|
|
||||||
|
|
||||||
Fixes
|
|
||||||
-----
|
|
||||||
- `autofarm`: Can now handle crops that grow for more than a season
|
|
||||||
- `combine-plants`: Fixed recursion into sub-containers
|
|
||||||
- `createitem`: Now moves multiple created items to cursor correctly
|
|
||||||
- `exportlegends`: Improved handling of unknown enum items (fixes many errors)
|
|
||||||
- `gui/create-item`: Fixed quality when creating multiple items
|
|
||||||
- `gui/mod-manager`: Fixed error when mods folder doesn't exist
|
|
||||||
- `modtools/item-trigger`: Fixed handling of items with subtypes
|
|
||||||
- `reveal`: ``revflood`` now handles constructed stairs with floors in generated fortresses
|
|
||||||
- `stockflow`:
|
|
||||||
|
|
||||||
- Can order metal mechanisms
|
|
||||||
- Fixed material category of thread-spinning jobs
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
- The built-in ``ls`` command now wraps the descriptions of commands
|
|
||||||
- `catsplosion`: now a lua script instead of a plugin
|
|
||||||
- `fix/diplomats`: replaces ``fixdiplomats``
|
|
||||||
- `fix/merchants`: replaces ``fixmerchants``
|
|
||||||
- `prefchange`: added a ``help`` option
|
|
||||||
- `probe`: now displays raw tiletype names
|
|
||||||
- Unified script documentation and in-terminal help options
|
|
||||||
|
|
||||||
Removed
|
|
||||||
-------
|
|
||||||
- `tweak` manager-quantity: no longer needed
|
|
||||||
|
|
||||||
DFHack 0.42.06-r1
|
|
||||||
=================
|
|
||||||
|
|
||||||
Internals
|
|
||||||
---------
|
|
||||||
- Commands to run on startup can be specified on the command line with ``+``
|
|
||||||
|
|
||||||
Example::
|
|
||||||
|
|
||||||
./dfhack +devel/print-args example
|
|
||||||
"Dwarf Fortress.exe" +devel/print-args example
|
|
||||||
|
|
||||||
- Prevented plugins with active viewscreens from being unloaded and causing a crash
|
|
||||||
- Additional script search paths can be specified in dfhack-config/script-paths.txt
|
|
||||||
|
|
||||||
Lua
|
|
||||||
---
|
|
||||||
- `building-hacks` now supports ``auto_gears`` flags. It automatically finds and animates gears in building definition
|
|
||||||
- Changed how `eventful` triggers reaction complete. Now it has ``onReactionComplete`` and ``onReactionCompleting``. Second one can be canceled
|
|
||||||
|
|
||||||
New Plugins
|
|
||||||
-----------
|
|
||||||
- `autogems`: Creates a new Workshop Order setting, automatically cutting rough gems
|
|
||||||
|
|
||||||
New Scripts
|
|
||||||
-----------
|
|
||||||
- `devel/save-version`: Displays DF version information about the current save
|
|
||||||
- `modtools/extra-gamelog`: replaces ``log-region``, ``soundsense-season``, and ``soundsense``
|
|
||||||
|
|
||||||
New Features
|
|
||||||
------------
|
|
||||||
- `buildingplan`: Support for floodgates, grates, and bars
|
|
||||||
- `colonies`: new ``place`` subcommand and supports any vermin (default honey bees)
|
|
||||||
- `confirm`: Added a confirmation for retiring locations
|
|
||||||
- `exportlegends`: Exports more information (poetic/musical/dance forms, written/artifact content, landmasses, extra histfig information, and more)
|
|
||||||
- `search-plugin`: Support for new screens:
|
|
||||||
|
|
||||||
- location occupation assignment
|
|
||||||
- civilization animal training knowledge
|
|
||||||
- animal trainer assignment
|
|
||||||
|
|
||||||
- `tweak`:
|
|
||||||
|
|
||||||
- ``tweak block-labors``: Prevents labors that can't be used from being toggled
|
|
||||||
- ``tweak hide-priority``: Adds an option to hide designation priority indicators
|
|
||||||
- ``tweak title-start-rename``: Adds a safe rename option to the title screen "Start Playing" menu
|
|
||||||
|
|
||||||
- `zone`:
|
|
||||||
|
|
||||||
- Added ``unassign`` subcommand
|
|
||||||
- Added ``only`` option to ``assign`` subcommand
|
|
||||||
|
|
||||||
Fixes
|
|
||||||
-----
|
|
||||||
- Fixed a crash bug caused by the historical figures DFHack uses to store persistent data.
|
|
||||||
- More plugins should recognize non-dwarf citizens
|
|
||||||
- Fixed a possible crash from cloning jobs
|
|
||||||
- moveToBuilding() now sets flags for items that aren't a structural part of the building properly
|
|
||||||
- `autotrade`, `stocks`: Made trading work when multiple caravans are present but only some can trade
|
|
||||||
- `confirm` note-delete: No longer interferes with name entry
|
|
||||||
- `exportlegends`: Handles entities without specific races, and a few other fixes for things new to v0.42
|
|
||||||
- `fastdwarf`: Fixed a bug involving teleporting mothers but not the babies they're holding.
|
|
||||||
- `gaydar`: Fixed text display on OS X/Linux and failure with soul-less creatures
|
|
||||||
- `manipulator`:
|
|
||||||
|
|
||||||
- allowed editing of non-dwarf citizens
|
|
||||||
- stopped ghosts and visitors from being editable
|
|
||||||
- fixed applying last custom profession
|
|
||||||
|
|
||||||
- `modtools/create-unit`: Stopped making units without civs historical figures
|
|
||||||
- `modtools/force`:
|
|
||||||
|
|
||||||
- Removed siege option
|
|
||||||
- Prevented a crash resulting from a bad civilization option
|
|
||||||
|
|
||||||
- `showmood`: Fixed name display on OS X/Linux
|
|
||||||
- `view-item-info`: Fixed density units
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
- `autochop`: Can now edit log minimum/maximum directly and remove limit entirely
|
|
||||||
- `autolabor`, `autohauler`, `manipulator`: Added support for new jobs/labors/skills
|
|
||||||
- `colonies`: now implemented by a script
|
|
||||||
- `createitem`: Can now create items anywhere without specifying a unit, as long as a unit exists on the map
|
|
||||||
- `devel/export-dt-ini`: Updated for 0.42.06
|
|
||||||
- `devel/find-offsets`: Automated several more scans
|
|
||||||
- `gui/gm-editor`: Now supports finding some items with a numeric ID (with ``i``)
|
|
||||||
- `lua`: Now supports some built-in variables like `gui/gm-editor`, e.g. ``unit``, ``screen``
|
|
||||||
- `remotefortressreader`: Can now trigger keyboard events
|
|
||||||
- `stockflow`: Now offers better control over individual craft jobs
|
|
||||||
- `weather`: now implemented by a script
|
|
||||||
- `zone`: colored output
|
|
||||||
|
|
||||||
Removed
|
|
||||||
-------
|
|
||||||
- DFusion: legacy script system, obsolete or replaced by better alternatives
|
|
||||||
|
|
||||||
|
|
||||||
DFHack 0.40.24-r5
|
|
||||||
=================
|
|
||||||
|
|
||||||
New Features
|
|
||||||
------------
|
|
||||||
- `confirm`:
|
|
||||||
|
|
||||||
- Added a ``uniform-delete`` option for military uniform deletion
|
|
||||||
- Added a basic in-game configuration UI
|
|
||||||
|
|
||||||
Fixes
|
|
||||||
-----
|
|
||||||
- Fixed a rare crash that could result from running `keybinding` in onLoadWorld.init
|
|
||||||
- Script help that doesn't start with a space is now recognized correctly
|
|
||||||
- `confirm`: Fixed issues with haul-delete, route-delete, and squad-disband confirmations intercepting keys too aggressively
|
|
||||||
- `emigration` should work now
|
|
||||||
- `fix-unit-occupancy`: Significantly optimized - up to 2,000 times faster in large fortresses
|
|
||||||
- `gui/create-item`: Allow exiting quantity prompt
|
|
||||||
- `gui/family-affairs`: Fixed an issue where lack of relationships wasn't recognized and other issues
|
|
||||||
- `modtools/create-unit`: Fixed a possible issue in reclaim fortress mode
|
|
||||||
- `search-plugin`: Fixed a crash on the military screen
|
|
||||||
- `tweak` max-wheelbarrow: Fixed a minor display issue with large numbers
|
|
||||||
- `workflow`: Fixed a crash related to job postings (and added a fix for existing, broken jobs)
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
- Unrecognized command feedback now includes more information about plugins
|
|
||||||
- `fix/dry-buckets`: replaces the ``drybuckets`` plugin
|
|
||||||
- `feature`: now implemented by a script
|
|
||||||
|
|
||||||
DFHack 0.40.24-r4
|
|
||||||
=================
|
|
||||||
|
|
||||||
Internals
|
|
||||||
---------
|
|
||||||
- A method for caching screen output is now available to Lua (and C++)
|
|
||||||
- Developer plugins can be ignored on startup by setting the ``DFHACK_NO_DEV_PLUGINS`` environment variable
|
|
||||||
- The console on Linux and OS X now recognizes keyboard input between prompts
|
|
||||||
- JSON libraries available (C++ and Lua)
|
|
||||||
- More DFHack build information used in plugin version checks and available to plugins and lua scripts
|
|
||||||
- Fixed a rare overflow issue that could cause crashes on Linux and OS X
|
|
||||||
- Stopped DF window from receiving input when unfocused on OS X
|
|
||||||
- Fixed issues with keybindings involving :kbd:`Ctrl`:kbd:`A` and :kbd:`Ctrl`:kbd:`Z`,
|
|
||||||
as well as :kbd:`Alt`:kbd:`E`/:kbd:`U`/:kbd:`N` on OS X
|
|
||||||
- Multiple contexts can now be specified when adding keybindings
|
|
||||||
- Keybindings can now use :kbd:`F10`-:kbd:`F12` and :kbd:`0`-:kbd:`9`
|
|
||||||
- Plugin system is no longer restricted to plugins that exist on startup
|
|
||||||
- :file:`dfhack.init` file locations significantly generalized
|
|
||||||
|
|
||||||
Lua
|
|
||||||
---
|
|
||||||
- Scripts can be enabled with the built-in `enable`/`disable <disable>` commands
|
|
||||||
- A new function, ``reqscript()``, is available as a safer alternative to ``script_environment()``
|
|
||||||
- Lua viewscreens can choose not to intercept the OPTIONS keybinding
|
|
||||||
|
|
||||||
New internal commands
|
|
||||||
---------------------
|
|
||||||
- `kill-lua`: Interrupt running Lua scripts
|
|
||||||
- `type`: Show where a command is implemented
|
|
||||||
|
|
||||||
New plugins
|
|
||||||
-----------
|
|
||||||
- `confirm`: Adds confirmation dialogs for several potentially dangerous actions
|
|
||||||
- `fix-unit-occupancy`: Fixes issues with unit occupancy, such as faulty "unit blocking tile" messages (:bug:`3499`)
|
|
||||||
- `title-version` (formerly ``vshook``): Display DFHack version on title screen
|
|
||||||
|
|
||||||
New scripts
|
|
||||||
-----------
|
|
||||||
- `armoks-blessing`: Adjust all attributes, personality, age and skills of all dwarves in play
|
|
||||||
- `brainwash`: brainwash a dwarf (modifying their personality)
|
|
||||||
- `burial`: sets all unowned coffins to allow burial ("-pets" to allow pets too)
|
|
||||||
- `deteriorateclothes`: make worn clothes on the ground wear far faster to boost FPS
|
|
||||||
- `deterioratecorpses`: make body parts wear away far faster to boost FPS
|
|
||||||
- `deterioratefood`: make food vanish after a few months if not used
|
|
||||||
- `elevate-mental`: elevate all the mental attributes of a unit
|
|
||||||
- `elevate-physical`: elevate all the physical attributes of a unit
|
|
||||||
- `emigration`: stressed dwarves may leave your fortress if they see a chance
|
|
||||||
- `fix-ster`: changes fertility/sterility of animals or dwarves
|
|
||||||
- `gui/family-affairs`: investigate and alter romantic relationships
|
|
||||||
- `make-legendary`: modify skill(s) of a single unit
|
|
||||||
- `modtools/create-unit`: create new units from nothing
|
|
||||||
- `modtools/equip-item`: a script to equip items on units
|
|
||||||
- `points`: set number of points available at embark screen
|
|
||||||
- `pref-adjust`: Adjust all preferences of all dwarves in play
|
|
||||||
- `rejuvenate`: make any "old" dwarf 20 years old
|
|
||||||
- `starvingdead`: make undead weaken after one month on the map, and crumble after six
|
|
||||||
- `view-item-info`: adds information and customisable descriptions to item viewscreens
|
|
||||||
- `warn-starving`: check for starving, thirsty, or very drowsy units and pause with warning if any are found
|
|
||||||
|
|
||||||
New tweaks
|
|
||||||
----------
|
|
||||||
- embark-profile-name: Allows the use of lowercase letters when saving embark profiles
|
|
||||||
- kitchen-keys: Fixes DF kitchen meal keybindings
|
|
||||||
- kitchen-prefs-color: Changes color of enabled items to green in kitchen preferences
|
|
||||||
- kitchen-prefs-empty: Fixes a layout issue with empty kitchen tabs
|
|
||||||
|
|
||||||
Fixes
|
|
||||||
-----
|
|
||||||
- Plugins with vmethod hooks can now be reloaded on OS X
|
|
||||||
- Lua's ``os.system()`` now works on OS X
|
|
||||||
- Fixed default arguments in Lua gametype detection functions
|
|
||||||
- Circular lua dependencies (reqscript/script_environment) fixed
|
|
||||||
- Prevented crash in ``Items::createItem()``
|
|
||||||
- `buildingplan`: Now supports hatch covers
|
|
||||||
- `gui/create-item`: fixed assigning quality to items, made :kbd:`Esc` work properly
|
|
||||||
- `gui/gm-editor`: handles lua tables properly
|
|
||||||
- `help`: now recognizes built-in commands, like ``help``
|
|
||||||
- `manipulator`: fixed crash when selecting custom professions when none are found
|
|
||||||
- `remotefortressreader`: fixed crash when attempting to send map info when no map was loaded
|
|
||||||
- `search-plugin`: fixed crash in unit list after cancelling a job; fixed crash when disabling stockpile category after searching in a subcategory
|
|
||||||
- `stockpiles`: now checks/sanitizes filenames when saving
|
|
||||||
- `stocks`: fixed a crash when right-clicking
|
|
||||||
- `steam-engine`: fixed a crash on arena load; number keys (e.g. 2/8) take priority over cursor keys when applicable
|
|
||||||
- tweak fps-min fixed
|
|
||||||
- tweak farm-plot-select: Stopped controls from appearing when plots weren't fully built
|
|
||||||
- `workflow`: Fixed some issues with stuck jobs. Existing stuck jobs must be cancelled and re-added
|
|
||||||
- `zone`: Fixed a crash when using ``zone set`` (and a few other potential crashes)
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
- DFHack documentation:
|
|
||||||
|
|
||||||
- massively reorganised, into files of more readable size
|
|
||||||
- added many missing entries
|
|
||||||
- indexes, internal links, offline search all documents
|
|
||||||
- includes documentation of linked projects (df-structures, third-party scripts)
|
|
||||||
- better HTML generation with Sphinx
|
|
||||||
- documentation for scripts now located in source files
|
|
||||||
|
|
||||||
- `autolabor`:
|
|
||||||
|
|
||||||
- Stopped modification of labors that shouldn't be modified for brokers/diplomats
|
|
||||||
- Prioritize skilled dwarves more efficiently
|
|
||||||
- Prevent dwarves from running away with tools from previous jobs
|
|
||||||
|
|
||||||
- `automaterial`: Fixed several issues with constructions being allowed/disallowed incorrectly when using box-select
|
|
||||||
- `dwarfmonitor`:
|
|
||||||
|
|
||||||
- widgets' positions, formats, etc. are now customizable
|
|
||||||
- weather display now separated from the date display
|
|
||||||
- New mouse cursor widget
|
|
||||||
|
|
||||||
- `gui/dfstatus`: Can enable/disable individual categories and customize metal bar list
|
|
||||||
- `full-heal`: ``-r`` option removes corpses
|
|
||||||
- `gui/gm-editor`
|
|
||||||
|
|
||||||
- Pointers can now be displaced
|
|
||||||
- Added some useful aliases: "item" for the selected item, "screen" for the current screen, etc.
|
|
||||||
- Now avoids errors with unrecognized types
|
|
||||||
|
|
||||||
- `gui/hack-wish`: renamed to `gui/create-item`
|
|
||||||
- `keybinding list <keybinding>` accepts a context
|
|
||||||
- `lever`:
|
|
||||||
|
|
||||||
- Lists lever names
|
|
||||||
- ``lever pull`` can be used to pull the currently-selected lever
|
|
||||||
|
|
||||||
- ``memview``: Fixed display issue
|
|
||||||
- `modtools/create-item`: arguments are named more clearly, and you can specify the creator to be the unit with id ``df.global.unit_next_id-1`` (useful in conjunction with `modtools/create-unit`)
|
|
||||||
- ``nyan``: Can now be stopped with dfhack-run
|
|
||||||
- `plug`: lists all plugins; shows state and number of commands in plugins
|
|
||||||
- `prospect`: works from within command-prompt
|
|
||||||
- `quicksave`: Restricted to fortress mode
|
|
||||||
- `remotefortressreader`: Exposes more information
|
|
||||||
- `search-plugin`:
|
|
||||||
|
|
||||||
- Supports noble suggestion screen (e.g. suggesting a baron)
|
|
||||||
- Supports fortress mode loo[k] menu
|
|
||||||
- Recognizes ? and ; keys
|
|
||||||
|
|
||||||
- `stocks`: can now match beginning and end of item names
|
|
||||||
- `teleport`: Fixed cursor recognition
|
|
||||||
- `tidlers`, `twaterlvl`: now implemented by scripts instead of a plugin
|
|
||||||
- `tweak`:
|
|
||||||
|
|
||||||
- debug output now logged to stderr.log instead of console - makes DFHack start faster
|
|
||||||
- farm-plot-select: Fixed issues with selecting undiscovered crops
|
|
||||||
|
|
||||||
- `workflow`: Improved handling of plant reactions
|
|
||||||
|
|
||||||
Removed
|
|
||||||
-------
|
|
||||||
- `embark-tools` nano: 1x1 embarks are now possible in vanilla 0.40.24
|
|
||||||
|
|
||||||
DFHack 0.40.24-r3
|
|
||||||
=================
|
|
||||||
|
|
||||||
Internals
|
|
||||||
---------
|
|
||||||
- Ruby library now included on OS X - Ruby scripts should work on OS X 10.10
|
|
||||||
- libstdc++ should work with older versions of OS X
|
|
||||||
- Added support for `onMapLoad.init / onMapUnload.init <other_init_files>` scripts
|
|
||||||
- game type detection functions are now available in the World module
|
|
||||||
- The ``DFHACK_LOG_MEM_RANGES`` environment variable can be used to log information to ``stderr.log`` on OS X
|
|
||||||
- Fixed adventure mode menu names
|
|
||||||
- Fixed command usage information for some commands
|
|
||||||
|
|
||||||
Lua
|
|
||||||
---
|
|
||||||
- Lua scripts will only be reloaded if necessary
|
|
||||||
- Added a ``df2console()`` wrapper, useful for printing DF (CP437-encoded) text to the console in a portable way
|
|
||||||
- Added a ``strerror()`` wrapper
|
|
||||||
|
|
||||||
New Internal Commands
|
|
||||||
---------------------
|
|
||||||
- `hide`, `show`: hide and show the console on Windows
|
|
||||||
- `sc-script`: Allows additional scripts to be run when certain events occur (similar to `onLoad.init` scripts)
|
|
||||||
|
|
||||||
New Plugins
|
|
||||||
-----------
|
|
||||||
- `autohauler`: A hauling-only version of autolabor
|
|
||||||
|
|
||||||
New Scripts
|
|
||||||
-----------
|
|
||||||
- `modtools/reaction-product-trigger`: triggers callbacks when products are produced (contrast with when reactions complete)
|
|
||||||
|
|
||||||
New Tweaks
|
|
||||||
----------
|
|
||||||
- `fps-min <tweak>`: Fixes the in-game minimum FPS setting
|
|
||||||
- `shift-8-scroll <tweak>`: Gives Shift+8 (or ``*``) priority when scrolling menus, instead of scrolling the map
|
|
||||||
- `tradereq-pet-gender <tweak>`: Displays pet genders on the trade request screen
|
|
||||||
|
|
||||||
Fixes
|
|
||||||
-----
|
|
||||||
- Fixed game type detection in `3dveins`, `gui/create-item`, `reveal`, `seedwatch`
|
|
||||||
- ``PRELOAD_LIB``: More extensible on Linux
|
|
||||||
- `add-spatter`, `eventful`: Fixed crash on world load
|
|
||||||
- `add-thought`: Now has a proper subthought arg.
|
|
||||||
- `building-hacks`: Made buildings produce/consume correct amount of power
|
|
||||||
- `fix-armory`: compiles and is available again (albeit with issues)
|
|
||||||
- `gui/gm-editor`: Added search option (accessible with "s")
|
|
||||||
- `hack-wish <gui/create-item>`: Made items stack properly.
|
|
||||||
- `modtools/skill-change`: Made level granularity work properly.
|
|
||||||
- `show-unit-syndromes`: should work
|
|
||||||
- `stockflow`:
|
|
||||||
|
|
||||||
- Fixed error message in Arena mode
|
|
||||||
- no longer checks the DF version
|
|
||||||
- fixed ballistic arrow head orders
|
|
||||||
- convinces the bookkeeper to update records more often
|
|
||||||
|
|
||||||
- `zone`: Stopped crash when scrolling cage owner list
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
- `autolabor`: A negative pool size can be specified to use the most unskilled dwarves
|
|
||||||
- `building-hacks`:
|
|
||||||
|
|
||||||
- Added a way to allow building to work even if it consumes more power than is available.
|
|
||||||
- Added setPower/getPower functions.
|
|
||||||
|
|
||||||
- `catsplosion`: Can now trigger pregnancies in (most) other creatures
|
|
||||||
- `exportlegends`: ``info`` and ``all`` options export ``legends_plus.xml`` with more data for legends utilities
|
|
||||||
- `manipulator`:
|
|
||||||
|
|
||||||
- Added ability to edit nicknames/profession names
|
|
||||||
- added "Job" as a View Type, in addition to "Profession" and "Squad"
|
|
||||||
- added custom profession templates with masking
|
|
||||||
|
|
||||||
- `remotefortressreader`: Exposes more information
|
|
||||||
|
|
||||||
|
|
||||||
DFHack 0.40.24-r2
|
|
||||||
=================
|
|
||||||
|
|
||||||
Internals
|
|
||||||
---------
|
|
||||||
- Lua scripts can set environment variables of each other with ``dfhack.run_script_with_env``
|
|
||||||
- Lua scripts can now call each others internal nonlocal functions with ``dfhack.script_environment(scriptName).functionName(arg1,arg2)``
|
|
||||||
- `eventful`: Lua reactions no longer require LUA_HOOK as a prefix; you can register a callback for the completion of any reaction with a name
|
|
||||||
- Filesystem module now provides file access/modification times and can list directories (normally and recursively)
|
|
||||||
- Units Module: New functions::
|
|
||||||
|
|
||||||
isWar
|
|
||||||
isHunter
|
|
||||||
isAvailableForAdoption
|
|
||||||
isOwnCiv
|
|
||||||
isOwnRace
|
|
||||||
getRaceName
|
|
||||||
getRaceNamePlural
|
|
||||||
getRaceBabyName
|
|
||||||
getRaceChildName
|
|
||||||
isBaby
|
|
||||||
isChild
|
|
||||||
isAdult
|
|
||||||
isEggLayer
|
|
||||||
isGrazer
|
|
||||||
isMilkable
|
|
||||||
isTrainableWar
|
|
||||||
isTrainableHunting
|
|
||||||
isTamable
|
|
||||||
isMale
|
|
||||||
isFemale
|
|
||||||
isMerchant
|
|
||||||
isForest
|
|
||||||
isMarkedForSlaughter
|
|
||||||
|
|
||||||
- Buildings Module: New Functions::
|
|
||||||
|
|
||||||
isActivityZone
|
|
||||||
isPenPasture
|
|
||||||
isPitPond
|
|
||||||
isActive
|
|
||||||
findPenPitAt
|
|
||||||
|
|
||||||
Fixes
|
|
||||||
-----
|
|
||||||
- ``dfhack.run_script`` should correctly find save-specific scripts now.
|
|
||||||
- `add-thought`: updated to properly affect stress.
|
|
||||||
- `hfs-pit`: should work now
|
|
||||||
- `autobutcher`: takes gelding into account
|
|
||||||
- :file:`init.lua` existence checks should be more reliable (notably when using non-English locales)
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
Multiline commands are now possible inside dfhack.init scripts. See :file:`dfhack.init-example` for example usage.
|
|
||||||
|
|
||||||
|
|
||||||
DFHack 0.40.24-r1
|
|
||||||
=================
|
|
||||||
|
|
||||||
Internals
|
|
||||||
---------
|
|
||||||
CMake shouldn't cache DFHACK_RELEASE anymore. People may need to manually update/delete their CMake cache files to get rid of it.
|
|
||||||
|
|
||||||
|
|
||||||
DFHack 0.40.24-r0
|
|
||||||
=================
|
|
||||||
|
|
||||||
Internals
|
|
||||||
---------
|
|
||||||
- `EventManager`: fixed crash error with EQUIPMENT_CHANGE event.
|
|
||||||
- key modifier state exposed to Lua (ie :kbd:`Ctrl`, :kbd:`Alt`, :kbd:`Shift`)
|
|
||||||
|
|
||||||
Fixes
|
|
||||||
-----
|
|
||||||
``dfhack.sh`` can now be run from other directories on OS X
|
|
||||||
|
|
||||||
New Plugins
|
|
||||||
-----------
|
|
||||||
- `blueprint`: export part of your fortress to quickfort .csv files
|
|
||||||
|
|
||||||
New Scripts
|
|
||||||
-----------
|
|
||||||
- `hotkey-notes`: print key, name, and jump position of hotkeys
|
|
||||||
|
|
||||||
Removed
|
|
||||||
-------
|
|
||||||
- needs_porting/*
|
|
||||||
|
|
||||||
Misc Improvements
|
|
||||||
-----------------
|
|
||||||
Added support for searching more lists
|
|
||||||
|
|
||||||
|
|
||||||
Older Changelogs
|
|
||||||
================
|
|
||||||
Are kept in a seperate file: `HISTORY`
|
|
||||||
|
|
||||||
.. that's ``docs/history.rst``, if you're reading the raw text.
|
|
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"folders":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"path": "."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"build_systems":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "DFHack make",
|
||||||
|
"working_dir": "$project_path",
|
||||||
|
"cmd": ["python", "$project_path/build/sublime/make.py", "$file"],
|
||||||
|
"variants": [
|
||||||
|
{
|
||||||
|
"name": "Build all",
|
||||||
|
"cmd": ["python", "$project_path/build/sublime/make.py", "-a"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Build+install all",
|
||||||
|
"cmd": ["python", "$project_path/build/sublime/make.py", "-ai"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Build plugin",
|
||||||
|
"cmd": ["python", "$project_path/build/sublime/make.py", "-ap", "$file"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Build+install plugin",
|
||||||
|
"cmd": ["python", "$project_path/build/sublime/make.py", "-aip", "$file"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
from __future__ import print_function
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
class BuildError(Exception): pass
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('file', nargs='?', default='', help='current filename')
|
||||||
|
parser.add_argument('-a', '--all', action='store_true', help='Build all targets')
|
||||||
|
parser.add_argument('-i', '--install', action='store_true', help='Install')
|
||||||
|
parser.add_argument('-p', '--plugin', action='store_true', help='Build specified plugin')
|
||||||
|
|
||||||
|
def find_build_folder():
|
||||||
|
# search for the one with the most recently modified Makefile
|
||||||
|
folder = None
|
||||||
|
mtime = 0
|
||||||
|
for f in os.listdir('.'):
|
||||||
|
if f.startswith('build'):
|
||||||
|
makefile = os.path.join(f, 'Makefile')
|
||||||
|
if os.path.isfile(makefile) and os.path.getmtime(makefile) > mtime:
|
||||||
|
folder = f
|
||||||
|
mtime = os.path.getmtime(makefile)
|
||||||
|
if not folder:
|
||||||
|
raise BuildError('No valid build folder found')
|
||||||
|
return folder
|
||||||
|
|
||||||
|
def get_plugin_name(filename):
|
||||||
|
filename = filename.replace('/devel', '')
|
||||||
|
match = re.search(r'plugins/(.+?)[/\.]', filename)
|
||||||
|
if match:
|
||||||
|
return match.group(1)
|
||||||
|
|
||||||
|
def run_command(cmd):
|
||||||
|
print('$ ' + ' '.join(cmd))
|
||||||
|
sys.stdout.flush()
|
||||||
|
if subprocess.call(cmd) != 0:
|
||||||
|
raise BuildError('command execution failed: ' + ' '.join(cmd))
|
||||||
|
|
||||||
|
def main(args):
|
||||||
|
os.chdir(find_build_folder())
|
||||||
|
print('Build folder:', os.getcwd())
|
||||||
|
cmd = ['make', '-j3']
|
||||||
|
|
||||||
|
if args.plugin:
|
||||||
|
plugin = get_plugin_name(args.file)
|
||||||
|
if not plugin:
|
||||||
|
raise BuildError('Cannot determine current plugin name from %r' % args.file)
|
||||||
|
cmd += [plugin + '/fast']
|
||||||
|
|
||||||
|
run_command(cmd)
|
||||||
|
|
||||||
|
if args.install:
|
||||||
|
run_command(['make', 'install/fast'])
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
try:
|
||||||
|
main(parser.parse_args())
|
||||||
|
except BuildError as e:
|
||||||
|
print('** Error: ' + str(e))
|
||||||
|
sys.exit(1)
|
@ -1,4 +1,4 @@
|
|||||||
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
|
call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
|
||||||
cd VC2015
|
cd VC2015
|
||||||
msbuild /m /p:Platform=x64 /p:Configuration=RelWithDebInfo ALL_BUILD.vcxproj
|
msbuild /m /p:Platform=x64 /p:Configuration=RelWithDebInfo ALL_BUILD.vcxproj
|
||||||
cd ..
|
cd ..
|
@ -1,4 +1,4 @@
|
|||||||
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
|
call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
|
||||||
cd VC2015
|
cd VC2015
|
||||||
msbuild /m /p:Platform=x64 /p:Configuration=RelWithDebInfo INSTALL.vcxproj
|
msbuild /m /p:Platform=x64 /p:Configuration=RelWithDebInfo INSTALL.vcxproj
|
||||||
cd ..
|
cd ..
|
@ -1,4 +1,4 @@
|
|||||||
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
|
call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
|
||||||
cd VC2015
|
cd VC2015
|
||||||
msbuild /m /p:Platform=x64 /p:Configuration=Release INSTALL.vcxproj
|
msbuild /m /p:Platform=x64 /p:Configuration=Release INSTALL.vcxproj
|
||||||
cd ..
|
cd ..
|
@ -1 +1 @@
|
|||||||
Subproject commit 0f0ad78c4fd429caacd0694b5c868dbeacea16b6
|
Subproject commit 6a9153d053a250be34996b3fd86ac1166c3e17cb
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit ddabf50f72cf369bf652a95c4d9fe31a1865a781
|
@ -1,2 +0,0 @@
|
|||||||
PROJECT(jsoncpp)
|
|
||||||
ADD_LIBRARY(jsoncpp STATIC jsoncpp.cpp)
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,6 @@
|
|||||||
project(dfhack-md5)
|
project(dfhack-md5)
|
||||||
ADD_LIBRARY(dfhack-md5 STATIC EXCLUDE_FROM_ALL md5.cpp md5wrapper.cpp)
|
ADD_LIBRARY(dfhack-md5 STATIC EXCLUDE_FROM_ALL md5.cpp md5wrapper.cpp)
|
||||||
IDE_FOLDER(dfhack-md5 "Depends")
|
IDE_FOLDER(dfhack-md5 "Depends")
|
||||||
|
IF(UNIX)
|
||||||
|
SET_TARGET_PROPERTIES(dfhack-md5 PROPERTIES COMPILE_FLAGS "-Wno-strict-aliasing")
|
||||||
|
ENDIF()
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,26 @@
|
|||||||
|
.. comment
|
||||||
|
This is the changelog for stable releases. Entries are included from
|
||||||
|
changelog.txt.
|
||||||
|
|
||||||
|
.. _changelog:
|
||||||
|
|
||||||
|
#########
|
||||||
|
Changelog
|
||||||
|
#########
|
||||||
|
|
||||||
|
This file contains changes grouped by the stable release in which they first
|
||||||
|
appeared. See `build-changelog` for more information.
|
||||||
|
|
||||||
|
See `dev-changelog` for a list of changes grouped by development releases.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
:depth: 2
|
||||||
|
|
||||||
|
.. include:: /docs/_auto/news.rst
|
||||||
|
|
||||||
|
|
||||||
|
Older Changelogs
|
||||||
|
================
|
||||||
|
Are kept in a seperate file: `HISTORY`
|
||||||
|
|
||||||
|
.. that's ``docs/history.rst``, if you're reading the raw text.
|
@ -0,0 +1 @@
|
|||||||
|
*.rst
|
@ -0,0 +1 @@
|
|||||||
|
*.txt
|
@ -0,0 +1,692 @@
|
|||||||
|
=== Scroll down for changes
|
||||||
|
|
||||||
|
===[[[
|
||||||
|
===help
|
||||||
|
|
||||||
|
Entries in docs/NEWS.rst and docs/NEWS-dev.rst are generated from
|
||||||
|
docs/changelog.txt. NEWS.rst groups entries by stable releases, and NEWS-dev.rst
|
||||||
|
groups them by all releases (stable and development). For example, an entry
|
||||||
|
listed under "0.44.05-alpha1" in changelog.txt will be listed under that in
|
||||||
|
NEWS-dev.rst as well, but under "0.44.05-r1" in NEWS.rst (assuming that is the
|
||||||
|
closest stable release after 0.44.05-alpha1). An entry listed under a stable
|
||||||
|
release in changelog.txt will be listed under that release in both NEWS.rst and
|
||||||
|
NEWS-dev.rst.
|
||||||
|
|
||||||
|
changelog.txt uses a syntax similar to RST, with a few special sequences:
|
||||||
|
|
||||||
|
- ``===`` indicates the start of a comment
|
||||||
|
- ``#`` indicates the start of a release name (do not include "DFHack")
|
||||||
|
- ``##`` indicates the start of a section name (this must be listed in ``gen_changelog.py``)
|
||||||
|
- ``-`` indicates the start of a changelog entry. **Note:** an entry currently must be only one line.
|
||||||
|
- ``:`` (colon followed by space) separates the name of a feature from a description of a change to that feature.
|
||||||
|
Changes made to the same feature are grouped if they end up in the same section.
|
||||||
|
- ``:\`` (colon, backslash, space) avoids the above behavior
|
||||||
|
- ``- @`` (the space is optional) indicates the start of an entry that should only be displayed in NEWS-dev.rst.
|
||||||
|
Use this sparingly, e.g. for immediate fixes to one development build in another development build that
|
||||||
|
are not of interest to users of stable builds only.
|
||||||
|
- Three ``[`` characters indicate the start of a block (possibly a comment) that
|
||||||
|
spans multiple lines. Three ``]`` characters indicate the end of such a block.
|
||||||
|
- ``!`` immediately before a phrase set up to be replaced (see gen_changelog.py) stops that occurrence from being replaced.
|
||||||
|
|
||||||
|
===end
|
||||||
|
]]]
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
======== IMPORTANT: rename this, and add a new "future" section, BEFORE ========
|
||||||
|
======== making a new DFHack release! ========
|
||||||
|
================================================================================
|
||||||
|
# Future
|
||||||
|
|
||||||
|
## 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
|
||||||
|
- `labormanager`:
|
||||||
|
- stopped assigning labors to ineligible dwarves, pets, etc.
|
||||||
|
- stopped assigning invalid labors
|
||||||
|
- added support for crafting jobs that use pearl
|
||||||
|
- `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``)
|
||||||
|
|
||||||
|
## Misc Improvements
|
||||||
|
- `devel/export-dt-ini`: added viewscreen offsets for DT 40.1.2
|
||||||
|
- `labormanager`: now takes nature value into account when assigning jobs
|
||||||
|
|
||||||
|
## Internals
|
||||||
|
- Linux/macOS: changed recommended build backend from Make to Ninja (Make builds will be significantly slower now)
|
||||||
|
- Added a usable unit test framework for basic tests, and a few basic tests
|
||||||
|
- 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
|
||||||
|
- Changed ``plugins/CMakeLists.custom.txt`` to be ignored by git and created (if needed) at build time instead
|
||||||
|
|
||||||
|
## Lua
|
||||||
|
- ``utils``: new ``OrderedTable`` class
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.12-r1
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
-@ Console: fixed crash when entering long commands on Linux/macOS
|
||||||
|
-@ Removed jsoncpp's ``include`` and ``lib`` folders from DFHack builds/packages
|
||||||
|
- Fixed special characters in `command-prompt` and other non-console in-game outputs on Linux/macOS (in tools using ``df2console``)
|
||||||
|
- `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 `digv` to be assigned workers
|
||||||
|
- `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
|
||||||
|
|
||||||
|
## API
|
||||||
|
- Added to ``Units`` module:
|
||||||
|
- ``getStressCategory(unit)``
|
||||||
|
- ``getStressCategoryRaw(level)``
|
||||||
|
- ``stress_cutoffs`` (Lua: ``getStressCutoffs()``)
|
||||||
|
|
||||||
|
## Internals
|
||||||
|
- Changed default build architecture to 64-bit
|
||||||
|
- Added documentation for all RPC functions and a build-time check
|
||||||
|
- Added support for build IDs to development builds
|
||||||
|
- Use ``dlsym(3)`` to find vtables from libgraphics.so
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
- Added ``start_dwarf_count`` on 64-bit Linux again and fixed scanning script
|
||||||
|
- ``army_controller``: added new vector from 0.44.11
|
||||||
|
-@ ``viewscreen_civlistst``: split ``unk_20`` into 3 pointers
|
||||||
|
- ``belief_system``: new type, few fields identified
|
||||||
|
- ``mental_picture``: new type, some fields identified
|
||||||
|
- ``mission``: new type (used in ``viewscreen_civlistst``)
|
||||||
|
- ``mission_report``:
|
||||||
|
- new type (renamed, was ``mission`` before)
|
||||||
|
- identified some fields
|
||||||
|
- ``spoils_report``: new type, most fields identified
|
||||||
|
- ``viewscreen_civlistst``:
|
||||||
|
- identified new pages
|
||||||
|
- identified new messenger-related fields
|
||||||
|
- ``viewscreen_image_creatorst``:
|
||||||
|
- fixed layout
|
||||||
|
- identified many fields
|
||||||
|
- ``viewscreen_reportlistst``:
|
||||||
|
- added new mission and spoils report-related fields (fixed layout)
|
||||||
|
- ``world``:
|
||||||
|
- ``belief_systems``: identified
|
||||||
|
- ``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
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.11-beta2.1
|
||||||
|
|
||||||
|
## Internals
|
||||||
|
-@ `stonesense`: fixed build
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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`
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.11-alpha1
|
||||||
|
|
||||||
|
## 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``
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.10-r2
|
||||||
|
|
||||||
|
## New Plugins
|
||||||
|
- `cxxrandom`: exposes some features of the C++11 random number library to Lua
|
||||||
|
|
||||||
|
## New Scripts
|
||||||
|
- `gui/stamper`: allows manipulation of designations by transforms such as translations, reflections, rotations, and inversion
|
||||||
|
- `add-recipe`: adds unknown crafting recipes to the player's civ
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
- Fixed many tools incorrectly using the ``dead`` unit flag (they should generally check ``flags2.killed`` instead)
|
||||||
|
- Fixed many tools passing incorrect arguments to printf-style functions, including a few possible crashes (`changelayer`, `follow`, `forceequip`, `generated-creature-renamer`)
|
||||||
|
- Fixed ``-g`` flag (GDB) in Linux ``dfhack`` script (particularly on x64)
|
||||||
|
- Fixed several bugs in Lua scripts found by static analysis (df-luacheck)
|
||||||
|
- `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
|
||||||
|
- `autogems`, `fix-unit-occupancy`: stopped running when a fort isn't loaded (e.g. while embarking)
|
||||||
|
- `buildingplan`, `fortplan`: stopped running before a world has fully loaded
|
||||||
|
- `autogems`:
|
||||||
|
- stop running repeatedly when paused
|
||||||
|
- fixed crash when furnaces are linked to same stockpiles as jeweler's workshops
|
||||||
|
- `ban-cooking`: fixed errors introduced by kitchen structure changes in 0.44.10-r1
|
||||||
|
- `remove-stress`: fixed an error when running on soul-less units (e.g. with ``-all``)
|
||||||
|
- `revflood`: stopped revealing tiles adjacent to tiles above open space inappropriately
|
||||||
|
- `dig`: fixed "Inappropriate dig square" announcements if digging job has been posted
|
||||||
|
- `stockpiles`: ``loadstock`` now sets usable and unusable weapon and armor settings
|
||||||
|
- `stocks`: stopped listing carried items under stockpiles where they were picked up from
|
||||||
|
- `deramp`: fixed deramp to find designations that already have jobs posted
|
||||||
|
- `fixnaked`: fixed errors due to emotion changes in 0.44
|
||||||
|
- `autounsuspend`: now skips planned buildings
|
||||||
|
|
||||||
|
## Misc Improvements
|
||||||
|
- Added script name to messages produced by ``qerror()`` in Lua scripts
|
||||||
|
- Fixed 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
|
||||||
|
- `fix/retrieve-units`: now re-adds units to active list to counteract `fix/dead-units`
|
||||||
|
- `item-descriptions`: fixed several grammatical errors
|
||||||
|
- `modtools/create-unit`:
|
||||||
|
- added quantity argument
|
||||||
|
- now selects a caste at random if none is specified
|
||||||
|
- `mousequery`:
|
||||||
|
- 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
|
||||||
|
- `embark-assistant`:
|
||||||
|
- 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
|
||||||
|
|
||||||
|
## API
|
||||||
|
- New functions (also exposed to Lua):
|
||||||
|
- ``Units::isKilled()``
|
||||||
|
- ``Units::isActive()``
|
||||||
|
- ``Units::isGhost()``
|
||||||
|
- Removed Vermin module (unused and obsolete)
|
||||||
|
|
||||||
|
## Lua
|
||||||
|
- Added ``profiler`` module to measure lua performance
|
||||||
|
- Enabled shift+cursor movement in WorkshopOverlay-derived screens
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
- ``unit_flags1``: renamed ``dead`` to ``inactive`` to better reflect its use
|
||||||
|
- ``item_body_component``: fixed location of ``corpse_flags``
|
||||||
|
- ``job_type``: added ``is_designation`` attribute
|
||||||
|
- ``unit_thought_type``: added ``SawDeadBody`` (new in 0.44.10)
|
||||||
|
- ``unit_personality``: fixed location of ``current_focus`` and ``undistracted_focus``
|
||||||
|
- ``incident_sub6_performance``: identified some fields
|
||||||
|
- ``job_handler``: fixed static array layout
|
||||||
|
|
||||||
|
## Internals
|
||||||
|
- Added fallback for YouCompleteMe database lookup failures (e.g. for newly-created files)
|
||||||
|
- jsoncpp: fixed constructor with ``long`` on Linux
|
||||||
|
- Improved efficiency and error handling in ``stl_vsprintf`` and related functions
|
||||||
|
- Added build option to generate symbols for large generated files containing df-structures metadata
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.10-r1
|
||||||
|
|
||||||
|
## New Scripts
|
||||||
|
- `bodyswap`: shifts player control over to another unit in adventure mode
|
||||||
|
|
||||||
|
## New Tweaks
|
||||||
|
- `tweak` stone-status-all: adds an option to toggle the economic status of all stones
|
||||||
|
- `tweak` kitchen-prefs-all: adds an option to toggle cook/brew for all visible items in kitchen preferences
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
- Lua: registered ``dfhack.constructions.designateRemove()`` correctly
|
||||||
|
- `prospector`: 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 functions
|
||||||
|
- `adv-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
|
||||||
|
- `search`:
|
||||||
|
- added support for stone restrictions screen (under ``z``: Status)
|
||||||
|
- added support for kitchen preferences (also under ``z``)
|
||||||
|
|
||||||
|
## Internals
|
||||||
|
- Fixed compiler warnings on all supported build configurations
|
||||||
|
- Windows build scripts now work with non-C system drives
|
||||||
|
|
||||||
|
## 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()``
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
- ``dfhack_room_quality_level``: new enum
|
||||||
|
- ``glowing_barrier``: identified ``triggered``, added comments
|
||||||
|
- ``item_flags2``: renamed ``has_written_content`` to ``unk_book``
|
||||||
|
- ``kitchen_exc_type``: new enum (for ``ui.kitchen``)
|
||||||
|
- ``mandate.mode``: now an enum
|
||||||
|
- ``unit_personality.emotions.flags.memory``: identified
|
||||||
|
- ``viewscreen_kitchenprefst.forbidden``, ``possible``: now a bitfield, ``kitchen_pref_flag``
|
||||||
|
- ``world_data.feature_map``: added extensive documentation (in XML)
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
- `stockpiles`: stopped sidebar option from overlapping with `autodump`
|
||||||
|
-@ `autodump`, `automelt`, `autotrade`, `stocks`, `stockpiles`: fixed conflict with building renaming
|
||||||
|
- `tweak` block-labors: fixed two causes of crashes related in the v-p-l menu
|
||||||
|
- `full-heal`:
|
||||||
|
- 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
|
||||||
|
- `modtools/create-unit`:
|
||||||
|
- 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
|
||||||
|
- `exterminate`: fixed documentation of ``this`` option
|
||||||
|
|
||||||
|
## 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 ``Gui::inRenameBuilding()``
|
||||||
|
- Added function names to DFHack's NullPointer and InvalidArgument exceptions
|
||||||
|
- Linux: required plugins to have symbols resolved at link time, for consistency with other platforms
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.09-r1
|
||||||
|
|
||||||
|
## Internals
|
||||||
|
- OS X: Can now build with GCC 7 (or older)
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
-@ ``renderer``: fixed vtable addresses on 64-bit OS X
|
||||||
|
- ``building_type``: added human-readable ``name`` attribute
|
||||||
|
- ``furnace_type``: added human-readable ``name`` attribute
|
||||||
|
- ``workshop_type``: added human-readable ``name`` attribute
|
||||||
|
- ``army``: added vector new in 0.44.07
|
||||||
|
- ``site_reputation_report``: named ``reports`` vector
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.08-alpha1
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
- `fix/dead-units`: fixed a bug that could remove some arriving (not dead) units
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.07-beta1
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
-@ Added symbols for Toady's `0.44.07 Linux test build <http://www.bay12forums.com/smf/index.php?topic=169839.msg7720111#msg7720111>`_ to fix :bug:`10615`
|
||||||
|
-@ ``world_site``: fixed alignment
|
||||||
|
|
||||||
|
## Misc improvements
|
||||||
|
- `modtools/item-trigger`: added the ability to specify inventory mode(s) to trigger on
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.07-alpha1
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
- Support for building on Ubuntu 18.04
|
||||||
|
- Fixed some CMake warnings (CMP0022)
|
||||||
|
- `embark-assistant`: fixed detection of reanimating biomes
|
||||||
|
|
||||||
|
## Misc Improvements
|
||||||
|
- `embark-assistant`:
|
||||||
|
|
||||||
|
- Added search for adamantine
|
||||||
|
- Now supports saving/loading profiles
|
||||||
|
|
||||||
|
- `fillneeds`: added ``-all`` option to apply to all units
|
||||||
|
- `remotefortressreader`: added flows, instruments, tool names, campfires, ocean waves, spiderwebs
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
- Several new names in instrument raw structures
|
||||||
|
- ``identity``: identified ``profession``, ``civ``
|
||||||
|
- ``manager_order_template``: fixed last field type
|
||||||
|
- ``viewscreen_createquotast``: fixed layout
|
||||||
|
- ``world.language``: moved ``colors``, ``shapes``, ``patterns`` to ``world.descriptors``
|
||||||
|
- ``world.reactions``, ``world.reaction_categories``:\ moved to new compound, ``world.reactions``. Requires renaming:
|
||||||
|
|
||||||
|
- ``world.reactions`` to ``world.reactions.reactions``
|
||||||
|
- ``world.reaction_categories`` to ``world.reactions.reaction_categories``
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 0.44.05-r2
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## 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 the ``DFHACK_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.)
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
- `dwarfmonitor`:
|
||||||
|
- fixed display of creatures and poetic/music/dance forms on ``prefs`` screen
|
||||||
|
- added "view unit" option
|
||||||
|
- now exposes the selected unit to other tools
|
||||||
|
|
||||||
|
- `names`: fixed many errors
|
||||||
|
- `quicksave`: fixed an issue where the "Saving..." indicator often wouldn't appear
|
||||||
|
|
||||||
|
## Misc Improvements
|
||||||
|
- `gui/gm-unit`:
|
||||||
|
- added a profession editor
|
||||||
|
- misc. layout improvements
|
||||||
|
- `remotefortressreader`:
|
||||||
|
- support for moving adventurers
|
||||||
|
- support for vehicles, gem shapes, item volume, art images, item improvements
|
||||||
|
- `binpatch`: now reports errors for empty patch files
|
||||||
|
- `force`: now provides useful help
|
||||||
|
- `full-heal`:
|
||||||
|
- 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`
|
||||||
|
- `launch`: can now ride creatures
|
||||||
|
- `names`: can now edit names of units
|
||||||
|
|
||||||
|
## Removed
|
||||||
|
- `tweak`: ``kitchen-keys``: :bug:`614` fixed in DF 0.44.04
|
||||||
|
|
||||||
|
## Internals
|
||||||
|
- ``Gui::getAnyUnit()`` supports many more screens/menus
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
- New globals: ``soul_next_id``
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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`` globals
|
||||||
|
- `gui/pathable`: added tile types to sidebar
|
||||||
|
- `modtools/skill-change`:
|
||||||
|
- now updates skill levels appropriately
|
||||||
|
- only prints output if ``-loud`` is passed
|
||||||
|
|
||||||
|
## Structures
|
||||||
|
- New globals:
|
||||||
|
- ``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
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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
|
||||||
|
- `exportlegends`:
|
||||||
|
- 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
|
||||||
|
- `remotefortressreader`:
|
||||||
|
- 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 support ``find()``, e.g. ``df.unit.get_vector() == df.global.world.units.all``
|
||||||
|
|
||||||
|
## 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)
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
# 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 ``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``
|
||||||
|
|
@ -0,0 +1,272 @@
|
|||||||
|
import collections
|
||||||
|
import copy
|
||||||
|
import itertools
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
CHANGELOG_SECTIONS = [
|
||||||
|
'New Plugins',
|
||||||
|
'New Scripts',
|
||||||
|
'New Tweaks',
|
||||||
|
'New Features',
|
||||||
|
'New Internal Commands',
|
||||||
|
'Fixes',
|
||||||
|
'Misc Improvements',
|
||||||
|
'Removed',
|
||||||
|
'API',
|
||||||
|
'Internals',
|
||||||
|
'Lua',
|
||||||
|
'Ruby',
|
||||||
|
'Structures',
|
||||||
|
]
|
||||||
|
|
||||||
|
REPLACEMENTS = {
|
||||||
|
'`search`': '`search-plugin`',
|
||||||
|
}
|
||||||
|
|
||||||
|
def to_title_case(word):
|
||||||
|
if word == word.upper():
|
||||||
|
# Preserve acronyms
|
||||||
|
return word
|
||||||
|
return word[0].upper() + word[1:].lower()
|
||||||
|
|
||||||
|
def find_all_indices(string, substr):
|
||||||
|
start = 0
|
||||||
|
while True:
|
||||||
|
i = string.find(substr, start)
|
||||||
|
if i == -1:
|
||||||
|
return
|
||||||
|
yield i
|
||||||
|
start = i + 1
|
||||||
|
|
||||||
|
def replace_text(string, replacements):
|
||||||
|
for old_text, new_text in replacements.items():
|
||||||
|
new_string = ''
|
||||||
|
new_string_end = 0 # number of characters from string in new_string
|
||||||
|
for i in find_all_indices(string, old_text):
|
||||||
|
if i > 0 and string[i - 1] == '!':
|
||||||
|
# exempt if preceded by '!'
|
||||||
|
new_string += string[new_string_end:i - 1]
|
||||||
|
new_string += old_text
|
||||||
|
else:
|
||||||
|
# copy until this occurrence
|
||||||
|
new_string += string[new_string_end:i]
|
||||||
|
new_string += new_text
|
||||||
|
new_string_end = i + len(old_text)
|
||||||
|
new_string += string[new_string_end:]
|
||||||
|
string = new_string
|
||||||
|
return string
|
||||||
|
|
||||||
|
class ChangelogEntry(object):
|
||||||
|
def __init__(self, text, section, stable_version, dev_version):
|
||||||
|
text = text.lstrip('- ')
|
||||||
|
# normalize section to title case
|
||||||
|
self.section = ' '.join(map(to_title_case, section.strip().split()))
|
||||||
|
self.stable_version = stable_version
|
||||||
|
self.dev_version = dev_version
|
||||||
|
self.dev_only = text.startswith('@')
|
||||||
|
text = text.lstrip('@ ')
|
||||||
|
self.children = []
|
||||||
|
|
||||||
|
split_index = text.find(': ')
|
||||||
|
if split_index != -1:
|
||||||
|
self.feature, description = text[:split_index], text[split_index+1:]
|
||||||
|
if description.strip():
|
||||||
|
self.children.insert(0, description.strip())
|
||||||
|
else:
|
||||||
|
self.feature = text
|
||||||
|
self.feature = self.feature.replace(':\\', ':').rstrip(':')
|
||||||
|
|
||||||
|
self.sort_key = self.feature.upper()
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return 'ChangelogEntry(%r, %r)' % (self.feature, self.children)
|
||||||
|
|
||||||
|
def parse_changelog():
|
||||||
|
cur_stable = None
|
||||||
|
cur_dev = None
|
||||||
|
cur_section = None
|
||||||
|
last_entry = None
|
||||||
|
entries = []
|
||||||
|
|
||||||
|
with open('docs/changelog.txt') as f:
|
||||||
|
multiline = ''
|
||||||
|
for line_id, line in enumerate(f.readlines()):
|
||||||
|
line_id += 1
|
||||||
|
|
||||||
|
if multiline:
|
||||||
|
multiline += line
|
||||||
|
elif '[[[' in line:
|
||||||
|
multiline = line.replace('[[[', '')
|
||||||
|
|
||||||
|
if ']]]' in multiline:
|
||||||
|
line = multiline.replace(']]]', '')
|
||||||
|
multiline = ''
|
||||||
|
elif multiline:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if not line.strip() or line.startswith('==='):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if line.startswith('##'):
|
||||||
|
cur_section = line.lstrip('#').strip()
|
||||||
|
elif line.startswith('#'):
|
||||||
|
cur_dev = line.lstrip('#').strip().lower()
|
||||||
|
if ('alpha' not in cur_dev and 'beta' not in cur_dev and
|
||||||
|
'rc' not in cur_dev):
|
||||||
|
cur_stable = cur_dev
|
||||||
|
elif line.startswith('-'):
|
||||||
|
if not cur_stable or not cur_dev or not cur_section:
|
||||||
|
raise ValueError(
|
||||||
|
'changelog.txt:%i: Entry without section' % line_id)
|
||||||
|
last_entry = ChangelogEntry(line.strip(), cur_section,
|
||||||
|
cur_stable, cur_dev)
|
||||||
|
entries.append(last_entry)
|
||||||
|
elif line.lstrip().startswith('-'):
|
||||||
|
if not cur_stable or not cur_dev:
|
||||||
|
raise ValueError(
|
||||||
|
'changelog.txt:%i: Sub-entry without section' % line_id)
|
||||||
|
if not last_entry:
|
||||||
|
raise ValueError(
|
||||||
|
'changelog.txt:%i: Sub-entry without parent' % line_id)
|
||||||
|
last_entry.children.append(line.strip('- \n'))
|
||||||
|
else:
|
||||||
|
raise ValueError('Invalid line: ' + line)
|
||||||
|
|
||||||
|
return entries
|
||||||
|
|
||||||
|
def consolidate_changelog(all_entries):
|
||||||
|
for sections in all_entries.values():
|
||||||
|
for section, entries in sections.items():
|
||||||
|
# sort() is stable, so reverse entries so that older entries for the
|
||||||
|
# same feature are on top
|
||||||
|
entries.reverse()
|
||||||
|
entries.sort(key=lambda entry: entry.sort_key)
|
||||||
|
new_entries = []
|
||||||
|
for feature, group in itertools.groupby(entries,
|
||||||
|
lambda e: e.feature):
|
||||||
|
old_entries = list(group)
|
||||||
|
children = list(itertools.chain(*[entry.children
|
||||||
|
for entry in old_entries]))
|
||||||
|
new_entry = copy.deepcopy(old_entries[0])
|
||||||
|
new_entry.children = children
|
||||||
|
new_entries.append(new_entry)
|
||||||
|
entries[:] = new_entries
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def print_changelog(versions, all_entries, path, replace=True, prefix=''):
|
||||||
|
# all_entries: version -> section -> entry
|
||||||
|
with open(path, 'w') as f:
|
||||||
|
def write(line):
|
||||||
|
if replace:
|
||||||
|
line = replace_text(line, REPLACEMENTS)
|
||||||
|
f.write(prefix + line + '\n')
|
||||||
|
for version in versions:
|
||||||
|
sections = all_entries[version]
|
||||||
|
if not sections:
|
||||||
|
continue
|
||||||
|
version = 'DFHack ' + version
|
||||||
|
write(version)
|
||||||
|
write('=' * len(version))
|
||||||
|
write('')
|
||||||
|
for section in CHANGELOG_SECTIONS:
|
||||||
|
entries = sections[section]
|
||||||
|
if not entries:
|
||||||
|
continue
|
||||||
|
write(section)
|
||||||
|
write('-' * len(section))
|
||||||
|
for entry in entries:
|
||||||
|
if len(entry.children) == 1:
|
||||||
|
write('- ' + entry.feature + ': ' +
|
||||||
|
entry.children[0].strip('- '))
|
||||||
|
continue
|
||||||
|
elif entry.children:
|
||||||
|
write('- ' + entry.feature + ':')
|
||||||
|
write('')
|
||||||
|
for child in entry.children:
|
||||||
|
write(' - ' + child)
|
||||||
|
write('')
|
||||||
|
else:
|
||||||
|
write('- ' + entry.feature)
|
||||||
|
write('')
|
||||||
|
write('')
|
||||||
|
|
||||||
|
|
||||||
|
def generate_changelog(all=False):
|
||||||
|
entries = parse_changelog()
|
||||||
|
|
||||||
|
# scan for unrecognized sections
|
||||||
|
for entry in entries:
|
||||||
|
if entry.section not in CHANGELOG_SECTIONS:
|
||||||
|
raise RuntimeWarning('Unknown section: ' + entry.section)
|
||||||
|
|
||||||
|
# ordered versions
|
||||||
|
versions = ['future']
|
||||||
|
# map versions to stable versions
|
||||||
|
stable_version_map = {}
|
||||||
|
# version -> section -> entry
|
||||||
|
stable_entries = collections.defaultdict(lambda:
|
||||||
|
collections.defaultdict(list))
|
||||||
|
dev_entries = collections.defaultdict(lambda:
|
||||||
|
collections.defaultdict(list))
|
||||||
|
|
||||||
|
for entry in entries:
|
||||||
|
# build list of all versions
|
||||||
|
if entry.dev_version not in versions:
|
||||||
|
versions.append(entry.dev_version)
|
||||||
|
stable_version_map.setdefault(entry.dev_version, entry.stable_version)
|
||||||
|
|
||||||
|
if not entry.dev_only:
|
||||||
|
# add non-dev-only entries to both changelogs
|
||||||
|
stable_entries[entry.stable_version][entry.section].append(entry)
|
||||||
|
dev_entries[entry.dev_version][entry.section].append(entry)
|
||||||
|
|
||||||
|
consolidate_changelog(stable_entries)
|
||||||
|
|
||||||
|
print_changelog(versions, stable_entries, 'docs/_auto/news.rst')
|
||||||
|
print_changelog(versions, dev_entries, 'docs/_auto/news-dev.rst')
|
||||||
|
|
||||||
|
if all:
|
||||||
|
for version in versions:
|
||||||
|
if version not in stable_version_map:
|
||||||
|
print('warn: skipping ' + version)
|
||||||
|
continue
|
||||||
|
if stable_version_map[version] == version:
|
||||||
|
version_entries = {version: stable_entries[version]}
|
||||||
|
else:
|
||||||
|
version_entries = {version: dev_entries[version]}
|
||||||
|
print_changelog([version], version_entries,
|
||||||
|
'docs/_changelogs/%s-github.txt' % version,
|
||||||
|
replace=False)
|
||||||
|
print_changelog([version], version_entries,
|
||||||
|
'docs/_changelogs/%s-reddit.txt' % version,
|
||||||
|
replace=False,
|
||||||
|
prefix='> ')
|
||||||
|
|
||||||
|
return entries
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import argparse
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('-a', '--all', action='store_true',
|
||||||
|
help='Print changelogs for all versions to docs/_changelogs')
|
||||||
|
parser.add_argument('-c', '--check', action='store_true',
|
||||||
|
help='Check that all entries are printed')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
os.chdir(os.path.abspath(os.path.dirname(__file__)))
|
||||||
|
os.chdir('..')
|
||||||
|
entries = generate_changelog(all=args.all)
|
||||||
|
|
||||||
|
if args.check:
|
||||||
|
with open('docs/_auto/news.rst') as f:
|
||||||
|
content_stable = f.read()
|
||||||
|
with open('docs/_auto/news-dev.rst') as f:
|
||||||
|
content_dev = f.read()
|
||||||
|
for entry in entries:
|
||||||
|
for description in entry.children:
|
||||||
|
if not entry.dev_only and description not in content_stable:
|
||||||
|
print('stable missing: ' + description)
|
||||||
|
if description not in content_dev:
|
||||||
|
print('dev missing: ' + description)
|
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1 @@
|
|||||||
|
git-describe.cmake
|
@ -0,0 +1,43 @@
|
|||||||
|
#include "Error.h"
|
||||||
|
#include "MiscUtils.h"
|
||||||
|
|
||||||
|
using namespace DFHack::Error;
|
||||||
|
|
||||||
|
inline std::string safe_str(const char *s)
|
||||||
|
{
|
||||||
|
return s ? s : "(NULL)";
|
||||||
|
}
|
||||||
|
|
||||||
|
NullPointer::NullPointer(const char *varname, const char *func)
|
||||||
|
:All("In " + safe_str(func) + ": NULL pointer: " + safe_str(varname)),
|
||||||
|
varname(varname)
|
||||||
|
{}
|
||||||
|
|
||||||
|
InvalidArgument::InvalidArgument(const char *expr, const char *func)
|
||||||
|
:All("In " + safe_str(func) + ": Invalid argument; expected: " + safe_str(expr)),
|
||||||
|
expr(expr)
|
||||||
|
{}
|
||||||
|
|
||||||
|
VTableMissing::VTableMissing(const char *name)
|
||||||
|
:All("Missing vtable address: " + safe_str(name)),
|
||||||
|
name(name)
|
||||||
|
{}
|
||||||
|
|
||||||
|
SymbolsXmlParse::SymbolsXmlParse(const char* desc, int id, int row, int col)
|
||||||
|
:AllSymbols(stl_sprintf("error %d: %s, at row %d col %d", id, desc, row, col)),
|
||||||
|
desc(safe_str(desc)), id(id), row(row), col(col)
|
||||||
|
{}
|
||||||
|
|
||||||
|
SymbolsXmlBadAttribute::SymbolsXmlBadAttribute(const char *attr)
|
||||||
|
:AllSymbols("attribute is either missing or invalid: " + safe_str(attr)),
|
||||||
|
attr(safe_str(attr))
|
||||||
|
{}
|
||||||
|
|
||||||
|
SymbolsXmlNoRoot::SymbolsXmlNoRoot()
|
||||||
|
:AllSymbols("no root element")
|
||||||
|
{}
|
||||||
|
|
||||||
|
SymbolsXmlUnderspecifiedEntry::SymbolsXmlUnderspecifiedEntry(const char *where)
|
||||||
|
:AllSymbols("Underspecified symbol file entry, each entry needs to set both the name attribute and have a value. parent: " + safe_str(where)),
|
||||||
|
where(safe_str(where))
|
||||||
|
{}
|
@ -1,51 +0,0 @@
|
|||||||
if(NOT EXISTS ${dfhack_SOURCE_DIR}/.git/index OR NOT EXISTS ${dfhack_SOURCE_DIR}/.git/modules/library/xml/index)
|
|
||||||
MESSAGE(FATAL_ERROR "Could not find git index file(s)")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(git_describe_tmp_h ${dfhack_SOURCE_DIR}/library/include/git-describe.tmp.h)
|
|
||||||
set(git_describe_h ${dfhack_SOURCE_DIR}/library/include/git-describe.h)
|
|
||||||
|
|
||||||
if(EXISTS ${git_describe_tmp_h} AND
|
|
||||||
NOT(${dfhack_SOURCE_DIR}/.git/index IS_NEWER_THAN ${git_describe_tmp_h}) AND
|
|
||||||
NOT(${dfhack_SOURCE_DIR}/.git/modules/library/xml/index IS_NEWER_THAN ${git_describe_tmp_h}))
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=8 --long
|
|
||||||
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
|
||||||
OUTPUT_VARIABLE DFHACK_GIT_DESCRIPTION)
|
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
|
|
||||||
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
|
||||||
OUTPUT_VARIABLE DFHACK_GIT_COMMIT)
|
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=8 --exact-match
|
|
||||||
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
|
||||||
RESULT_VARIABLE DFHACK_GIT_TAGGED_RESULT
|
|
||||||
OUTPUT_QUIET ERROR_QUIET)
|
|
||||||
|
|
||||||
# Check library/xml for matching commits
|
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD:library/xml
|
|
||||||
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
|
||||||
OUTPUT_VARIABLE DFHACK_GIT_XML_EXPECTED_COMMIT)
|
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
|
|
||||||
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}/library/xml"
|
|
||||||
OUTPUT_VARIABLE DFHACK_GIT_XML_COMMIT)
|
|
||||||
|
|
||||||
file(WRITE ${git_describe_tmp_h} "")
|
|
||||||
|
|
||||||
macro(git_describe_definition var)
|
|
||||||
string(STRIP "${${var}}" GIT_DEF_VALUE)
|
|
||||||
file(APPEND ${git_describe_tmp_h} "#define ${var} \"${GIT_DEF_VALUE}\"\n")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
git_describe_definition(DFHACK_GIT_DESCRIPTION)
|
|
||||||
git_describe_definition(DFHACK_GIT_COMMIT)
|
|
||||||
git_describe_definition(DFHACK_GIT_XML_EXPECTED_COMMIT)
|
|
||||||
git_describe_definition(DFHACK_GIT_XML_COMMIT)
|
|
||||||
if(${DFHACK_GIT_TAGGED_RESULT} EQUAL 0)
|
|
||||||
file(APPEND ${git_describe_tmp_h} "#define DFHACK_GIT_TAGGED\n")
|
|
||||||
endif()
|
|
||||||
if(${DFHACK_GIT_XML_COMMIT} STREQUAL ${DFHACK_GIT_XML_EXPECTED_COMMIT})
|
|
||||||
file(APPEND ${git_describe_tmp_h} "#define DFHACK_GIT_XML_MATCH\n")
|
|
||||||
endif()
|
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${git_describe_tmp_h} ${git_describe_h})
|
|
@ -0,0 +1,39 @@
|
|||||||
|
# Generated from git-describe.cmake.in
|
||||||
|
set(DFHACK_BUILD_ID "@DFHACK_BUILD_ID@")
|
||||||
|
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=8 --long
|
||||||
|
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE DFHACK_GIT_DESCRIPTION
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
|
||||||
|
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE DFHACK_GIT_COMMIT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=8 --exact-match
|
||||||
|
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
||||||
|
RESULT_VARIABLE DFHACK_GIT_TAGGED_RESULT
|
||||||
|
OUTPUT_QUIET ERROR_QUIET)
|
||||||
|
|
||||||
|
# Check library/xml for matching commits
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD:library/xml
|
||||||
|
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}"
|
||||||
|
OUTPUT_VARIABLE DFHACK_GIT_XML_EXPECTED_COMMIT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
|
||||||
|
WORKING_DIRECTORY "${dfhack_SOURCE_DIR}/library/xml"
|
||||||
|
OUTPUT_VARIABLE DFHACK_GIT_XML_COMMIT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
if(${DFHACK_GIT_TAGGED_RESULT} EQUAL 0)
|
||||||
|
set(DFHACK_GIT_TAGGED TRUE)
|
||||||
|
else()
|
||||||
|
set(DFHACK_GIT_TAGGED FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${DFHACK_GIT_XML_COMMIT} STREQUAL ${DFHACK_GIT_XML_EXPECTED_COMMIT})
|
||||||
|
set(DFHACK_GIT_XML_MATCH TRUE)
|
||||||
|
else()
|
||||||
|
set(DFHACK_GIT_XML_MATCH FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
configure_file(${dfhack_SOURCE_DIR}/library/include/git-describe.h.in ${dfhack_SOURCE_DIR}/library/include/git-describe.h)
|
@ -1 +1 @@
|
|||||||
git-describe.*
|
git-describe.h
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
friend struct world_raws;
|
@ -0,0 +1,7 @@
|
|||||||
|
#cmakedefine DFHACK_GIT_DESCRIPTION "@DFHACK_GIT_DESCRIPTION@"
|
||||||
|
#cmakedefine DFHACK_GIT_COMMIT "@DFHACK_GIT_COMMIT@"
|
||||||
|
#cmakedefine DFHACK_GIT_XML_EXPECTED_COMMIT "@DFHACK_GIT_XML_EXPECTED_COMMIT@"
|
||||||
|
#cmakedefine DFHACK_GIT_XML_COMMIT "@DFHACK_GIT_XML_COMMIT@"
|
||||||
|
#define DFHACK_BUILD_ID "@DFHACK_BUILD_ID@"
|
||||||
|
#cmakedefine DFHACK_GIT_TAGGED
|
||||||
|
#cmakedefine DFHACK_GIT_XML_MATCH
|
@ -1,44 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
/**
|
|
||||||
* \defgroup grp_vermin Wild vermin (ants, bees, etc)
|
|
||||||
*/
|
|
||||||
#include "Export.h"
|
|
||||||
#include "DataDefs.h"
|
|
||||||
#include "df/vermin.h"
|
|
||||||
|
|
||||||
namespace DFHack
|
|
||||||
{
|
|
||||||
namespace Vermin
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Structure for holding a read DF vermin spawn point object
|
|
||||||
* \ingroup grp_vermin
|
|
||||||
*/
|
|
||||||
struct t_vermin
|
|
||||||
{
|
|
||||||
df::vermin * origin;
|
|
||||||
int16_t race;
|
|
||||||
int16_t caste;
|
|
||||||
uint16_t x;
|
|
||||||
uint16_t y;
|
|
||||||
uint16_t z;
|
|
||||||
uint32_t countdown;
|
|
||||||
bool visible:1;
|
|
||||||
bool is_colony:1; /// Is vermin object a colony?
|
|
||||||
};
|
|
||||||
|
|
||||||
static const uint16_t TYPE_WILD_COLONY = 0xFFFF;
|
|
||||||
/**
|
|
||||||
* Get number of vermin objects
|
|
||||||
*/
|
|
||||||
DFHACK_EXPORT uint32_t getNumVermin();
|
|
||||||
/**
|
|
||||||
* Read from vermin object
|
|
||||||
*/
|
|
||||||
DFHACK_EXPORT bool Read (const uint32_t index, t_vermin & point);
|
|
||||||
/**
|
|
||||||
* Write into vermin object
|
|
||||||
*/
|
|
||||||
DFHACK_EXPORT bool Write (const uint32_t index, t_vermin & point);
|
|
||||||
}// end DFHack::Vermin
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue