Commit Graph

4439 Commits (0b2989fb1508fe6291ccee57dd4077f59b1f720d)

Author SHA1 Message Date
myk002 d9c6c2dde3
add safe_pairs, update unit tests 2021-08-19 21:57:16 -07:00
myk002 6d0f7e40a9
be silent if iteration fails for printall 2021-08-19 21:57:16 -07:00
myk002 3f2795e80a
unit tests first draft 2021-08-19 21:56:44 -07:00
myk002 9fc71ef6e1
printall and printall_ipairs handle all iterables 2021-08-19 21:56:43 -07:00
myk002 4606d5742e
ensure printall, ~, and @ behave in lua 5.3.6 2021-08-19 21:56:41 -07:00
myk002 e9eef31344
refactor list item removal into a library fn 2021-08-19 19:51:25 -07:00
Myk 8b824244ac
Update library/modules/Items.cpp
Co-authored-by: Alan <lethosor@users.noreply.github.com>
2021-08-19 19:21:27 -07:00
myk002 06a85d6f0d
handle projectiles in the Items module 2021-08-19 17:44:13 -07:00
DFHack-Urist via GitHub Actions ef0ddb729e Auto-update submodules
library/xml: master
depends/luacov: dfhack
2021-08-12 02:10:05 +00:00
lethosor e8d9a9d184
Fix out-of-bounds access in memscan.field_offset()
Fixes #1907
2021-08-10 11:26:06 -04:00
myk002 192dfd51ee
clear modstate on window focus
this fixes the issue where the alt modstate was getting stuck on systems
that don't send standard keyup events after alt-tab. for example, in KDE
Plasma (on Gentoo, at least), the keyup event when alt is released after
alt-tab contains an incorrect keycode (NUMLOCK instead of L_ALT), which
was preventing us from correctly clearing the alt modstate.
2021-08-06 07:10:42 -07:00
lethosor d572c6c9dd
Update xml (dfhack/df-structures#434) 2021-08-04 23:21:28 -04:00
myk002 5b960b97bc
fix comment for Maps::getSize(); add getTileSize() 2021-07-30 13:09:12 -07:00
Timur Kelman 15d8a0bea2
rename `dismiss_on_submit|2` to `dismiss_on_select|2`
to avoid confusion
2021-07-30 17:25:01 +02:00
Timur Kelman ffecdf3b53
ListBox attributes controlling self:dismiss()
`dismiss_on_submit = false` makes it easier to implement toggleable options, where we don't want the list to disappear on selection. Like work order conditions' trait selection.
2021-07-29 19:00:19 +02:00
DFHack-Urist via GitHub Actions b2054801fa Auto-update submodules
library/xml: master
scripts: master
2021-07-15 07:14:59 +00:00
lethosor dde589967a
Bump to 0.47.05-r2, update changelog 2021-07-09 21:21:36 -04:00
lethosor 898d4621da
Merge remote-tracking branch 'myk002/myk_view_unit' into develop 2021-07-05 20:42:49 -04:00
myk002 87c7d02e09
support view unit mode for guidm.enterSidebarMode 2021-07-05 16:02:19 -07:00
myk002 17d4be14f3
fix formatting of coords error message 2021-07-05 16:01:07 -07:00
myk002 f62ff3ecc0
migrate existing lua code to use new library fns 2021-07-05 15:48:51 -07:00
lethosor f33db33c8f
Merge remote-tracking branch 'myk002/myk_force_extents' into develop + add extra changelog note
Conflicts:
	docs/changelog.txt
2021-07-05 15:52:03 -04:00
lethosor 2f36404da7
Merge remote-tracking branch 'origin/lua_label_input_fix' into develop 2021-07-05 15:42:06 -04:00
lethosor 3e6cecbbc6
Merge remote-tracking branch 'myk002/myk_argparse' into develop 2021-07-05 15:21:59 -04:00
lethosor fb7560d8bf
Merge remote-tracking branch 'wolfboyft/patch-2' into develop 2021-07-05 11:41:37 -04:00
myk002 0ef5134a33
add optional coordinate validation to coords 2021-07-04 07:32:29 -07:00
myk002 56a1c8b4d5
coordinates can be 0 2021-07-03 16:26:39 -07:00
myk002 3a8f564cd2
forward old processArgs fns to new locations 2021-07-02 23:21:40 -07:00
myk002 9535ff82bb
add argparse library functions 2021-07-02 23:11:17 -07:00
myk002 36b2d05ff6
add dfhack string functions and tests
added string:split
added string:trim
added a default value for wrap width
added function comments
added tests for all string functions (the tests for string:split will be commented out until we remove the competing implementation in gui/load-screen
2021-07-02 13:21:54 -07:00
myk002 eafa6e86f7
add utils.normalizePath() 2021-06-29 12:22:05 -07:00
lethosor e070f4d9d8
Merge remote-tracking branch 'myk002/myk_sidebar' into develop 2021-06-28 01:03:13 -04:00
lethosor 4945018e92
Merge remote-tracking branch 'myk002/myk_multi_mock' into develop 2021-06-25 01:27:46 -04:00
lethosor 96dd249be0
getAnyPlant: use Maps::getPlantAtTile
Followup to #1882
2021-06-25 01:08:58 -04:00
Ryan Williams 5807d6fbfa
Merge branch 'DFHack:develop' into patch-1 2021-06-23 23:08:01 -07:00
Ryan Williams c5e7a54d97
Rename to getPlantAtTile; remove extra variables 2021-06-23 23:03:22 -07:00
Ryan Williams c5fb28a13c
Rename getPlantAtCoords to getPlantAtTile 2021-06-23 23:00:30 -07:00
Ryan Williams 818ff7a946
Rename getPlantAtCoords to getPlantAtTile 2021-06-23 22:59:39 -07:00
lethosor 1b167e7898
Also add quotes in expect.ne()
Extension of #1886
2021-06-24 01:15:15 -04:00
lethosor 72998cddd5
Merge remote-tracking branch 'myk002/myk_expect_quotes' into develop 2021-06-24 01:11:21 -04:00
myk002 67840c033c
add quotes around printed unequal values
so you can see confusing hidden trailing spaces
2021-06-23 14:04:16 -07:00
myk002 5b12c64cba
add new string function: wrap()
refactored and improved from the implementation in quickfort's dialog.lua
2021-06-23 13:59:39 -07:00
myk002 000b589e3a
add dwarfmode library function: enterSidebarMode()
refactored from quickfort. this common implementation will replace the
now redundant functions in quickfort, gui/mass-remove, and gui/blueprint
2021-06-23 12:29:37 -07:00
Ryan Williams bc841f595e
Update LuaApi.cpp 2021-06-22 20:05:45 -07:00
Ryan Williams b64e28253f
Update Maps.cpp 2021-06-22 20:03:18 -07:00
Ryan Williams d81de5e4c7
Add getPlantAtCoords function to Maps namespace
Derived from disassembly of DF code. Returns a pointer to plant struct that owns the tile at position. Useful for finding a tree from one of its branches. Lua API support.
2021-06-22 20:01:10 -07:00
Warmist b7069a5ebd
Fix label early key detection in scrolling logic
Current logic is because @myk002 fixed it so label would allow other widgets control when label(s) are present. However that breaks label key detection for default scroll keys. This can be worked around by setting scrollkeys to empty.

TBH: label is quite complicated and used everwhere so i'm reluctant to touch it and would love for someone to look over if i'm correct.
2021-06-22 11:31:00 +03:00
Tachytaenius 990c153a9a
Show adjective in item prompt
Useful for high boot/low boot etc.
2021-06-19 13:59:38 +01:00
lethosor 2fc5fbacb5
Merge remote-tracking branch 'myk002/myk_reveal_unhideFlood' into develop 2021-06-19 01:08:05 -04:00
myk002 b7a970a309
allow mock.func() to return multiple values 2021-06-15 13:16:05 -07:00
myk002 1a016a0ff3
force creation of extents for abstract buildings 2021-06-07 07:02:46 -07:00
myk002 fc860478e4
move fastdwarf's teleport code to Units module
and expose in Lua API
2021-06-06 08:48:32 -07:00
myk002 fb8d6614c7
expose core flood unhide logic to Lua
refactor is a straight copy-paste. this code could really stand some
cleanup (unused vars, unnecessary use of the MapCache layer, forced
allocation of all blocks even if they are not being unhidden, etc.), but
that can come in a later PR.
2021-06-02 14:49:19 -07:00
lethosor 4f976a5909
Merge remote-tracking branch 'myk002/myk_blueprint' into develop 2021-05-24 23:48:21 -04:00
DFHack-Urist via GitHub Actions ed290e104a Auto-update submodules
library/xml: master
2021-05-21 07:24:42 +00:00
myk002 aff5c9bf35
add getCursorCoords overload for df::coord
and factor out active cursor detection
2021-05-15 12:05:00 -07:00
myk002 59b08e99f6
fix -- handling and required arg detection 2021-05-07 15:21:45 -07:00
myk002 fd735d4b42
treat negative numbers as non-options in getopt 2021-05-07 15:21:45 -07:00
DFHack-Urist via GitHub Actions 27433b7388 Auto-update submodules
library/xml: master
2021-05-07 07:20:06 +00:00
DFHack-Urist via GitHub Actions 06612182ec Auto-update submodules
library/xml: master
scripts: master
2021-04-24 07:08:43 +00:00
DFHack-Urist via GitHub Actions 22752f0630 Auto-update submodules
library/xml: master
2021-04-23 07:08:50 +00:00
lethosor ee8e10429d
Add initial implementation of mock.restore()
Like mock.patch() but only restores original values instead of also setting
new values initially.
2021-04-16 00:34:46 -04:00
DFHack-Urist via GitHub Actions 792bf14921 Auto-update submodules
library/xml: master
2021-04-13 07:08:38 +00:00
lethosor 757736728d
Add a mock.func() helper for mocking functions 2021-04-10 01:22:03 -04:00
lethosor 5424392273
mock.patch(): propagate return values 2021-04-09 00:41:39 -04:00
lethosor f25b8a0d14
Fix patching value with nil 2021-04-09 00:35:54 -04:00
lethosor 7b2f01d45b
Add initial mock.patch() implementation for tests 2021-04-09 00:32:10 -04:00
DFHack-Urist via GitHub Actions 172821af17 Auto-update submodules
library/xml: master
scripts: master
2021-04-07 07:07:27 +00:00
myk002 642d8cbe4b
handle nil values sent to printerr 2021-04-05 01:37:43 -07:00
myk002 13ca7f8c9e
move expect.lua from internal/ to test_util/ 2021-04-04 17:37:37 -07:00
myk002 5af1b627cb
add tests, move expect.lua
I moved expect.lua from library/lua/test/ to library/lua/internal since
luacov is configured to ignore any file with /test/ in its path
2021-04-04 17:37:36 -07:00
myk002 a6561911c1
error on unmatched printerr output during a test
- provides expect,printerr_match for matching printerr output
- fails tests if printerr is called outside the printerr_match wrapper
- changes api of expect.error_match to mirror the new printerr_match api
2021-04-04 17:37:33 -07:00
lethosor dfb52a2aba
Merge remote-tracking branch 'lethosor/command-prompt-fix-gui-scripts' into develop
Conflicts:
	docs/changelog.txt
2021-04-02 21:53:14 -04:00
lethosor 8129fdab4e
Merge remote-tracking branch 'myk002/myk_invalidate_scripts' into develop 2021-03-31 00:50:31 -04:00
Ben Lubar c06d1f8e52
tagged union support for lua (#1818) 2021-03-30 15:55:06 -05:00
myk002 4e844f39ae
undo formatting change in script_environment 2021-03-29 12:29:15 -07:00
myk002 54a1e8d98a
move script_environment changes to test.lua 2021-03-29 12:23:53 -07:00
myk002 e4cab1b1c6
load scripts into different namespace for testing 2021-03-29 11:26:28 -07:00
DFHack-Urist via GitHub Actions badf471434 Auto-update submodules
library/xml: master
2021-03-29 07:07:32 +00:00
lethosor 2332009825
Merge remote-tracking branch 'myk002/myk_enable_luacov' into develop 2021-03-28 00:38:36 -04:00
lethosor 5e09fd882d
Fix Painter:viewport()
This works because Painter inherits from ViewRect. Unsure how this went unnoticed.
2021-03-27 16:55:48 -04:00
DFHack-Urist via GitHub Actions d5ba1a3d23 Auto-update submodules
library/xml: master
2021-03-27 07:11:38 +00:00
lethosor dbd35359be
Update xml 2021-03-24 22:07:37 -04:00
lethosor 62776f5568
Move `expect` functions to a separate file
This allows tests to test these functions without needing to include the test
wrapper directly (now ci/test.lua, formerly test/main.lua). Hopefully this
location is also more stable, similar to other libraries that are already tested.
2021-03-24 00:48:52 -04:00
lethosor e9efa6c961
Update xml, fix + improve robustness of unions.lua unit tests
- unit_action_fields(): handled primitive union members correctly
- unit_action_type(): added messages to make failures easier to diagnose
    - Also removed redundant checks that effectively checked that
      `enum.attrs[k] == enum.attrs[v]` - this is out of scope of union tests
2021-03-23 21:24:57 -04:00
DFHack-Urist via GitHub Actions d5d41cd374 Auto-update submodules
library/xml: master
2021-03-22 07:20:39 +00:00
lethosor 59b023c71d
Ensure that command-prompt is dismissed after a command creates a new screen
Fixes #1803

Running a command that created a new screen would previously result in a screen
order that looked like this, due to how `Screen::Hide` works:

- DF screen
  - `command-prompt` screen (dismissed)
    - New screen

The `command-prompt` screen remained on the stack until the new screen was
dismissed, so it would intercept viewscreen vmethod calls intended for the
DF screen.

This change adds a new behavior to `Screen::Hide` that results in this screen
order after running a command:

- DF screen
  - New screen
    - `command-prompt` screen (dismissed) - DF removes this screen immediately
2021-03-21 20:42:50 -04:00
lethosor fcb17da223
Update authors (#1801), xml 2021-03-20 19:21:39 -04:00
lethosor e8f8471af4
Update xml
Ref DFHack/df-structures#423
2021-03-12 00:26:02 -05:00
myk002 8fe3dac0b1
only enable luacov for the core context 2021-03-10 23:31:30 -08:00
lethosor 890fd5c746
Merge remote-tracking branch 'myk002/myk_no_test_docstrings' into develop 2021-03-10 00:44:23 -05:00
DFHack-Urist via GitHub Actions 7ea44010e0 Auto-update submodules
library/xml: master
2021-03-09 07:15:44 +00:00
myk002 916a10d717
exempt lua test files from docstring requirements
and don't display them with 'ls'
2021-03-07 08:52:45 -08:00
myk002 49b34b52f5
update docs 2021-03-07 08:16:25 -08:00
myk002 754baa45b3
remove io overrides
they were causing side effects when writing luacov reports
2021-03-07 08:16:24 -08:00
myk002 ba6a02eb59
call luacov.runner.init directly and clean up dbg 2021-03-07 08:16:24 -08:00
myk002 418a8c5d21
propagate luacov debug hook through coroutines 2021-03-07 08:16:24 -08:00
lethosor 032cd64c10
Bump to r1, update submodules and changelog 2021-03-06 13:30:16 -05:00
lethosor 2f629f3b22
Update xml 2021-03-06 12:29:35 -05:00
DFHack-Urist via GitHub Actions fe175876aa Auto-update submodules
library/xml: master
scripts: master
2021-03-06 07:15:27 +00:00
DFHack-Urist via GitHub Actions e72125dbff Auto-update submodules
library/xml: master
scripts: master
2021-03-05 07:15:28 +00:00
DFHack-Urist via GitHub Actions 1698a80c49 Auto-update submodules
library/xml: master
scripts: master
2021-03-04 07:15:38 +00:00
DFHack-Urist via GitHub Actions 12ad300d64 Auto-update submodules
library/xml: master
2021-03-03 07:16:20 +00:00
DFHack-Urist via GitHub Actions c9545268fa Auto-update submodules
library/xml: master
2021-03-02 07:15:54 +00:00
DFHack-Urist via GitHub Actions ed3f11a31d Auto-update submodules
library/xml: master
2021-03-01 07:15:58 +00:00
DFHack-Urist via GitHub Actions 3185d4d6cc Auto-update submodules
library/xml: master
2021-02-28 07:15:33 +00:00
DFHack-Urist via GitHub Actions 5affbce13b Auto-update submodules
library/xml: master
2021-02-27 07:15:42 +00:00
lethosor cb9ed4ff0c
Merge remote-tracking branch 'myk002/myk_manipulator' into develop
Conflicts:
	docs/changelog.txt
2021-02-25 00:39:01 -05:00
DFHack-Urist via GitHub Actions 29db977bc7 Auto-update submodules
library/xml: master
scripts: master
2021-02-23 07:15:29 +00:00
Ben Lubar f3dd38a038
update structures 2021-02-18 18:18:34 -06:00
myk002 9e17bc938c
only set labor validity for the player civ 2021-02-17 09:16:49 -08:00
Ben Lubar 416fc32cb2
update scripts and structures 2021-02-15 11:49:34 -06:00
Ben Lubar ef1ac6ff40
update structures 2021-02-13 16:23:01 -06:00
myk002 55743fc43f
Merge remote-tracking branch 'upstream/develop' into myk_manipulator 2021-02-13 07:16:58 -08:00
lethosor 49b6e814db
Bump to beta1, update submodules 2021-02-10 21:08:45 -05:00
Ben Lubar a051077820
update structures 2021-02-10 18:54:12 -06:00
lethosor 625380a30b
Update submodules 2021-02-09 00:11:59 -05:00
myk002 6819ee9928
make alchemist flag valid for controllable civs 2021-02-05 16:45:39 -08:00
lethosor 06cd0c8437
Make libz.dylib optional on macOS
Thurin reports that the path specified does not exist on macOS 11.2, and DFHack links successfully without it.

CMake output from the find_package(ZLib) call in /CMakeLists.txt:
Found ZLIB: /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libz.tbd (found suitable version "1.2.11", minimum required is "1.1.2")
2021-02-01 23:23:19 -05:00
lethosor 353b8b71f5
Update xml 2021-01-31 13:24:21 -05:00
lethosor 233925ec75
Bump to 0.47.05-alpha0, update xml 2021-01-31 12:10:00 -05:00
lethosor 7e12f3fd3d
Fix off-by-one, adjust changelog, move scroll keys to consistent place
Ref #1748
2021-01-30 19:40:15 -05:00
lethosor 8967e98a33
Merge remote-tracking branch 'myk002/myk_scrollable_labels' into develop 2021-01-30 19:33:04 -05:00
lethosor 813a353ec2
Update xml 2021-01-30 18:08:32 -05:00
lethosor 4126585573
Merge remote-tracking branch 'lethosor/lua-runcommand' into develop 2021-01-29 20:27:38 -05:00
lethosor de6f9183fd
Fix changelog, replace a couple qerror calls with error
Ref #1746
2021-01-29 00:04:10 -05:00
lethosor d4aef78b26
Merge remote-tracking branch 'myk002/myk_getopt' into develop 2021-01-28 23:58:45 -05:00
myk002 32a0363f31
move identity check up a bit to avoid useless work 2021-01-24 08:57:56 -08:00
myk002 03719f58df
avoid infinite parentage when linking rooms 2021-01-24 08:52:34 -08:00
myk002 5a2181d55e
don't render overflow text 2021-01-13 22:02:22 -08:00
myk002 39d274b00e
address review comments 2021-01-12 23:42:53 -08:00
myk002 d4fbf4261f
address review comments 2021-01-12 23:27:14 -08:00
myk002 dac9538fd9
let navigation keys propagate
so other components can use them for simultaneous control
2021-01-11 15:02:12 -08:00
Myk Taylor 2797061b04
scroll Label text when height exceeds viewrect 2021-01-11 14:47:05 -08:00
Myk Taylor 175776812e
implement a nice API wrapper for getopt 2021-01-10 16:51:46 -08:00
Myk Taylor 3b45878d41
allow non-options in commandlines and return them
also call qerror() on error, not os.exit
2021-01-10 16:51:45 -08:00
Myk Taylor 20276be50f
check in unaltered version of alt_getopt 2021-01-10 16:51:45 -08:00
lethosor 69ce5d9e3f
Send runCommand output to correct output stream
e.g. when run with dfhack-run
2021-01-08 21:06:42 -05:00
lethosor 614ea739d0
Merge branch 'develop' into lua-runcommand 2021-01-08 20:45:23 -05:00
lethosor 462208cad3
Merge remote-tracking branch 'cvuchener/fix-loadlibrary-errormessage' into develop 2021-01-06 21:00:03 -05:00
Clément Vuchener e7748e3f73 Add an error message when LoadLibrary fails 2021-01-01 15:35:59 +01:00
lethosor b89fe222c7
Update xml 2020-12-29 23:47:44 -05:00
lethosor eb6957a167
Bump to 0.47.04-r4 and update submodules 2020-12-24 13:32:44 -05:00
myk002 3ba984c22c
only reset extents if they are unusable
this allows callers of Buildings::setSize() to "pre-initialize" the
extents to declare non-rectangular structures. this allows quickfort to
create non-rectangular stockpiles, farm plots, zones, etc. the extents
are still reset as before if the size of the building doesn't match the
caller's expectations.

this commit also fixes a memory leak when setSize() allocates memory for
extents, but the memory is not deallocated if the building is ultimately
invalid for some reason.
2020-12-16 11:10:47 -08:00
lethosor 159695775e
Merge branch 'develop' into lua-runcommand 2020-12-05 19:49:55 -05:00
lethosor 855ce84eca
Update submodules 2020-12-04 23:55:43 -05:00
lethosor af2255956a
Update submodules 2020-12-03 23:00:21 -05:00
lethosor fe0cd9a939
Make lineedit() fail sooner when another lineedit() call is active
Before, calling `dfhack.run_command('tiletypes')` from a `dfhack.timeout` callback would leave the console in a broken state, since raw mode was enabled but never disabled.

Only tested on Linux with a supported terminal.
2020-12-03 22:04:00 -05:00
lethosor a9bb11c145
Optimize Lua's internal.runCommand() when printing directly to the console
This also makes commands run with `run_command()` detect the console properly (notably used by `df2console()`)
2020-11-20 17:57:54 -05:00
lethosor fb44b26b47
Make utils.addressof() work for raw userdata 2020-11-19 21:32:42 -05:00
lethosor 8cb38ecf5b
Merge remote-tracking branch 'myk002/myk_metalhead_mario' into develop 2020-11-13 14:04:30 -05:00
myk002 76e8c495fe
revert skip_vector=true for now 2020-11-13 10:45:53 -08:00
myk002 fa126af1fd
undo unnecessary edits 2020-11-12 22:49:06 -08:00
myk002 10616a387f
cleaner mask-based implementation 2020-11-12 22:44:38 -08:00
myk002 02a86d761a
identify bars as non_economic items
allows Job::isSuitableMaterial() to match metal bars as a building
material
2020-11-12 19:10:06 -08:00
lethosor 913d860ae4
Use initial working directory as process path on Linux, and expose to Lua 2020-11-12 19:07:51 -05:00
lethosor 23b230495e
Merge branch 'develop' into cwd-handling 2020-11-12 18:44:05 -05:00
lethosor 421844dcb8
Update xml 2020-11-11 16:05:24 -05:00
lethosor eee33822e7
Update submodules 2020-11-09 23:41:53 -05:00
lethosor 3aa902bd25
Update submodules 2020-11-03 19:52:24 -05:00
lethosor 1d0e2dc6bc
Update extents handling to use building_extents_type 2020-11-03 14:56:16 -05:00
lethosor 3b4d6de454
Merge remote-tracking branch 'myk002/quickfort_building_types' into develop 2020-10-27 23:14:38 -04:00
Myk Taylor 186f28a94b filters for altars, display cases, and bookcases 2020-10-23 09:11:07 -07:00
Myk Taylor 09fbaba726 buildingplan: support all building types
Allow buildingplan to handle all building types, update the docs, and add in little extra fixes to ensure all the new types work correctly.
2020-10-16 14:23:35 -07:00
Myk Taylor 82013c0c5e prep buildingplan for core algorithm changes
Lots of refactoring and reorganizing, with only cosmetic player-visible changes.

- show quickfort mode hotlkey label regardless of whether the current building type has buildingplan enabled. before, it was only shown after the user enabled buildingplan for the current building. this eliminates the extra step when enabling quickfort mode, which force-enables all building types.
- changed signature of lua-exported isPlannableBuilding to take subtype
  and custom type in addition to building type. this is only used by
  quickfort, and it already sends all three params in preparation for
  this change
- added lua-exported scheduleCycle(), which is like doCycle(), but only
  takes effect on the next non-paused frame. this lets quickfort
  run only one buildingplan cycle regardless of how many #build
  blueprints were run
- declared a few dfhack library methods and params const so buildingplan
  could call them from const methods
- converted buildingplan internal debug logging fn to have a printf api
- reshaped buildingplan-planner API and refactored implementation in
  preparation for upcoming core algorithm changes for supporing all
  building types (no externally-visible functionality changes)
  - changed df::building_type params to type, subtype, custom tuple keys
  - introduced capability to return multiple filters per building type
    (though the current buildings all only have one filter per)
- split monolith hook functions in buildingplan.cpp into one per scope.
  this significantly cleans up the code and preps the hooks to handle
  iterating through multiple item filters.
- got rid of send_key function and replaced with better reporting of
  whether keys have been handled
2020-10-16 13:52:23 -07:00
lethosor ce7772a1c2
Add Filesystem::restorecwd()
This allows restoring the working directory to its original value, which may not actually be the DF root. See #1671, dfhack/scripts#152
2020-10-14 21:22:53 -04:00
lethosor b343d00800
Update to 0.47.04-r3 (authors, changelog, and submodules) 2020-10-10 17:31:30 -04:00
lethosor 9c8098b4f0
Expose to_search_normalized to Lua, add test, and use in ListColumn (most useful for the `stocks` plugin) 2020-10-10 01:40:00 -04:00
lethosor 1b53c0e748
Merge remote-tracking branch 'GitOnUp/normalize_search' into develop 2020-10-09 22:18:39 -04:00
lethosor d1eec9d338
Update xml 2020-10-09 21:44:16 -04:00
lethosor c9609ad590
Make `createitem inspect` consistent for PLANT_GROWTH items 2020-10-09 12:45:49 -04:00
lethosor c2280356cb
Set language of some code blocks to enable syntax highlighting 2020-10-09 01:15:42 -04:00
lethosor 9ba677a38b
Update xml
dfhack/df-structures#410
2020-10-06 22:03:13 -04:00
lethosor 17bc4cd365
Merge remote-tracking branch 'myk002/buildingplan_item_match' into develop 2020-09-29 20:04:02 -04:00
Myk Taylor c73b1f03af buckets can be lye- and milk-free
otherwise the bucket for wells can never be matched
2020-09-29 00:23:44 -07:00
Myk Taylor 3c51bb51ab remove references to non-existent vector ids 2020-09-28 23:14:13 -07:00
Myk Taylor 6cc1428199 Merge remote-tracking branch 'upstream/develop' into buildings_vectors 2020-09-28 23:13:13 -07:00
George Murray 74a3e0eddf Use a string and .reserve for normalizing instead of stringbuf 2020-09-24 15:22:58 -07:00
George Murray f5c3712778 Nicer formatting for the normalized character mapping table 2020-09-24 14:32:58 -07:00
George Murray 38c9c28250 Fix wrong variable usage in to_search_normalized 2020-09-24 10:52:03 -07:00
George Murray a3c565b243 Add to_search_normalized to search for characters with accents 2020-09-24 07:31:10 -07:00
lethosor dfac5bc143
Update gui.Painter docs, add sections to dfhack.screen, add more links, etc 2020-09-23 22:00:39 -04:00
lethosor 65b8071941
Use typedefs from xlsxio in PluginStatics.h
The typedefs in the header foward-declared new structs of the same names in the DFHack namespace, e.g. DFHack::xlsxio_read_struct. Apparently the constructors that used these typedefs are not inlined on Windows, so libdfhack was compiled with a constructor taking a "DFHack::xlsxio_read_sheet_struct", and xlsxreader was looking for a constructor taking just a "xlsxio_read_sheet_struct", which didn't exist.
2020-09-18 15:05:17 -04:00
Myk Taylor f837532b42 use more precise item vectors for bld item filters 2020-09-13 17:12:29 -07:00
lethosor 5aca88ef03
Update submodules 2020-08-29 20:02:33 -04:00
lethosor 3b5a82cc05
Change color of ListBox.select2_hint to grey to indicate enabled
Ref dfhack/scripts#185
2020-08-27 00:08:28 -04:00
lethosor c034276af5
Merge remote-tracking branch 'myk002/quickfort_filter' into develop 2020-08-21 00:34:34 -04:00
lethosor 8779ca0659
Merge remote-tracking branch 'myk002/quickfort_civzones' into develop 2020-08-21 00:34:26 -04:00
Myk Taylor 9a3e9d5b12 listbox filter can match strings after punctuation 2020-08-17 21:15:33 -07:00
Myk Taylor 8a438c2a55 allow row_height to be set from the ListBox class 2020-08-17 21:14:05 -07:00
Myk Taylor e546d3eec3 rename is_civzone to the more general allow_wall 2020-08-15 20:13:48 -07:00
Myk Taylor ae872e812f properly detect valid tiles for civzones 2020-08-15 17:24:12 -07:00
Myk Taylor bda678bcd4 add some explanatory text to the top of the header 2020-08-11 19:47:04 -07:00
Myk Taylor 39ae2d95fc 2nd attempt to solve compilation errors on windows 2020-08-11 17:06:28 -07:00
Myk Taylor 4f88bb4c3d attempt to solve compilation error on windows 2020-08-11 16:54:53 -07:00
Myk Taylor 0bda289b17 move xlsxreader identity statics to dfhack lib 2020-08-11 14:51:17 -07:00
Myk Taylor a41f7c0998 convert XlsxReader module to xlsxreader plugin 2020-08-09 08:54:42 -07:00
Myk Taylor b0cb40c5ea pass the cmake environment to deps 2020-08-08 22:42:50 -07:00
Myk Taylor 8d157012d0 build dfhack with verbosity on too 2020-08-08 22:04:49 -07:00
Myk Taylor cffac8ed93 fix line endings in XlsxReader.cpp 2020-08-08 20:07:54 -07:00
Myk Taylor 8c7fb808e1 get xlsxio Lua API working 2020-08-08 17:55:49 -07:00
Myk Taylor 18f4786458 Merge remote-tracking branch 'upstream/develop' into quickfort_xlsxio 2020-08-08 17:17:45 -07:00
Myk Taylor 89a6309788 build xlsxio and link it into dfhack, add lua api 2020-08-08 15:24:12 -07:00
lethosor f2b0f012c9
Bump to 0.47.04-r2 2020-08-08 14:53:24 -04:00
lethosor 8c5b21b7ee
Fix a couple warnings in the Units module (#1615) 2020-08-08 14:35:12 -04:00
lethosor 8f047530c4
Make Units::getRaceNameById and other ID-related functions available to Lua 2020-08-08 14:28:17 -04:00
lethosor 3b3b0be8c5
Update submodules, tweak changelog order 2020-08-08 02:00:12 -04:00
lethosor cb1b751988
Update submodules 2020-08-08 00:31:28 -04:00
lethosor f7fda8e7f5
Update changelog, authors, xml (#1615) 2020-08-08 00:06:59 -04:00
Ryan Bennitt c76f71cd46 Update xml library submodule 2020-08-07 22:20:11 +01:00
Ryan Bennitt 23c22b3b9d Merge branch 'develop' of https://github.com/DFHack/dfhack into feature/manipulator_goal 2020-08-07 22:17:32 +01:00
Ryan Bennitt a85b77e6f1 Retrieve goal string values from enum attributes and add new Units methods to Lua API and docs 2020-08-07 22:07:48 +01:00
lethosor 498fd9a1a6
Flush plugin warning messages 2020-08-06 22:45:46 -04:00
lethosor 7c2af344a1
Update changelog (#1564) and xml (dfhack/df-structures#400) 2020-08-06 02:04:23 -04:00
lethosor d3fc691858
Merge remote-tracking branch 'PatrikLundell/Units' into develop 2020-08-06 00:12:54 -04:00
Ryan Bennitt 9510dd52e1 Add Goal to Manipulator Detail Modes 2020-08-04 23:01:28 +01:00
lethosor dba7df7ab8
Add "delete word" support to Console-posix 2020-08-02 23:10:35 -04:00
lethosor bb66ef32a7
Tone down a couple warnings
There have been a few cases of people thinking these are more important than they actually are
2020-08-02 12:55:36 -04:00
lethosor d504e476c5
Update xml 2020-07-28 23:42:37 -04:00
lethosor f546816eb9
Update submodules 2020-07-28 00:39:59 -04:00
lethosor 289e0df828
Roll back to actions/checkout v1
v2 uses the wrong commit sometimes: actions/checkout#299
2020-07-27 01:12:14 -04:00
lethosor 569370489a
Update submodules (fixes #1576) 2020-07-26 23:16:13 -04:00
lethosor f0ad730a37
Lua: Fix off-by-one preventing accessing last df-other-vectors item by ID, add tests 2020-07-26 02:11:27 -04:00
lethosor 4e218c7de3
Update xml 2020-07-26 02:00:13 -04:00
lethosor 4891b4fd5e
Fix indexing primitive refs with integers (broken in #1543), add tests
Apparently lua_tostring has the side effect of *converting* numbers to strings
2020-07-25 20:22:52 -04:00
lethosor 8137b43e57
Merge remote-tracking branch 'myk002/internal_scripts' into develop 2020-07-25 13:46:12 -04:00
lethosor 7c921d8c91
Lua listdir_recursive: allow nil to be used for default arguments
https://github.com/DFHack/dfhack/pull/1609#issuecomment-663803777
2020-07-25 13:02:35 -04:00
Myk Taylor 48d4013bcb don't list subdirectories named 'internal'
instead of just specifically for lua files with a '-internal.lua' suffix
2020-07-24 22:07:16 -07:00
Myk Taylor da11932d6b Merge remote-tracking branch 'upstream/develop' into internal_scripts 2020-07-24 20:47:24 -07:00
lethosor fcb14623a7
Update authors, submodules
Ref dfhack/scripts#162
2020-07-24 22:18:00 -04:00
lethosor cafdc1620b
Improve Lua listdir_recursive error handling
Ref #519, #1609
2020-07-24 22:15:35 -04:00
Myk Taylor 86e9f69d42 Merge branch 'quickfort_skeleton' into internal_scripts 2020-07-24 08:24:45 -07:00
Myk Taylor e17d492203 address PR review comments on api docs 2020-07-23 21:55:05 -07:00
Myk Taylor b200219967 support for splitting lua scripts into parts
without polluting the output of #DFHack ls
2020-07-20 23:04:23 -07:00
Myk Taylor d0f8ba06a2 expose new include_prefix param to Lua 2020-07-19 01:52:57 -07:00
Myk Taylor 16cfd34678 recurs-ify default config copying logic
I refactored Filesystem::listdir_recursive to support removing the path
prefix from the returned files list. There are no current calls that
make use of the prefix parameter, so I converted it into a boolean.
Current usages will use the new default parameter and will not see any
changed behavior.
2020-07-18 22:22:37 -07:00
lethosor a0c514b117
Update xml 2020-07-17 17:35:33 -04:00
lethosor 35d659091d
Merge remote-tracking branch 'myk002/blueprint_in_blueprints' into develop 2020-07-17 17:32:59 -04:00
lethosor 56e43a0dde
Linux: make Process::getPath (and dfhack.getDFPath()) not depend on cwd, for consistency with other platforms 2020-07-16 23:21:56 -04:00
Myk Taylor bb91fdcf8c Merge remote-tracking branch 'upstream/develop' into blueprint_in_blueprints 2020-07-16 09:24:52 -07:00
Myk Taylor 0afbe9d931 include algorithm on windows for std::replace 2020-07-16 08:42:39 -07:00
Myk Taylor bb1fcff410 use FILENAME_MAX instead of PATH_MAX for compat 2020-07-16 08:33:23 -07:00
lethosor c0d10b9e44
Update submodules 2020-07-16 01:49:16 -04:00
Myk Taylor 1ae341b637 Check that we created a dir before we return true 2020-07-15 22:02:12 -07:00
Myk Taylor c19fc1f349 gcc-4.8 compatibility 2020-07-15 21:35:21 -07:00
lethosor df6f3a0455 Mark ref_target as a metafield so meta_primitive_newindex fails properly
unit:_field('hist_figure_id').ref_target = 4 now fails with "Cannot write field int32_t.ref_target: builtin property or method" instead of "not found"
2020-07-14 02:31:18 -04:00
lethosor a44a2e2298 Merge branch 'develop' into lua-ref-target 2020-07-14 01:31:23 -04:00
lethosor 07a2b4a9d7 Use language_name_type enum item names 2020-07-11 02:05:38 -04:00
lethosor 24d64175fb Remove top-level links from TOCs 2020-07-08 02:13:37 -04:00
Ben Lubar 25f1b14a88
update structures 2020-07-01 23:12:45 -05:00
Ben Lubar 72ce52e004
update structures 2020-07-01 23:10:34 -05:00
lethosor ae0f57f0e0 Update submodules 2020-07-01 23:54:31 -04:00
Ben Lubar 9def098ef9
add enum-attrs to pronoun_type 2020-06-29 21:30:22 -05:00
Ben Lubar d13e5a3f31
update structures
handle renaming of caste_raw::gender
2020-06-29 20:20:37 -05:00
Ben Lubar a9f219baf9
update for DFHack/df-structures#7dfea1f1d4e453b97d5529785701db46360596ce 2020-06-29 16:16:44 -05:00
lethosor ee56d8157f Update xml 2020-06-27 00:15:48 -04:00
PatrikLundell 5570a5743b Merge branch 'develop' of https://github.com/DFHack/dfhack into Units 2020-06-26 09:53:41 +02:00
lethosor 8a7e8f4fac Update xml 2020-06-25 01:12:18 -04:00
Quietust e2301ecae7 Update structures, fix reaction_productst::produce() parms 2020-06-23 13:31:27 -06:00
Ben Lubar 85855a2d88
update structures 2020-06-21 16:16:16 -05:00
Ben Lubar 7b4ae9b6a3
update structures 2020-06-20 23:08:55 -05:00
Ben Lubar 5073bd31c4
update structures 2020-06-19 19:37:54 -05:00
Ben Lubar bd216dbc11
update structures 2020-06-15 23:47:35 -05:00
PatrikLundell d5b5b81450 changes 2020-06-02 15:03:59 +02:00
Ben Lubar 5d05cfc7cc
Fix several functions in the Units module ignoring unit caste.
Fixes #1583.
2020-06-02 01:18:57 -05:00
lethosor 2fc7fa7ac2 Update xml, scripts
See #1576
2020-05-28 23:11:08 -04:00
PatrikLundell 4e97269312 Merge branch 'develop' of https://github.com/DFHack/dfhack into Units 2020-05-23 10:25:08 +02:00
Ben Lubar f20446534b
fix DfOtherVectors computed size 2020-05-14 14:01:12 -05:00
Ben Lubar 7dd4b6d968
update structures 2020-05-14 13:07:11 -05:00
Ben Lubar 6c20fe4c80
implement df-other-vectors-type for lua 2020-05-09 18:28:40 -05:00
Ben Lubar 7cf9624de9
add assert to make sure other_id array index is in bounds 2020-05-09 18:28:40 -05:00
Ben Lubar fc10ed3df6
Implementation for df-other-vectors-type in C++. Still needs Lua and Ruby support. 2020-05-09 18:28:40 -05:00
Ben Lubar 0ffafbde29
update structures 2020-05-09 18:28:19 -05:00
lethosor d0c030c3da Update xml (changelog only) 2020-05-04 19:27:17 -04:00
PatrikLundell ec7f97bb7a adapted to enum value name change 2020-05-02 17:37:10 +02:00
Ben Lubar 1c57aa7bb4
update structures 2020-05-02 02:01:32 -05:00
Ben Lubar 947d0db182
update structures 2020-05-02 01:54:38 -05:00
lethosor 217535decb Update xml 2020-05-01 22:52:35 -04:00
lethosor 24cebbda58 Fix segfault when setting DFHACK_HEADLESS but not PRINT_MODE:TEXT
endwin() is unhappy if initscr() wasn't called
2020-04-28 21:38:47 -04:00
lethosor 2108c2363d Use strcmp 2020-04-28 01:21:11 -04:00
lethosor 9e085b66ac Merge branch 'develop' into lua-ref-target 2020-04-27 23:24:29 -04:00
lethosor 6bdbf5b0dd Update to 0.47.04-r1, update xml, scripts, changelog version 2020-04-25 21:33:02 -04:00
lethosor 7c1d1c43e5 Merge remote-tracking branch 'PatrikLundell/stocks' into develop
Conflicts:
	docs/changelog.txt
2020-04-25 21:12:27 -04:00
lethosor f008da32f8 Update submodules 2020-04-25 17:58:09 -04:00
lethosor 405af5a20b Update structures 2020-04-25 02:01:21 -04:00
lethosor 55a82e43c6 Update xml, fix stockpiles build 2020-04-24 23:50:35 -04:00
lethosor c6ed0a2458 Update xml, scripts, authors 2020-04-24 21:15:04 -04:00
lethosor 27e42ed25d Update xml 2020-04-23 23:12:43 -04:00
Ben Lubar 84f13b643b
update structures 2020-04-23 15:34:26 -05:00
lethosor c5513c3ca1 Update xml 2020-04-23 01:11:29 -04:00
lethosor 0272fd57f8 Update submodules 2020-04-22 22:16:24 -04:00
PatrikLundell 21be5cf061 adapted to structures 2020-04-22 15:32:49 +02:00
PatrikLundell f371ae6da8 adapted to histfig_nemesis_id->union 2020-04-22 12:38:37 +02:00
PatrikLundell 07571e9eb4 updated and resolved conflict 2020-04-22 11:43:37 +02:00
lethosor 9a10ea9fe5 Update submodules 2020-04-22 02:13:24 -04:00
Ben Lubar 66314806b1
update structures 2020-04-19 22:03:13 -05:00
Ben Lubar 54d4b68f3c
don't crash if the path to an instance-vector contains a null pointer 2020-04-18 20:40:17 -05:00
Ben Lubar c8ff8d0d8e
update scripts and structures 2020-04-17 11:52:16 -05:00
Ben Lubar 8427f518c9
match capitalization changes I made to df-structures in specific_ref 2020-04-15 20:05:15 -05:00
Ben Lubar 253b15aeb9
update structures 2020-04-15 19:03:40 -05:00
PatrikLundell f4f2aa0d5e removed underscores, adapted to structure (re)naming 2020-04-15 10:18:37 +02:00
PatrikLundell b0d184e2f9 Merge branch 'develop' of https://github.com/DFHack/dfhack into Units 2020-04-15 09:45:54 +02:00
lethosor 57d565c735 Merge remote-tracking branch 'PatrikLundell/TranslateName' into develop 2020-04-15 01:07:34 -04:00
Ben Lubar 67c1321a06
update structures 2020-04-11 13:03:38 -05:00
lethosor 9a2549bad6 Update xml 2020-04-09 23:56:01 -04:00
lethosor 125f4b129b Add ref_target attribute to primitive field references 2020-04-09 00:02:07 -04:00
PatrikLundell 55988e3fc4 adapted to updated structures, remote Using units for age 2020-04-08 08:45:40 +02:00
PatrikLundell 5ce84a76f9 Merge branch 'develop' of https://github.com/DFHack/dfhack into Units 2020-04-08 08:35:58 +02:00
Ben Lubar 509755d726
update structures 2020-04-07 16:08:19 -05:00
Ben Lubar 6b810b97a0
DataDefs.h can have little a documentation 2020-04-07 13:46:44 -05:00
Ben Lubar c8e63cf7a6
update structures 2020-04-07 10:17:01 -05:00
lethosor f83fee86de Make pairs(df.type) return class methods 2020-04-06 19:12:53 -04:00
lethosor cc2a5acdd3 Update xml, authors 2020-04-05 23:29:53 -04:00
PatrikLundell a0e2abe20a Units update need coordination with structure identity 2020-04-04 14:00:26 +02:00
lethosor c8a0ac146c Update submodules, changelog, CMakeLists, Authors 2020-04-04 01:36:52 -04:00
lethosor eb4cfcec90 Update xml 2020-04-04 00:36:02 -04:00
lethosor 1024f39a26 Update submodules 2020-04-02 01:47:53 -04:00
PatrikLundell 63a26b987d Fix issue #1528 2020-04-01 11:16:24 +02:00
lethosor 4844ff5071 Update submodules 2020-04-01 00:25:12 -04:00
Ben Lubar ffe73028f9
update structures 2020-03-30 10:36:45 -05:00
lethosor 6c00ace68b Merge branch 'develop' of gh:DFHack/dfhack into develop 2020-03-30 03:03:00 -04:00
lethosor 9b1dddc336 Update xml, scripts, change unit_action.data field names back
Fixes #1520
Makes part of dfhack/scripts#130 unnecessary
2020-03-30 03:00:41 -04:00
Ben Lubar 52cf892383
update structures and scripts 2020-03-29 14:08:30 -05:00
lethosor 6eb73d9046 Fall back to stdout if tty fails to open
May help with #1477
2020-03-28 13:14:03 -04:00
lethosor b6e0d3f73d Update xml 2020-03-28 01:36:41 -04:00
lethosor 67908e0f53 Console-posix: Reset color on shutdown
Ensures that dfhack-run doesn't leave behind a colorful prompt
2020-03-25 00:30:12 -04:00
lethosor 65a7db44be Update xml, scripts 2020-03-24 01:28:02 -04:00
lethosor 24ceff8f7d Update xml, scripts 2020-03-23 00:49:57 -04:00
lethosor 49fcb29097 Update xml, scripts 2020-03-22 17:24:39 -04:00
Ben Lubar b67de60a9b
update structures 2020-03-22 12:36:19 -05:00
Ben Lubar 0b69f98561
update structures 2020-03-22 12:22:43 -05:00
Ben Lubar 97916fd55e
implement tagged union structures attributes 2020-03-21 14:29:14 -05:00
Ben Lubar b29d009b14
update structures; implement struct_field_info_extra 2020-03-21 13:21:35 -05:00
Ben Lubar 5b8952baf8
ghidra: handle destructor ABI differences 2020-03-21 08:53:11 -05:00
Ben Lubar b2940b69f8
update structures 2020-03-21 07:49:22 -05:00
lethosor 77e40a52c0 Update scripts, xml, authors 2020-03-21 02:02:00 -04:00
Ben Lubar 37e7bed779
add df.global:_field method. add test case to check for overlapping globals. 2020-03-20 09:41:58 -05:00
Ben Lubar d28b35b6eb
update structures 2020-03-15 15:29:02 -05:00
Ben Lubar 2f4bd32d28
update structures and scripts 2020-03-15 15:19:51 -05:00
Ben Lubar 60722d778f
update structures and scripts 2020-03-15 02:17:19 -05:00
Ben Lubar 39486083f5
handle overlapping structures in check-structures-sanity better
update structures
2020-03-12 22:16:30 -05:00
Ben Lubar 1a4c4a5f33
update structures 2020-03-12 14:03:23 -05:00
Ben Lubar f204f14e52
update scripts and structures 2020-03-12 12:53:24 -05:00
Ben Lubar 2a6b2cacbd
update scripts and structures 2020-03-12 12:34:57 -05:00
Ben Lubar b9841110c3
update structures and scripts 2020-03-09 17:53:34 -05:00
Pierre-David Bélanger a7d263fa67
getFullName of the container AND the item, also exclude container of char (#1515)
* getFullName of the container AND the item, also exclude container of char

* bit vector condition was backwards
2020-03-09 13:12:04 -05:00
Ben Lubar ffb3c29cfc
simplify Graphic module. update structures.
it appears that all this added complexity including an extra pointer dereference was to avoid including the vector header.
2020-03-08 00:12:48 -06:00
Ben Lubar c4e9c8d29c
update structures 2020-03-07 15:15:02 -06:00
Ben Lubar 5f83681fbc
update scripts and structures 2020-03-07 12:08:03 -06:00
Ben Lubar a214e00407
allow union vectors to have tags that are bit vectors if they have exactly 2 members 2020-03-06 16:48:33 -06:00
Ben Lubar 508ab79af2
document where tagged unions should be implemented for Lua 2020-03-06 16:33:02 -06:00
Ben Lubar 635e709d95
name ui_look_list union
update scripts and structures
2020-03-06 16:06:27 -06:00
Ben Lubar fa574cfbec
allow dfhack-run to output colors.
refactor Console-posix to avoid having a parameter equivalent to not calling the function at all.
2020-03-06 15:02:03 -06:00
Ben Lubar 885fa541fd
update structures 2020-03-05 00:06:32 -06:00
Ben Lubar 84cae060b1
move find_union_tag from check-structures-sanity to DataDefs.h 2020-03-04 18:23:49 -06:00
Ben Lubar 08e1fe1f02
update structures 2020-03-03 22:42:40 -06:00
Ben Lubar 6d15d349bc
update structures 2020-03-03 21:45:13 -06:00
Ben Lubar 676e73d477
update structures 2020-03-02 23:59:55 -06:00
Ben Lubar e356925795
update structures 2020-03-02 23:12:03 -06:00
Ben Lubar 7784e569a5
update structures 2020-03-02 22:29:53 -06:00
Ben Lubar c29b606a4a
check-structures-sanity: suggest known structure types for large unknown pointers
update structures
2020-03-02 21:33:04 -06:00
Ben Lubar 66ded03bc1
update structures 2020-03-02 20:41:13 -06:00
Ben Lubar 4da0a761ea
update structures 2020-03-02 18:36:28 -06:00
Ben Lubar 269b3cb8eb
add support for finding vtable pointers to check-structures-sanity
update structures
2020-03-02 15:34:29 -06:00
Ben Lubar 0024457167
update structures
don't mark lua argument as a pointer (to be revisited at some point)
2020-03-02 02:27:15 -06:00
Ben Lubar 102fedc2ff
update structures 2020-03-01 00:20:31 -06:00
Ben Lubar dc5ef1fe58
update structures 2020-02-29 20:11:41 -06:00
Ben Lubar aaace29e11
update structures 2020-02-29 18:29:32 -06:00
Ben Lubar 18523a1821
Convert untagged unions to tagged. Fix some edge cases in check-structures-sanity union checking. 2020-02-29 15:08:39 -06:00
Ben Lubar 94e818fd53
reference union_identity in the df namespace 2020-02-29 13:26:42 -06:00
Ben Lubar 3ddbb5cec1
fix typo 2020-02-29 13:24:12 -06:00
Ben Lubar a30678cee3
subclass struct_identity for unions 2020-02-29 13:11:23 -06:00
lethosor 196f4d3c06 Update submodules 2020-02-27 18:54:30 -05:00
nicolasayala 141928ead0 Fix gui.FilteredList widget search on plain string choices 2020-02-27 07:56:30 +01:00
Ben Lubar 92eb8b058b
update scripts and structures 2020-02-26 12:10:15 -06:00
Ben Lubar e26787604a
update structures 2020-02-24 12:16:59 -06:00
Ben Lubar f6f5d54f9d
update structures 2020-02-24 10:20:32 -06:00
Ben Lubar 1f34c813c8
update structures 2020-02-24 10:13:46 -06:00
Ben Lubar 8a4eac3d3e
Merge pull request #1503 from TymurGubayev/dev/minor-improvement/dfhack-lua/printall_recurse
allow custom filter in calls to `dfhack.printall_recurse`
2020-02-24 10:05:28 -06:00
Ben Lubar 546178bc56
update structures 2020-02-24 03:03:58 -06:00
Ben Lubar e9564a28f5
allow tagged unions to not be union followed by tag 2020-02-23 21:33:32 -06:00
Timur Kelman 1d8998de22
allow custom filter in `dfhack.printall_recurse`
Objects with links like `job` output way too much. With this change, it's possible to provide an optional filter and exclude the `list_link`.
```
[lua]# j = dfhack.gui.getSelectedJob()
[lua]# printall_recurse(j, {[tostring(j.list_link)]=true, [tostring(j.pos)]=true})
```
2020-02-23 16:57:57 +01:00
Ben Lubar 1e3e3829a7
update structures 2020-02-22 23:36:14 -06:00
Ben Lubar 5580d375aa
add more diagnostics that will help in the identification of stl-string fields 2020-02-22 15:34:48 -06:00
Ben Lubar 0711b2569a
in -sizes mode, report sizes of unknown structures behind pointers.
update structures
2020-02-22 14:04:53 -06:00
Ben Lubar 57154e33c8
warn about misidentified generic pointers
update structures
2020-02-21 18:49:02 -06:00
Ben Lubar 53da38ca47
add additional pointer, string, and vector sanity checks
update structures and scripts
2020-02-21 17:31:31 -06:00
Ben Lubar f383f63eea
fix check-structures-sanity not catching certain types of invalid string on GCC builds.
update structures.
2020-02-21 17:31:31 -06:00
Ben Lubar 14eade3886
update structures 2020-02-21 02:52:56 -06:00
Ben Lubar eb35ff9b47
update structures 2020-02-21 02:31:37 -06:00
Ben Lubar f708bb5cff
update structures 2020-02-21 01:41:05 -06:00
Ben Lubar 38410544b0
handle tagged unions in check-structures-sanity
update structures
2020-02-20 22:17:25 -06:00
Ben Lubar 903f829e30
update structures 2020-02-20 20:19:50 -06:00
Ben Lubar 1beb0f417e
update structures 2020-02-20 17:44:24 -06:00
Ben Lubar f81587bd82
update structures 2020-02-18 21:05:54 -06:00
Ben Lubar 0d36e62d81
fix some weird uses of the part of speech enum 2020-02-18 16:39:39 -06:00
Ben Lubar c43c9de477
update structures 2020-02-18 16:33:24 -06:00
Ben Lubar fce52866c7
update structures 2020-02-17 22:43:12 -06:00
Ben Lubar 91771f9c64
update structures 2020-02-17 22:02:25 -06:00
lethosor 28bf6667cb Update xml 2020-02-16 21:22:31 -05:00
Ben Lubar a703e2b2fc
update structures 2020-02-16 19:02:36 -06:00
Ben Lubar b033a215bd
update for Dwarf Fortress 0.47.03 2020-02-16 18:48:27 -06:00
Ben Lubar 4e42da9e4f
update structures 2020-02-16 10:36:06 -06:00
Ben Lubar 631b8e772c
update structures; fix -lowmem being enabled due to being uninitialized on the stack. 2020-02-15 16:10:54 -06:00
Ben Lubar 122169a559
update scripts and structures
fix a crash if check-structures-sanity was called with a lua expression that evaluated to nil
2020-02-15 12:04:00 -06:00
Ben Lubar bc5b0a6dd0
update structures 2020-02-15 02:58:00 -06:00
Ben Lubar 99ccc55d65
update structures 2020-02-15 01:23:26 -06:00
Clément Vuchener c2584d615c
Define MapExtras::BiomeInfo::MAX_LAYERS (#1496)
Definition is required even for constexpr variables in some compilation
setups (e.g. debug builds).
2020-02-15 01:22:58 -06:00
Ben Lubar 9caf6e97e6
add -enums, -sizes, and specific starting point flags to check-structures-sanity 2020-02-14 19:47:26 -06:00
Ben Lubar f7f7bd7ca7
update structures 2020-02-13 21:23:42 -06:00
Ben Lubar 69c4f5c972
update structures 2020-02-13 02:12:26 -06:00
Ben Lubar 8fe950f815
update structures
sizecheck no longer segfaults on the medium world
2020-02-13 00:52:00 -06:00
Ben Lubar 3996189f9f
update structures and scripts 2020-02-12 23:52:58 -06:00
Ben Lubar e9a295c788
update structures 2020-02-12 19:00:18 -06:00
Ben Lubar b754192f2d
update structures 2020-02-12 16:18:05 -06:00
Ben Lubar ddc3cfcfbc
update structures 2020-02-12 13:34:04 -06:00
Ben Lubar 7bb921be19
update structures 2020-02-12 11:35:58 -06:00
Ben Lubar 3c9f6f79ab
fix some warnings 2020-02-10 19:35:17 -06:00
Ben Lubar 7b9ea1f1b6
update structures 2020-02-10 18:23:57 -06:00
Ben Lubar 69611ab325
exit if a fatal startup error is encountered while in headless mode (#1491) 2020-02-09 18:05:09 -06:00
Ben Lubar 5b56125ad6
update structures 2020-02-08 23:02:25 -06:00
Ben Lubar b375586b67
Update to DF 0.47.02 2020-02-07 16:00:53 -06:00
Ben Lubar 0243e422e5
Allow plugins to define subclasses of dfhack_viewscreen that have their own virtual_identity. 2020-02-07 16:00:14 -06:00
Ben Lubar 5db7d518ee
update structures; fix some minor compile warnings 2020-02-05 12:35:43 -06:00
Ben Lubar 321d948f8d
Fix crash on missing symbols.
Fixes #1487.
2020-02-03 20:21:10 -06:00
Ben Lubar 9c52b4e5e6
update structures 2020-02-02 17:31:01 -06:00
Ben Lubar dfc90fe660
Update df-structures and scripts. 2020-02-02 17:10:11 -06:00
Ben Lubar 62e3802d26
Update to DF 0.47.01 2020-01-29 14:51:48 -06:00
PatrikLundell 121497a466 Propagated getBookTitle to Lua 2020-01-26 11:47:47 +01:00
PatrikLundell 876ac6c056 Renamed to getBookTitle, cut down on virtual_cast 2020-01-25 21:46:10 +01:00
PatrikLundell c6bbf39c6c Issue #1262. Added Items::getTitle and used in stocks 2020-01-25 12:43:02 +01:00
lethosor 815821eb93 Merge branch 'develop' into cmake-cleanup
Conflicts:
	depends/lua/CMakeLists.txt
	plugins/CMakeLists.txt
	plugins/devel/CMakeLists.txt
2020-01-18 22:28:43 -05:00
lethosor bb9bc4e353 Update submodules 2020-01-18 18:52:32 -05:00
Ben Lubar 96d8dffd32
Make dfhack.run_command return the command_result value.
Rename local variables to match dfhack.run_command_silent for clarity.
2020-01-14 17:53:52 -06:00
lethosor 47fa9e1159 Update authors, submodules 2020-01-13 23:35:31 -05:00
lethosor 5eca50476e Merge remote-tracking branch 'nornagon/unit-description' into develop 2020-01-13 23:31:23 -05:00
Ben Lubar be5dc2d4a4
Make Units::isGay act consistently when called on an asexual unit.
The function appears to be used to determine whether heterosexual relationships are possible, so asexual units will always return true for isGay.

Old behavior was to treat asexual units as male.
2020-01-09 14:48:30 -06:00
Jeremy Apthorp 5de368a1ed unit_{=> get_}physical_description 2020-01-04 22:17:03 +11:00
Jeremy Apthorp 7644dde9e4
default to empty description if symbol unavailable 2019-12-14 12:01:13 -08:00
Jeremy Apthorp 50e696acf6 getDescription => getPhysicalDescription 2019-12-14 09:36:47 -08:00
Jeremy Apthorp 7fce6fe0b0 move THISCALL define to header, clean up code a little 2019-12-13 23:54:27 -08:00
Jeremy Apthorp dfab521a71
specify __thiscall
According to https://docs.microsoft.com/en-us/cpp/cpp/thiscall?view=vs-2019, "on ARM and x64 machines, __thiscall is accepted and ignored by the compiler.". So it should be OK to specify this for all win32
2019-12-12 17:51:41 -08:00
Jeremy Apthorp 9a37849603 use symbols.xml 2019-12-07 22:41:55 -08:00
Jeremy Apthorp 910f965838 wip 2019-12-07 22:17:59 -08:00
lethosor 49563b4618 Merge remote-tracking branch 'warmist/FilteredListFix' into develop 2019-11-02 16:28:06 -04:00
lethosor 08aeb6faeb Fix EventManager building ID type
The pointer to the building ID was sometimes not dereferenced properly.
Addressed by switching to an ID cast to a pointer type for consistency with
other types of events.

Fixes #1434
Ref #1003 (19695b4ee7)
Broken in #1253 (a7dfacd1c5)
2019-10-05 20:26:31 -04:00
lethosor 7d5970303f Update xml (dfhack/df-structures#286) 2019-10-04 00:14:08 -04:00
lethosor ca7d0f1cac Add algorithm include for MSVC 2019-10-03 23:26:57 -04:00
lethosor f3658db85f Merge branch 'develop' into avoid_rebuilding_df_statics_if_core_h_changes 2019-10-03 23:23:36 -04:00
Warmist a2b5c1ddd9
lua/widgets filtered list input fix
FilteredList was not consuming input events.
2019-09-30 22:00:06 +03:00
lethosor ac5a54c8db Merge branch 'develop' into cmake-cleanup
Conflicts:
	library/CMakeLists.txt
	plugins/CMakeLists.txt
2019-08-23 23:58:00 -04:00
Alan 0f4162acc9
Merge pull request #1402 from BenLubar/persist
Add Persistence module.
2019-08-23 23:37:06 -04:00
lethosor 222b88063c Update submodules 2019-08-23 21:37:50 -04:00
lethosor 2ef46562c8 Avoid calling doSaveData twice when unloading a world
This was happening because of a switch to viewscreen_game_cleanerst and back to
viewscreen_savegamest when saving
2019-08-23 20:45:35 -04:00
lethosor 100e584c34 Fix saving persistent data on regular save 2019-08-23 20:30:06 -04:00
lethosor 07575095fd Merge branch 'develop' into persist 2019-08-22 22:00:50 -04:00
lethosor 88757d5c27 Merge branch 'develop' into cmake-cleanup 2019-07-20 19:22:33 -04:00
lethosor 99038c395a Merge remote-tracking branch 'ab9rf/biometype' into develop 2019-07-20 16:32:46 -04:00
lethosor 8a07426643 Merge branch 'develop' into cmake-cleanup 2019-07-20 15:15:39 -04:00
Pauli 49f3de979f Make ServerMain and ServerConnection data race free
RemoteServer and PluginManager side would need complete redesign to be
data race free and concurrent. But as that would be unlikely to be
required from DFHack I decided simpler solution that is fixing data
ownership to a thread and all ServerConnection share a single lock which
allows access to PluginManager and Core.
2019-07-18 23:05:11 -04:00
Pauli 0605b9601c Make Core::started thread safe 2019-07-18 23:05:11 -04:00
Pauli 0ed5c8db39 Fix data race between threaded init and EventManager
The initial run_dfhack_init loads shared state information that is used
by EventManager when state changes. There is a small risk that
EventManager can handle events while run_dfhack_init is still running.
2019-07-18 23:04:40 -04:00
lethosor 76da2c2aaf Clean up CMakeLists.txt style 2019-07-16 22:19:11 -04:00
lethosor b60faa8021 dfhack-run: add note about installation when called with no arguments 2019-07-13 15:51:46 -04:00
lethosor c125926727 Update submodules and Authors.rst
Ref #1432
Ref dfhack/stonesense#54
Ref dfhack/scripts#93
2019-07-10 19:21:23 -04:00
lethosor 5b11d14c6c Rename save/load to "save data"/"load data" 2019-05-29 19:52:03 -04:00
lethosor ceebef5fe2 Merge branch 'develop' into persist 2019-05-28 21:08:16 -04:00
lethosor dd9c433f17 Use BYPRODUCTS to keep ninja builds from re-running codegen every time
This partially reverts f02466de8a, but behavior
should be the same under MSVC, which that commit attempted to fix. From
https://cmake.org/cmake/help/v3.14/command/add_custom_command.html:

> The `BYPRODUCTS` option is ignored on non-Ninja generators except to mark
> byproducts `GENERATED`.

Since `$GENERATED_HDRS` are already marked generated, this change should have
no effect on non-Ninja generators.
2019-05-13 19:47:39 -04:00
lethosor 32a0ab9679 Update submodules 2019-05-11 23:34:59 -04:00
lethosor e5eade1ad7 Make gui.dwarfmode.{get_movement_delta,get_hotkey_target} public 2019-04-30 16:53:09 -04:00
lethosor 6c266075de Console-posix: fix crash with prompts longer than screen width
Also add an extra fallback check around substr

Fixes #1425
2019-01-15 21:06:49 -05:00
Pauli f0632347d0 Remove Core.h include from DataDefs.h
Core.h isn't required for DataDefs.h which removes Core.h dependency
from DataStatics*.
2018-12-30 17:08:42 -05:00
lethosor e74946f62e Update xml and related changelog entries 2018-12-27 17:37:13 -05:00
lethosor a2f8742128 Merge remote-tracking branch 'suokko/runtime_debug_prints' into develop
Also fix and reorganize changelog
2018-12-27 16:28:25 -05:00
lethosor 13c6bfc1b2 Merge remote-tracking branch 'sgayda2/memory_fixes' into develop 2018-12-22 11:54:31 -05:00
lethosor b913076451 Update xml, stonesense, changelog
Merged DFHack/df-structures#296 and (modified) attached changelog
entry
2018-11-24 17:09:24 -05:00
lethosor 368f8d0504 Remove and replace checks for OnBreak 2018-11-24 14:52:26 -05:00
Kelly Kinkade 02f047e9f1 a pox on whitespace 2018-09-11 18:41:32 -05:00
Kelly Kinkade 3817773b5a eliminate stray whitespace 2018-09-11 17:32:33 -05:00
Ben Lubar 10267f3e70
Only save on the first frame of the save screen. 2018-08-26 19:11:41 -05:00
Ben Lubar a672ffcb95
Use viewscreen_savegamest instead of viewscreen_optionst 2018-08-26 19:05:44 -05:00
Ben Lubar 4e690df96a
Add Persistence module.
Alter World to use Persistence instead of storing data in historical figures.

Fake historical figures will be converted to the new format when a world is loaded.

Added plugin_save and plugin_load functions to the plugin API.

Made the weird int7/int28 code that was in the old persistence API slightly safer.
2018-08-26 18:27:58 -05:00
Kelly Kinkade 338572d270 resolve uninitialized variable warning 2018-08-16 12:15:56 -05:00
Kelly Kinkade 59d70d6687 Add function to infer biome type to Maps module
This moves code intended to infer biome type currently living in a
couple of plugins into the Maps module, so that this code can be shared
more easily by multiple plugins, as discussed in #1392.
2018-08-15 20:28:18 -05:00
lethosor e56cb2a25a Update xml (setup_character_info.skill_points_remaining) 2018-08-04 00:59:15 -04:00
Lethosor 9bd5ecd738
Merge pull request #1372 from BenLubar/dfhack-viewscreen-identity
Add an identity to dfhack_viewscreen and dfhack_lua_viewscreen.
2018-07-26 16:06:24 -04:00
Ben Lubar 4837e65322
Add an identity to dfhack_viewscreen and dfhack_lua_viewscreen. 2018-07-22 17:31:39 -05:00
lethosor c53353fc28 Update changelog, xml 2018-07-20 23:29:24 -04:00
lethosor 163c9b4059 Add utils.OrderedTable, make test order consistent
Also added OrderedTable tests and comment support to expect.*()
2018-07-19 12:40:25 -04:00
lethosor 063602349c Add a basic test library and a couple GUI module tests (squashed)
Also modified Core/Console a bit to get this to actually produce output on
Travis (DFHACK_DISABLE_CONSOLE now allows console output, just not input)

Squashed merge from lethosor/tests
2018-07-18 14:29:13 -04:00
lethosor 3b44c18576 Followups for #1325
- Fix git tag detection
- Fix changelog entry position
- Update/clean up docs some
2018-07-17 00:58:49 -04:00
lethosor 1d6c3dc871 Merge remote-tracking branch 'suokko/fix_cmake_dependencies_to_generated_headers' into develop 2018-07-17 00:24:18 -04:00
Stoyan Gaydarov 38cccdb0f4 Update the module create calls to return unique_ptrs 2018-07-14 19:55:25 -07:00
Stoyan Gaydarov 6f90273bb6 More usage of smart pointers throughout core and version info. 2018-07-14 19:55:25 -07:00
Stoyan Gaydarov 699f864110 use dts::make_unique instead of new 2018-07-14 19:51:46 -07:00
Stoyan Gaydarov 6cfd987c0d Remove an outdated comment, with c++11 enabled the code is thread safe 2018-07-14 19:51:46 -07:00
Stoyan Gaydarov 12c8046f90 Some memory management changes for Core 2018-07-14 19:51:46 -07:00
Stoyan Gaydarov b5ddde8475 Use a shared_ptr to avoid having to manage VersionInfo vector memory 2018-07-14 19:51:46 -07:00
Stoyan Gaydarov c127ceab96 Use a unique_ptr for VersionInfo to avoid worrying about memory 2018-07-14 19:51:46 -07:00
lethosor 790d16cc1c Merge remote-tracking branch 'sgayda2/call_once' into develop 2018-07-14 21:08:15 -04:00
Stoyan Gaydarov 99d05117ab fix a return statement in FirstCall 2018-07-14 12:15:52 -07:00
lethosor c2a64b3573 Update changelog, xml, bump to r1 2018-07-13 21:16:35 -04:00
lethosor f85b2c2b3c Merge branch 'develop' of gh:dfhack/dfhack into develop 2018-07-13 20:00:52 -04:00
lethosor 78f2431c93 Update xml 2018-07-13 19:59:46 -04:00
Ben Lubar b44789285c
Fix Windows df-structures stubs failing to compile if the option to keep symbols is specified. 2018-07-13 15:49:37 -05:00
Pauli f02466de8a Correct codegen.pl output dependecies for VC
The change allows correct and optimized incremental builds with VC and
ninja but unix makefile backend will rebuild everything if anything
changes in structures.
2018-07-13 17:01:36 +03:00
Pauli bc8b8ef256 Use configure_file to optimize incremental builds for git-describe.h 2018-07-13 16:07:46 +03:00
Pauli c92b52537c Only run once codegen.pl and git-describe.cmake with make
ninja has a single build file which avoided issues if multiple targets
depend on same files. But Unix Makefiles generator user recursive make
which requires each ADD_CUSTOM_COMMAND to have only one target depending
on them.

Then makefile generator also has stupid rule that it touches all
secundary output files if primary file has been updated.

It was surprising hard to find a version that actually works correctly
for both issues. Solution is using BYPRODUCTS and refactoring command
and target dependencies.

As a bonus this change now allows build to work from source tarball if
the tarball includes git-describe.h.
2018-07-13 15:23:54 +03:00
Pauli fad9d58ac6 Keep git-describe.h in source tree
Temporary file goes to binary directory to avoid race between
simultanous builts.
2018-07-13 15:16:04 +03:00
Pauli 68d1dfa0da Keep make output short
Without custom comment add_custom_command would list all target files.
2018-07-13 15:15:42 +03:00
Pauli 3f34ea196b Fix build not to delete git-describe.h
make doesn't keep primary output file if secundary is missing.
always_rebuild must be primary output to make the phony command work
correctly.
2018-07-13 15:15:42 +03:00
Pauli 2956e654d4 Add dependency from codegen.pl to df/*.h 2018-07-13 15:15:42 +03:00
Pauli 5154370402 Add full paths to codegen.pl error messages
I noticed that relative paths were not correctly guessed by vim. I
decided to fix the paths to allow me quickly to jump to error line in
xml.
2018-07-13 15:15:42 +03:00
Pauli b3b23e8278 Add dependency from git-describe.h to DFHackVersion.cpp
Using add_custom_command allows cmake to track dependency from command
to git-describe.h that is implicit dependency of DFHackVersion.cpp.

The change also fixes issues if there is multiple build directories and
git-describe.h missing but git-dsecribe.h.tmp is present.
2018-07-13 15:15:39 +03:00
lethosor 9ee368d456 Merge remote-tracking branch 'suokko/MapCache_reduce_latency_from_designation_to_jobs' into develop 2018-07-11 11:51:24 -04:00
lethosor 7afa3690bf Add support for DFHACK_BUILD_ID
Used for BuildMaster builds, for example
2018-07-11 11:47:55 -04:00
lethosor 2d8be8f4ad Update xml (dlsym vtables, dfhack/df-structures#282) 2018-07-10 13:01:54 -04:00
lethosor fa8c6724f6 Merge remote-tracking branch 'suokko/dlsym_libgraphics' into develop 2018-07-10 12:25:11 -04:00
lethosor dd3c04eb26 Merge remote-tracking branch 'suokko/windows_crash_after_die' into develop 2018-07-10 11:57:10 -04:00
lethosor 06511340ab Merge remote-tracking branch 'BenLubar/proto-docs' into develop 2018-07-10 11:26:31 -04:00
Pauli 7d92d3f48f Fix the class vs struct warning 2018-07-10 18:24:34 +03:00
Pauli 5eea7198a9 Make Core::~Core safe to call after die
Fixes #1356
2018-07-10 18:24:34 +03:00
lethosor 4a842810d5 Update xml, changelog 2018-07-10 11:24:26 -04:00
Pauli ce6af3d649 Use c++ standard std::_Exit instead of _exit
_exit seems to run dll unloading code which calls static destructors.
Standrd requires std::_Exit not to call destructors which makes using it
attractive in case MSVC actually follows the standard.
2018-07-10 18:21:09 +03:00
Pauli 96c9b8b864 Add windows emulation for RTLD_DEFAULT
I'm not sure if calling GetModuleHandle in static construction is safe.
But I assumme it is and works correctly.

There is still potential issue that documentation can be understood
meaning that the HMODULE will resolve only symbols from exe while
RTLD_DEFAULT resolves all global symbols.
2018-07-10 17:10:30 +03:00
Pauli ca5c11603f Support dlsym loading from libgraphics vtables 2018-07-10 17:08:23 +03:00
lethosor 2dac3c53c7 Add stress cutoffs to Units module, fix dwarfmonitor/manipulator
Fixes #1292
2018-07-09 15:59:12 -04:00
lethosor 46e53fc3b3 Make df2console only call df2utf if the output stream is a console
Fixes output in command-prompt, for example
2018-07-09 11:00:28 -04:00
lethosor 7fcc6be6f6 Update xml, changelog 2018-07-09 10:46:19 -04:00
Pauli ab179bbf42 Fix crash when editing lines that are exactly console width
plen+cooked_cursor==cols => begin = -1 which is passed to substr. The
sign is incorrect as code should be removing a character from begin
instead of trying to add a character.
2018-07-09 16:12:39 +03:00
Stoyan Gaydarov e96c6f07ce fixes from comments 2018-07-08 15:53:26 -07:00
Stoyan Gaydarov 68770ecbf2 Use std::call_once to ensure thread safety and a single call to initialize the SDL pointers 2018-07-08 12:52:06 -07:00
lethosor 5d16e5a74c Bump to 0.44.12-alpha1 2018-07-08 14:26:57 -04:00
lethosor 480907259c Rename ui_sidebar_menus.command_line field
Ref dfhack/df-structures#277
2018-07-07 23:51:20 -04:00
lethosor 03b01048d7 Merge remote-tracking branch 'BenLubar/linked-list' into develop 2018-07-07 23:49:53 -04:00
lethosor 037e7e4901 Merge remote-tracking branch 'suokko/spotclean_ui_state_fix_1194' into develop
Moved/adjusted changelog entry
2018-07-07 18:08:53 -04:00
Pauli dec61b89be Fix windows ReadConsoleInput return value check
I messed up the check. I forgot that windows commonly has opposite
return values to posix and failed to check it from documentation.

Fixes 1345
2018-07-08 00:50:43 +03:00
lethosor aa76b92662 Merge remote-tracking branch 'suokko/main_thread_ownership_for_df_ai' into develop 2018-07-06 16:37:06 -04:00
lethosor c006df561e Merge remote-tracking branch 'suokko/lua_printall_recurse' into develop 2018-07-06 14:25:35 -04:00
lethosor be9affc8fb Update xml, changelog 2018-07-06 14:22:46 -04:00
lethosor dc6fd8d35c Merge remote-tracking branch 'suokko/stl_printf_remove_extra_null' into develop 2018-07-06 11:09:39 -04:00
lethosor 54cf8b7dc3 Fix getVisibleName for units with identities
As of 0.44.11 (possibly 0.44.01), identity names take precedence over the
associated histfig names. Tested with:

https://drive.google.com/file/d/1bX5CQMqNsb_mjJOEOS4wBm4mGDLLs_cZ/view (#1279)
http://dffd.bay12games.com/file.php?id=13428 (from http://www.bay12games.com/dwarves/mantisbt/view.php?id=10530)

Fixes #1279
2018-07-06 11:06:04 -04:00
Ben Lubar 3b6a0738a0
Add check-rpc.py for Travis. 2018-07-04 15:32:06 -05:00
Pauli d1a3f1a738 Allow canceling lineedit with ctrl+c 2018-07-04 15:21:25 +03:00
Pauli a550e112c3 Allow temporary transfer of main logic thread ownership
Dependency to fix df-ai to work with the new CoreSuspender
2018-07-04 00:02:03 +03:00
Ben Lubar dabe04cbf1
Rename bind argument proto -> plugin to avoid confusion. 2018-07-03 16:00:48 -05:00
Pauli 320e94a1eb Avoid locking CoreSuspender second time in main thread 2018-07-04 00:00:06 +03:00
Ben Lubar 6839fde555
Remove execute permission on files that are not executables. 2018-07-03 15:37:16 -05:00
Pauli 8a3a05de24 Allow unloading plugins that use std::regex 2018-07-03 15:23:46 +03:00
Pauli ee999ccbdf Implement runtime debug print filtering
The runtime debug print filtering support dynamic debug print selection.
Tis patch only implements basic core support for filtering. The commands
to change the runtime filtering settings will be added in a following
patch.

But even with only this one can change filtering settings by editing
memory using a debugger. It can even be automated by using gdb break
point commands.
2018-07-03 15:23:46 +03:00
lethosor 616675f0ce Merge remote-tracking branch 'suokko/kittens_data_race_fix' into develop 2018-07-03 00:30:36 -04:00
lethosor c449041c11 Merge remote-tracking branch 'suokko/lua_List_setChoices_internal_table_1171' into develop 2018-07-03 00:27:22 -04:00
lethosor c543a17250 Improve RPC port handling
- Use port from remote-server.json in dfhack-run
- Make DFHACK_RUN environment variable take priority over remote-server.json
- Log current port to stderr
2018-07-02 23:53:56 -04:00
lethosor 81a7ddcf92 Merge remote-tracking branch 'suokko/screen_show_memory_leak' into develop 2018-07-02 22:58:11 -04:00
lethosor f0ff96f614 Merge remote-tracking branch 'suokko/multibyte_console' into develop 2018-07-02 10:55:03 -04:00
Ben Lubar b5eb541fd3
Handle pointers back to the list link. 2018-06-30 23:04:27 -05:00
Ben Lubar 1606483e7e
perf improvement for DfLinkedList::end(), erase/insert/insert_after/push_front implementations 2018-06-30 23:04:26 -05:00
Ben Lubar 0b9d46712f
Run DfLinkedList::end's computations only when needed. 2018-06-30 23:04:26 -05:00
Ben Lubar 31d22967f8
Linked list 2018-06-30 23:04:26 -05:00
Pauli ba1d3fcb6a Add dfhack.printall_recurse to quickly print df containers
I often want to see multiple items quickly when trying to figure out
what states actually matter to an issue that I debug. I decided to make
it easier to quickly dump df structures with substructures and
containers. It will generate large amount of data which can be sometimes
slow to process manually. But processing can be automated using
dfhack-run lua ^<df data to inspect> and pipe to other tools (eg grep,
sed, perl, sort, uniq etc)
2018-06-30 22:31:49 +03:00
Pauli 645ec0d591 Improve kittens thread safety and shutdown with core
The bools could use acquire&release memory order or even relaxed but I
didn't think code was worth auditing for such low level optimizations.
Sequantial consistent is fast enough but much harder to use incorrectly.

The timeLast is protected by CoreSuspender lock. plugin_update is only
called when CoreSuspender lock is held.

The last_menu is protected by trackmenu_flg loads and stores.
2018-06-30 21:53:12 +03:00
Pauli 0727403ac1 Fix devel plugins linking in linux 2018-06-30 21:12:42 +03:00
Pauli 7a2245c2fa Remove null byte from string length
I noticed an extra null when trying to grep dfhack.run ls output.

std::string manages null byte at end(). Pre C++11 didn't require null
termination for std::string but C++11 add the null termination to make
c_str() and data() truely const. It is undefined behavior to modify the
internal null termination but this modification sets the null to null.
2018-06-30 12:51:38 +03:00
lethosor 1a4440859c Update xml (viewscreen_civlistst) 2018-06-29 22:33:15 -04:00
lethosor 105ddd86d8 Merge remote-tracking branch 'suokko/jsoncpp_upgrade_to_submodule' into develop 2018-06-29 22:33:00 -04:00
Pauli c39a882b57 Add missing Unit::isDiplomat
Fixes #1324
2018-06-29 16:19:18 +03:00
lethosor 3c2bfb6f47 Bump to 0.44.11-alpha1, update changelog, xml 2018-06-28 13:31:56 -04:00
lethosor f9dfb5907b Update submodules, authors 2018-06-27 13:57:34 -04:00
lethosor 19627b9221 Bump to 0.44.11 2018-06-24 17:42:31 -04:00
Pauli 20bd03ab6d Reset dsgn_check_cooldown in Block::write
To make sure that DF generates jobjs from desgination as soon as
possible the dsgn_check_cooldown should be reset when designations
change.
2018-06-24 17:06:32 +03:00
Pauli 123de7fdf7 Use constexpr to prevent attempts of linking static variable 2018-06-24 17:06:32 +03:00
Pauli f6b0ac7819 Refactor CoreSuspender to fix Console::lineedit exit hangs
The old CoreSuspender requires processing from Core::Update to allow
commands execute. But that causes issues if Core::Shutdown wants
quarentee cleanup order with std:🧵:join. Fixing shutdown ordering
adds too many branches to already fairly complex code.

I decided to try to refactor CoreSuspender to use simpler locking
locking using a std::recusive_muted as primary synchronization
primitive.
To help control when Core::Update unlocks the primary mutex there is
std::contition_variable_any and std::atomic<size_t> queue lenght
counter.
The last state variable is std::atomic<std:🧵:id> that is used to
keep track of owner thread for Core::IsSuspended query.

This should be merged only just after a release to make sure that it
gets maximum testing in develop branch before next release.

Fixes #1066
2018-06-22 17:57:37 +03:00
Pauli 0bc1db4f07 Make sure hotkeythread exits before cleanup 2018-06-22 17:57:37 +03:00
Pauli 1fc37f8ddc Checke Console::lineedit error return values
Console::lineedit can return -1 to indicate input error and -2 to
indicate the program is closing. But most users don't check possible
unusual return values which can lead to exit hang.
2018-06-22 17:57:37 +03:00
Pauli 84f8a75a2e Add cuchar fallback implementation for gcc 4 and 5 2018-06-22 17:57:37 +03:00
Pauli 820b787cd0 Add multibyte character handling to posix console
I noticed that multibyte characters can mess up the console state
variables. I decided to add a minimal multibyte support to make sure the
input only collects complete valid multibyte characters in case user
enters them to console.

This change assumes that UTF-32 has one to one mapping between printed
characters and char32 indexes. But I remember reading there is a few
rare corner cases with accents where character might require multiple
4byte characters too. But this patch at least changes correct handling
from about 100 characters to 99% of unicode characters.
2018-06-22 17:57:37 +03:00
Pauli 1acb60daa2 Prevent data races during console/init thread shutdown
There is a minor chance that console or init thread would access already
freed memory when core is shutting down and cleaning up state. To avoid
any danger of having random bugs caused by the potential data race I
decided to make sure the shutdown code waits for the thread to exit
first.

Windows change is completely untested. It is purely based on msdn
documentation.
2018-06-22 17:57:37 +03:00
Pauli 19a169ba65 Convert Core.cpp to use c++11 thread
I noticed that tthread is missing some c++11 features that make thread
handling code a bit easier. To be able to use those features I decided
to convert Core.cpp to use equivalent standard classes.

This patch has no functional changes.
2018-06-22 17:57:37 +03:00
Pauli b7871c7368 Console-posix: Use lowest possible nfds parameter to the select call 2018-06-22 17:57:37 +03:00
lethosor 854f467f56 Merge remote-tracking branch 'suokko/check_jobs_on_mapcache_commit_1229' into develop 2018-06-21 15:03:51 -04:00
lethosor 7a5e7c7c86 Rename unit_flags1.dead to killed, update submodules/changelog
Follow-up for dfhack/df-structures#247
2018-06-21 11:17:09 -04:00
lethosor 1deb6ab024 Update xml 2018-06-20 16:19:00 -04:00
lethosor 7fda8506f0 Merge remote-tracking branch 'suokko/cmake_option_to_enable_all_symbols' into develop 2018-06-20 16:16:03 -04:00
Pauli 9b6781f0f2 Temporary lower command-prompt when executing the command
command-prompt viewscreen may affect command execution if they are
looking for UI state. To make commands execute simillary to hotkeys or
console commands the viewscreen needs to removed from the top position.

Fixes #1194
2018-06-20 21:51:45 +03:00
lethosor 6077a8ce4c Merge remote-tracking branch 'suokko/printf_warnings' into develop 2018-06-20 11:25:14 -04:00
lethosor 2f1d3c68c6 Merge remote-tracking branch 'suokko/stl_vsnprintf' into develop 2018-06-20 11:23:57 -04:00
lethosor b9df6fae85 Update xml, authors 2018-06-20 10:51:24 -04:00
Pauli 98b25e3462 Allow calling List:setChoices() to clear choices 2018-06-20 17:46:24 +03:00
Pauli ed23d2c4e2 Change gui.widgets.List:setChoices to keep state in internal table
Fixes #1171
2018-06-20 17:23:57 +03:00
Pauli 9c59b7ff48 Fix unlikely memory leaks if Screen::show fails
The Screen::show takes ownership of the screen pointer. I decided to
switch the parameter to std::unique_ptr to make the pointer ownership
explicit. The unique_ptr then provides automatic screen destruction in
Screen::show unless pointer is inserted or is already in the linked list
that is managed by df.
2018-06-19 16:41:31 +03:00
Pauli 87e7c0f7aa Add cmake configuration to select if stubs include symbols
G++ generates structure debug symbols for a few df namespace classes to
generated stub source files. I decided to test how much symbols from
those files would increase binary size. When the result was about double
size I decided to add cmake configuration option to let user easily
select if they prefer complete symbols or reduced size.
2018-06-19 16:16:38 +03:00
Pauli bcf9387ce9 Only remove jobs that were created from a designation 2018-06-18 19:57:00 +03:00
Pauli 1b5ec7ce69 Update jobs when committing MapCache changes
The map_block->designation.{dig,smooth} are reset to zeros when a job
posting is created for the designation. The job is then used to override
the designation state in the map_block. To make the new designation set
propogate to jobs the job structure would require updating. The update
would be possible a complex operation. The simple alternative is to
remove the job and let df create a new job in the next tick.

Fixes #1229
2018-06-18 16:34:09 +03:00
Pauli 6a151353e3 Use automatic return type for index_tile 2018-06-18 16:23:57 +03:00
Pauli 0bc2b3ab1b Update toSimpleString to use a the new builder API 2018-06-14 21:20:54 +03:00
Pauli 2b79b4cce7 Use jsoncpp 1.8.4 as a submodule
This makes jsoncpp a submodule that can be build directly from git
sources. This changes depends/jsoncpp to depends/jsoncpp-sub to avoid
filename conflict if someone tries to use git bisect.

jsoncpp library name changes to jsoncpp_lib_static.

jsoncpp version is the latest tagged release.
2018-06-14 21:20:46 +03:00
lethosor aac892c560 Adapted to changed Units functions
Squashed version of #1307

Closes #1307
2018-06-14 10:30:35 -04:00
Pauli 4cfdd7d92e Check if second vsnprintf does something unexpected 2018-06-13 23:33:13 +03:00
lethosor 10e6016989 Merge branch 'units_dead' into develop
Closes #1297
2018-06-13 15:38:35 -04:00
PatrikLundell 51584c2d9e Corrected isGhost 2018-06-13 15:37:45 -04:00
PatrikLundell f329774059 dead & killed flag separation
squashed 4 commits from #1297
2018-06-13 15:37:45 -04:00
Pauli 8f2cf3ad26 Fix printf format warnings 2018-06-11 19:57:06 +03:00
Pauli 8484b5dc8a Add parameter type checks to printf style functions
gcc supports type checks for printf parameters which can catch some hard
to reproduce bugs. Possible bugs happen when the parameter value is
intepreted differently to the variable value.

Example warnings follow
../library/LuaWrapper.cpp:1011:86: warning: format ‘%llu’ expects argument
    of type ‘long long unsigned int’, but argument 3 has type ‘uint64_t
    {aka long unsigned int}’ [-Wformat=]
../plugins/follow.cpp:159:35: warning: format not a string literal and no
    format arguments [-Wformat-security]
2018-06-11 19:27:35 +03:00
Pauli 82e7b8300a Make stl_vsprintf return if there is an vsnprintf error
vsnprintf man page claims:
"If an output error is encountered, a negative value is returned."

That means we has to call vsnprintf twice at most to have whole output
written to a string. But in case of error we return an empty string.

The code also optimizes an expected common case of outputting single
line with a small stack allocated buffer. If the stack buffer is too
small then it uses std::string::resize to allocate exactly enough memory
and writes directly to std::string.

Second call could use vsprintf because memory is known to be large
enough. But I think that difference isn't detectable outside micro
benchmarks.
2018-06-10 16:23:31 +03:00
lethosor fe458d3ac1 Merge remote-tracking branch 'grubsteak/patch-2' into develop 2018-06-08 22:05:20 -04:00
lethosor 1fe6c3b880 Merge remote-tracking branch 'suokko/profiler' into develop
Closes #1296
2018-06-08 22:01:21 -04:00
Pauli e3df5cd765 Port profiler to lua 5.3 and dfhack
Changes include
* table.getn(obj) -> #obj
* Making sure string.rep gets an integer parameter
* Optimized profiling hooks (call profiler cost from factor 40 to 10)
* Specialized parameter name lookup code for c++ __index metamod calls
* Collect source lines in time sampling variant
* Simplified prevent to always filter all children
2018-06-06 19:18:18 +03:00
Daniel Silverstone 96ba5116f7 Add lua Pepperfish Profiler code
Pepperfish Profiler can produce time sampled profiles and call entry
exit profiles. Code is verbatim copy from the lua wiki [1]. This commit
won't work alone but it exists to give author credit correctly to
Daniel.

[1] http://lua-users.org/wiki/PepperfishProfiler

Authors:
Daniel Silverstone <dsilvers@pepperfish.net>
Tom Spilman <tom@sickheadgames.com>
Ben Wilhelm <zorba-pepperfish@pavlovian.net>
2018-06-06 17:27:40 +03:00
lethosor 03968db344 Fix GCC warnings in 'tweak kitchen-prefs-all' and dev plugins 2018-06-01 10:02:38 -04:00
lethosor 7a04fefb0b Remove Vermin module (unused and obsolete) 2018-06-01 00:22:10 -04:00
lethosor eb199d97b5 Prepend script name to qerror messages, if applicable
Resolves #1282
2018-05-20 09:30:46 -04:00
grubsteak 7e3c8c9965
added fast keys for workshop gui overlay 2018-05-19 20:25:24 -05:00
lethosor badc0e3a3d Update changelog, submodules for r1 2018-05-18 14:30:09 -04:00
Lethosor 9ca79d050d
Merge pull request #1259 from AtomicChicken/syndrome-util-updates
syndrome-util: added function to remove syndrome wound data
2018-05-18 14:10:14 -04:00
lethosor e44bca0fb4 Merge remote-tracking branch 'grubsteak/patch-1' into develop 2018-05-18 00:48:04 -04:00
grubsteak fe0049db8c
enable lua api construction functions
it seems this has been left out on accident?
2018-05-17 23:29:10 -05:00
lethosor 50a863a48e Fix Kitchen.h include (case-sensitive) 2018-05-17 20:11:46 -04:00
lethosor 17ba492992 Add some exclusion functions to Kitchen module, expose to Lua, fix build 2018-05-17 19:34:03 -04:00
lethosor 97a79893e7 Change Kitchen.{h,cpp} to title case 2018-05-17 11:08:13 -04:00
lethosor fcd8c9606e Fix some warnings on OS X 2018-05-12 18:46:58 -04:00
lethosor e9ec08f419 Add Buildings::getRoomDescription(), moved from search plugin, +cleanup 2018-05-12 17:00:21 -04:00
lethosor c15571caa0 Move isRouteVehicle, isSquadEquipment from workflow to Items module 2018-05-12 14:49:30 -04:00
lethosor a34b34d3cb Move a few item functions from autotrade/stocks into DFHack::Items 2018-05-12 12:04:46 -04:00
Dan Amlund 759df34fce fix potential segfault 2018-05-11 17:51:32 +02:00
lethosor ceaa518be9 Fix a potential segfault in getAnyUnit
See #1218
2018-05-11 10:04:10 -04:00
lethosor 10abece564 Fix duplicate condition in Gui::getAnyUnit() 2018-05-11 09:58:40 -04:00
lethosor 272cdcb2b5 Add function names to NullPointer and InvalidArgument exceptions 2018-05-11 09:49:27 -04:00
lethosor 2a52582c1f Add Gui::inRenameBuilding 2018-05-09 10:23:05 -04:00
lethosor 4fe55639be Update version/submodules to 0.44.10-alpha1 2018-05-07 00:25:21 -04:00
lethosor f4088dbd28 Update xml, scripts 2018-05-05 16:09:20 -04:00
lethosor b266c7322f Make fpause pause worldgen
Closes #1256
2018-05-05 16:08:06 -04:00
AtomicChicken c58ffdb922
Added function to remove syndrome wound data
The presence of syndrome data in unit.syndromes.active generates corresponding wound data in unit.body.wounds. This wound data acts to produce all of the syndrome's actual effects, including but not limited to flag changes, interaction abilities, body transformation and display name alterations. Wound data persists when syndrome data is cleared from unit.syndromes.active. Since syndrome-util did not touch wound data at all, the erase function was completely ineffective at actually removing syndromes.

Note that syndromes also generate a bunch of data in the historical figure information of units. I have observed that this historical data is sufficient to restore the syndrome in a unit following map reload (at least in adventure mode), so its clearance (which needs to also include any corresponding interaction effects) will have to be addressed in a future update. As is, syndrome erasure remains incomplete.
2018-04-20 17:14:03 +02:00
lethosor a708b0b303 Add some includes in DataDefs.h 2018-04-19 21:11:43 -04:00
lethosor 2bf9632000 Merge remote-tracking branch 'origin/develop' into complex-enum 2018-04-11 10:23:32 -04:00
lethosor b0e1ae93ea Add next_item, _complex for complex enums 2018-04-09 19:46:12 -04:00
lethosor 9398262654 Make enum attrs work for complex enums (lever_target_type) 2018-04-09 16:12:03 -04:00
lethosor 7da8793172 Set last_item_value properly for complex enums 2018-04-09 16:11:47 -04:00
lethosor c1dd21730d Fix complex enum ipairs for first element 2018-04-09 11:27:02 -04:00
lethosor 61539bf345 Lua: implement key lookup and ipairs for complex enums 2018-04-09 11:04:37 -04:00
lethosor ae6b8a16e8 Handle most complex enum metadata on the C++ side 2018-04-09 03:00:58 -04:00
Ben Lubar 51661d7355
Fix -Wswitch warning about UNDERWORLD_GATE in MapCache. 2018-04-05 16:50:04 -05:00
Ben Lubar 565c1e1260
Fix uninitialized pointer being returned from Gui::getAnyUnit when on the pet list with no selection. 2018-04-05 16:49:30 -05:00
Ben Lubar 0a2ec30199
Remove or comment out unused code. 2018-04-05 16:48:11 -05:00
Ben Lubar 2eec5ee78d
Fix signed/unsigned comparison warnings in core. 2018-04-05 16:47:47 -05:00
Ben Lubar 304e1d45f0
Remove unused labels in Console-posix.cpp 2018-04-05 16:46:59 -05:00
Ben Lubar ec5d238e5e
Remove warnings in generated code for core protobufs. 2018-04-05 16:46:04 -05:00
Ben Lubar a44b3b8f98
Move null pointer check from Job module to LuaApi, where it does not invoke undefined behavior. 2018-04-05 16:01:26 -05:00
Ben Lubar a3d4c586ab
Hide "complex enum" warning for dfhack-specific enums. 2018-04-05 14:48:29 -05:00
Ben Lubar 9cbba0ae01
Hide warnings about non-virtual destructors from df-structures. 2018-04-05 14:46:28 -05:00
lethosor c8089db5df Install the correct libstdc++ 2018-04-04 20:01:27 -04:00
lethosor 5081710900 Merge remote-tracking branch 'ThiagoLira/develop' into develop
Also fixed whitespace from #1251

Closes #1186
2018-04-04 17:13:07 -04:00
ThiagoLira b7bd88352e fixed bug causing gui scripts to fail when sidebar is closed 2018-04-04 17:42:46 -03:00
lethosor 1ac896a874 Stop generate_headers from depending on symbols.xml
Changes to just symbols.xml will no longer cause codegen.pl to be re-run
2018-04-04 11:52:18 -04:00
lethosor 8f3701752d Update xml 2018-04-04 11:36:24 -04:00
lethosor 3e3571094d Update xml (name attrs) 2018-04-03 16:44:30 -04:00
lethosor f6a222751b Update xml (osx64 renderer) 2018-04-03 11:36:06 -04:00
lethosor 573fcb4bd0 Bump to 0.44.09-alpha1, update news/submodules 2018-04-02 01:00:20 -04:00
lethosor 2c9c935c0e Update submodules/news, bump to 0.44.08-alpha1 2018-03-29 11:38:55 -04:00
lethosor 93bef3351e Update submodules/news, bump to beta1 2018-03-28 22:01:27 -04:00
lethosor 6f864f97b3 Update news, xml 2018-03-14 10:11:45 -04:00
Ben Lubar 40654954a1
Partial preparation for 0.44.07-alpha1.
Still need to write release notes and add tags.
2018-03-13 15:49:42 -05:00
Lethosor 464052fe52
Merge pull request #1237 from warmist/warmist-patch-1
Fix parse_inset in gui.lua
2018-03-11 12:11:24 -04:00
Warmist 25d2938477
Fix parse_inset in gui.lua
It was used in different order than the return happened.
2018-03-11 12:40:30 +02:00
lethosor ad57037711 Merge remote-tracking branch 'BenLubar/cmp0022-warning' into develop 2018-03-10 17:02:34 -05:00
lethosor d55048dfa1 Merge remote-tracking branch 'BenLubar/ubuntu-bionic' into develop 2018-03-10 16:57:07 -05:00
lethosor 0ccc89a5fe Make git-describe.cmake detect changes to itself 2018-03-10 16:55:20 -05:00
lethosor eb22d5c38e Add ABI version symbol to plugins 2018-03-10 16:55:00 -05:00
lethosor db95796d4c Many build fixes 2018-03-10 16:53:45 -05:00
lethosor f2ff609e1c Initial 0.44.06 support, update xml 2018-03-10 16:18:15 -05:00
Ben Lubar 7bbfd456d3
Fix compile errors on Ubuntu 18.04 Bionic Beaver 2018-03-08 11:42:58 -06:00
Ben Lubar acd4adc7cc
Fix CMake warning about CMP0022 policy being set as "OLD". 2018-03-08 02:28:28 -06:00
lethosor 0e7ab27850 Bump to r2, update changelog, update submdules 2018-02-21 23:07:53 -05:00
lethosor 988ce9c30d Update xml 2018-02-16 02:19:30 -05:00
lethosor 8779168c96 DFHACK_PLUGIN: qualify Plugin 2018-02-16 02:17:58 -05:00
Japa 74bf06c69e Do some checks before trying to read json files. 2018-02-13 20:02:42 +05:30
Japa 8c13ce4da3 update xmls 2018-02-13 12:36:00 +05:30
Japa 5dc89fee38 Merge remote-tracking branch 'DFHack/develop' into RemoteServerUnsafe 2018-02-13 12:26:36 +05:30
lethosor 2f8fbd7ecd Show warning if all plugins fail to load (e.g. on Windows XP) 2018-02-12 13:58:55 -05:00
Japa 7b19c9b8f0 Merge remote-tracking branch 'remotes/DFHack/develop' into RemoteServerUnsafe
# Conflicts:
#	plugins/proto/RemoteFortressReader.proto
#	plugins/remotefortressreader/remotefortressreader.cpp
#	scripts
2018-02-12 20:19:40 +05:30
lethosor 19b65c2d1e Remove Error.h include (#1224) 2018-02-07 20:14:36 -05:00
Ben Lubar 7ab8d74ac9
Add mising Error.cpp reference to dfhack-client 2018-02-07 14:32:27 -06:00
Ben Lubar 7426f08504
Fix Error.cpp compile for Windows 2018-02-07 10:40:52 -06:00
lethosor bc6acfa24e Merge remote-tracking branch 'lethosor/travis-df' into develop 2018-02-05 19:21:13 -05:00
lethosor c1e2633e17 Refactor DFHack exception classes
Move implementations out of MiscUtils.cpp to Error.cpp and make what() return a
more useful description
2018-02-05 19:18:35 -05:00
Japa 78061085c6 Add art image properties to RFR 2018-02-04 16:02:02 +05:30
lethosor a5cca75715 headless: Disable sound, wgetch 2018-02-04 00:17:46 -05:00
Japa 956d0ce363 update submodules. 2018-02-04 10:30:49 +05:30
lethosor 638f0ab35a Add "headless" mode, use in travis 2018-02-03 23:59:01 -05:00
Japa 60c1bd3c66 Merge remote-tracking branch 'refs/remotes/DFHack/develop'
Conflicts:
	library/xml
2018-02-04 10:26:39 +05:30
Japa 38140fb450 Copy engravings in RFR, and update the art image function. 2018-02-04 10:12:15 +05:30
lethosor 426839aac2 Update scripts, xml, NEWS for dfhack/scripts#37 2018-02-03 17:59:26 -05:00
Japa 0f43c07334 update xml 2018-02-03 11:10:26 +05:30
lethosor ae3a662231 Merge remote-tracking branch 'danamlund/more-gui-getanyunit-cases' into develop 2018-01-31 15:58:55 -05:00
Dan Amlund 38491b4be8 add checks to avoid potential segfaults. use more dfhack idiomatic code 2018-01-31 20:10:40 +01:00
Dan Amlund 537e94d75a fix segfault when splatter did not have historical figure 2018-01-31 20:10:34 +01:00
lethosor 325e0b0e33 binpatch.lua: check for empty patches 2018-01-31 09:57:11 -05:00
Japa e63a871363 use the vmethod for getting improvement images. 2018-01-31 10:11:43 +05:30
Dan Amlund 2deeda11d2 add many new cases for Gui::getSelectedUnit: report list, combat log list, military screen, unit health, unit custumize, assigning to cage, viewing cage, pitting, penning, burrows, look at corpse, look at corpse piece, look at named spatter 2018-01-28 13:04:52 +01:00
Japa 8d8632908e update submodules 2018-01-28 13:45:21 +05:30
lethosor 9a1f970d2d Update submodules 2018-01-28 02:14:54 -05:00
Japa 77c6ea1d33 update xmls. 2018-01-28 10:22:16 +05:30
Japa b78b2feed2 Remove extra whitespace. 2018-01-28 10:12:50 +05:30
Japa db60ff3911 update xmls 2018-01-28 07:55:42 +05:30
Japa c0c80b626d update submodules 2018-01-27 12:12:19 +05:30
Japa 4a376752e2 Merge remote-tracking branch 'refs/remotes/DFHack/develop'
Conflicts:
	library/xml
	scripts
2018-01-26 08:21:47 +05:30
Japa e3d95daf45 Don't use globals 2018-01-26 08:19:41 +05:30
lethosor 5e0e674580 Update submodules 2018-01-25 10:56:08 -05:00
lethosor 2202c781f7 Add a dfhack.script_help() function to assist scripts 2018-01-25 10:55:00 -05:00
Japa f1b8fa305b try using the new function pointer. 2018-01-25 11:55:46 +05:30
Japa Mala Illo f33c42a49e Merge remote-tracking branch 'DFHack/develop' into remote_control
# Conflicts:
#	scripts
2018-01-24 10:04:51 +05:30
lethosor 1ba5477b63 Add designation priority support to MapCache and dig plugin
Fixes #481
2018-01-21 19:27:16 -05:00
Japa 7439f7fba7 Merge remote-tracking branch 'DFHack/develop' into remote_control
# Conflicts:
#	scripts
2018-01-19 22:11:48 +05:30
Japa e2ad956227 update xml 2018-01-16 15:54:41 +05:30
lethosor 46bc26dfe2 Update xml 2018-01-14 23:25:28 -05:00
lethosor c3bf14a300 Correct bad os-type attributes in symbols.xml 2018-01-14 22:56:35 -05:00
lethosor ce1644d655 Bump to 0.44.05-alpha1 and update submodules 2018-01-14 18:21:46 -05:00
lethosor dbe950d92d Update submodules 2018-01-13 16:51:03 -05:00
lethosor 4aa8456878 Update submodules 2018-01-12 00:28:15 -05:00
lethosor 16c4cde214 Change version to 0.44.04 and update xml 2018-01-11 12:10:21 -05:00
lethosor 2782008b42 Update tweak condition-material with new field names
dfhack/df-structures#236
2018-01-10 19:53:25 -05:00
Lethosor e35e2d389c
Merge pull request #1205 from JapaMala/remote_reader
add more world mode options to world info
2018-01-07 23:53:09 -05:00
lethosor 04523f9e5d dfhack/df-structures#231: twbt_render_map offset for x64 2017-12-29 23:40:55 -05:00
lethosor fde1e284f4 Gui::getAnyItem: support viewscreen_assign_display_itemst 2017-12-28 16:19:45 -05:00
lethosor e72474613f Add new PutItemOnDisplay job to labor management plugins
Also add building_type::DisplayFurniture to labormanager

Fixes #1208
2017-12-27 13:48:53 -05:00
lethosor 94e6e89b31 Update xml, scripts 2017-12-26 20:36:37 -05:00
lethosor 4007c39438 Update xml 2017-12-26 12:54:08 -05:00
lethosor 0eff9fa084 Bump version to 0.44.03-alpha1 and update submodules 2017-12-25 22:48:54 -05:00
lethosor 4d5c7c5927 getKeyDisplay: use enabler::GetKeyDisplay() 2017-12-25 20:14:11 -05:00
lethosor 0332a5c25a Replace a call to abort() with a VTableMissing exception
This makes some scripts crash less when the viewscreen vtable is unavailable,
for example.
2017-12-25 20:13:15 -05:00
lethosor e6651171bf json: Improve IO-related error messages 2017-12-25 14:40:06 -05:00
lethosor d6a6bf008e Update xml, stonesense
Ref #1206
2017-12-24 23:17:39 -05:00
Lethosor 692bce8507
Tabs to spaces 2017-12-24 13:50:54 -05:00
Japa 73c6209f87 Remove extra These don't actually act the same. 2017-12-24 17:22:50 +05:30
Japa 22bdc6227c add more world mode options to world info 2017-12-24 10:50:30 +05:30
lethosor d90ee0edf8 Update submodules 2017-12-23 21:15:30 -05:00
lethosor 9ae4051d33 Merge branch 'develop' of gh:dfhack/dfhack into develop 2017-12-23 20:20:58 -05:00
lethosor e7a95155ab Lua API: add get_vector() and support for renaming class methods
See dfhack/df-structures@5bdb0e8
2017-12-23 20:18:55 -05:00
Lethosor fd9f198239
Merge pull request #1203 from PatrikLundell/console
Blocked errant line feed at full buffer
2017-12-22 11:31:24 -05:00
PatrikLundell d6a51f65eb Blocked errant line feed at full buffer 2017-12-22 13:42:59 +01:00
Lethosor c7f3902e0d
Merge pull request #1197 from PatrikLundell/console
Made console prompt respect color reset
2017-12-21 12:43:10 -05:00
Lethosor 7ba43d3be2
Merge pull request #1189 from Pfhreak/autocompletebuiltins
Autocomplete built in commands (die, etc.)
2017-12-20 23:35:36 -05:00
lethosor b8d5aba0ef Update xml, scripts 2017-12-20 00:02:26 -05:00
PatrikLundell 14996a9d67 Made prompt respect color reset 2017-12-14 12:46:52 +01:00
PatrikLundell cf7dbd478a Made prompt respect color reset 2017-12-14 12:45:35 +01:00
lethosor 7721a142d8 Add a basic Lua console API 2017-12-07 14:43:27 -05:00
lethosor 622a8dacb6 Update submodules 2017-12-07 14:39:15 -05:00
Quietust 88c7e493b8 Merge ui_area_map_width into ui_menu_width, now a 2-byte array 2017-12-03 20:34:59 -06:00
Quietust c72ae8d8a7 Merge "announcements" global into d_init where it belongs 2017-12-03 20:05:08 -06:00
Quietust ec06ed09c9 update structures - add remaining Linux 64-bit offsets 2017-12-03 13:49:57 -06:00
Quietust 1489e7db82 update structures - fix unit_personality and historical_figure_info.personality 2017-12-02 22:14:04 -06:00
Quietust 4edc7a6f43
update DataFuncs to support vmethods with 12-13 parameters (#1192) 2017-12-02 21:41:44 -06:00
Quietust e174135133 update structures 2017-12-02 21:09:00 -06:00
Japa d1c1dfe2cd update xml 2017-11-30 19:46:03 +05:30
Phillip Spiess bbdf157a52 Fixup autocomplete built ins per IRC 2017-11-27 13:45:58 -08:00
Phillip Spiess 7e55efa3f7 Autocomplete built in commands (die, etc.) 2017-11-27 13:15:16 -08:00
Japa Mala Illo a0634f9ee0 Merge remote-tracking branch 'DFHack/develop' into RemoteServerUnsafe 2017-11-25 11:50:56 +05:30
Japa Mala Illo ea8347e2ca update xml 2017-11-25 11:45:30 +05:30
lethosor 35b0e962ce Fix crash on empty symbol tables 2017-11-25 01:10:47 -05:00
Japa Mala Illo 69a88e1641 Use json for server config. 2017-11-25 11:34:02 +05:30
lethosor 2c95ac411e Update xml and all uses of job_handler 2017-11-25 00:59:59 -05:00
Japa Mala Illo 272f51ef4b Merge remote-tracking branch 'remotes/DFHack/master' into RemoteServerUnsafe 2017-11-25 10:24:51 +05:30
lethosor 5795a370bc Update xml again to fix GCC build error 2017-11-23 16:01:27 -05:00
lethosor 111df1312b Update xml to 1cdab5a (last for 0.43.05) 2017-11-23 15:50:58 -05:00
Lethosor 9259cb22d2
Merge pull request #1184 from quietust/develop
update structures
2017-11-23 11:57:41 -05:00
Quietust 33a43c5bfd update structures 2017-11-04 07:50:47 -06:00
Japa f91123610e Update structures. 2017-10-30 21:51:54 +05:30
Ben Lubar d3f3ebf778
auto_ptr is deprecated - use unique_ptr instead 2017-10-04 14:49:28 -05:00
Japa Illo 3c5483df03 Change tabs to spaces to satisfy travis. 2017-10-04 09:48:12 +05:30
Japa bb1eb0b48a Use a config file to enable outside connections. 2017-10-03 19:48:37 +05:30
Japa 1d02ecff6f Add safe for remote flag to select default functions. 2017-10-03 18:56:49 +05:30
Japa cbeb241435 Listen on any address 2017-10-02 20:48:05 +05:30
Japa 8dffd48f70 Add a flag for functions considered safe for a remote computer to call. 2017-10-02 19:55:16 +05:30
lethosor 9d4c7af11c Merge branch 'develop' of gh:dfhack/dfhack into develop 2017-08-08 20:09:10 -04:00
lethosor 08656a3ca7 Strip DF folder from Ruby script paths
Fixes #1146 (temporarily, see #1147)
2017-08-08 20:08:07 -04:00
Kelly Kinkade 0b26e9aec7 Fix a couple of MSVC warnings
Use intptr_t instead of long for a handle, and add an explict cast to
eliminate a narrowing conversion warning
2017-08-07 14:13:22 -05:00
lethosor 5c33fcccbd Merge remote-tracking branch 'BenLubar/win64-warnings' into develop 2017-08-07 13:51:18 -04:00
lethosor 16fb230ef6 getAnyItem: support viewscreen_textviewerst 2017-08-05 21:38:18 -04:00
lethosor d280863bc8 Avoid iterating over "has-bad-pointers" fields of IDTYPE_STRUCT and others
dfhack/df-structures@4c224dd205
2017-08-05 21:34:16 -04:00
Ben Lubar 17a7885ef2
Fix a bunch of 64-bit Windows warnings 2017-07-21 13:30:05 -05:00
lethosor 15ed1bfd67 stl_vsprintf: avoid truncating 4096-byte strings 2017-07-13 13:08:27 -04:00
lethosor ce1158780f Fix crash in stl_vsprintf() from reusing va_list 2017-07-13 13:07:58 -04:00
lethosor d236181cdc Merge remote-tracking branch 'BenLubar/repeat-util-cancel-self' into develop 2017-07-12 16:35:24 -04:00
lethosor 3103d697d9 Add an onLoad.init-example file
Closes #1093
2017-07-12 16:30:49 -04:00
lethosor e3cd820fb1 Limit recursive runCommand() calls to 20
Addresses an issue with recursive aliases crashing (#701)
2017-07-12 16:28:21 -04:00
Ben Lubar 7fed961fcd
Make repeatUtil.cancel work even when called from the callback. Closes #1122. 2017-07-11 15:10:42 -05:00
lethosor d628212254 Lua API: Use CallWithCatchWrapper for a few more functions
This produces more readable backtraces when native functions that aren't wrapped
using wrap_function() throw exceptions.
2017-07-01 17:39:39 -04:00
lethosor 6100074ba6 Add a few MD5 and thread functions to the Lua API 2017-07-01 17:39:17 -04:00
lethosor 7a7f1df908 Redirect stdout and stderr again on Windows
DF appears to redirect them itself at an inconvenient point.

Fixes #1124 (hopefully)
2017-06-30 13:29:05 -04:00
lethosor cc0220f030 Add a "key" option to EditField and FilteredList 2017-06-27 21:10:14 -04:00
Vitaly Pronkin 6af5f3b299 fixing getItemBaseValue() for cheese, sheets and instruments 2017-06-26 09:17:23 +12:00
lethosor 10e13c532a Add "tweak cage-butcher" and some extra Building module functions
* Buildings::markedForRemoval()
* Buildings::getCageOccupants()

Closes #906
2017-06-25 15:27:21 -04:00
lethosor db375ae83b Add a Pages:getSelectedPage() helper
Equivalent to select(2, pages:getSelected()), but more readable.
2017-06-23 12:46:46 -04:00
lethosor bf8e65311b Update submodules 2017-06-23 12:43:38 -04:00
lethosor cda5cedacf Fix Gui::refreshSidebar() on topmost z-level 2017-06-23 10:30:16 -04:00
lethosor ae809afde7 Add Gui::refreshSidebar()
This handles feeding CURSOR_DOWN_Z and CURSOR_UP_Z properly, avoiding issues
when on the lowest z-level.
2017-06-23 00:02:21 -04:00
lethosor 0796fafb2a Add new built-in "alias" command
Closes #701
2017-06-19 00:15:20 -04:00
lethosor 27343e3253 Add unit and tile visibility functions 2017-06-10 21:54:08 -04:00
lethosor 9b63c451b1 Expose getUnitsInBox to Lua 2017-06-10 21:03:42 -04:00
lethosor 778ffb0971 More Units module cleanup, modernize getUnitsInBox 2017-06-10 21:02:30 -04:00
lethosor dff94fc97e replacment -> replacement 2017-06-10 19:41:59 -04:00
lethosor 0ed7e60522 getAnyUnit: support viewscreen_layer_unit_relationshipst 2017-06-10 19:06:43 -04:00
lethosor 1321a64613 Remove lots of old/unused functions from the Units module 2017-06-10 17:21:34 -04:00
lethosor ba68683964 Fix ncurses wgetch() on OS X
Ref #731
2017-06-08 13:05:31 -04:00
lethosor 8d23660d55 Expose Gui::getAny* to Lua 2017-06-08 11:21:30 -04:00
lethosor 047a66030b getAnyUnit: add support for viewscreen_unitst, viewscreen_textviewerst 2017-06-07 20:51:40 -04:00
lethosor da98a5054d Make sc-script help more helpful 2017-06-04 19:24:26 -04:00
lethosor 92c2e52e45 Fix MSVC error 2017-06-02 21:22:19 -04:00
lethosor 4eb767c3f0 Expose getDepthAt() to Lua 2017-06-02 15:39:49 -04:00
lethosor ae1aa49089 Add map parameter to Lua paintTile() and use in Painter
Also updated gui/siege-engine.lua
2017-06-02 12:42:51 -04:00
lethosor 9df35dd844 revealInDwarfmodeMap: use map y dimensions 2017-06-02 00:40:59 -04:00
lethosor 43c4a88068 Move some checks in paintTile/readTile after hooks are called 2017-06-02 00:40:14 -04:00
lethosor 346e8b91a9 Use getDwarfmodeViewDims() in getPanelLayout()
Allows C++ hooks to affect Lua scripts as well
2017-06-01 23:36:02 -04:00
lethosor 05f322ca30 Merge remote-tracking branch 'lethosor/lua-dmdims' into develop 2017-06-01 23:34:35 -04:00
lethosor b28742cbd0 Respect script path when running ruby scripts
Fixes #1099
2017-06-01 16:20:26 -04:00
lethosor d41ff4e836 Implement map parameters for Lua paintString() and fillRect(), update docs 2017-06-01 16:17:59 -04:00
lethosor 939aff3231 readTile(): add hook support and map parameter 2017-05-31 12:12:15 -04:00
lethosor f4e18b2d87 Lua: implement to_first argument in dfhack.screen.dismiss()
This was mentioned in Lua API.rst, but never actually implemented.
2017-05-30 09:17:09 -04:00
lethosor e51c5fc2cc Allow key_pen option in some widget text 2017-05-28 23:11:37 -04:00
lethosor f59be2a9a0 Expand focus strings for jobmanagement and workquota_condition viewscreens 2017-05-27 00:57:16 -04:00
lethosor 8600efd06b Make git-describe faster if no git index files have changed
Running "git commit" in core and xml touches .git/index and
.git/modules/library/xml/index, respectively, so if neither of those have
changed, neither has the git information we care about, so avoid running git
entirely (which can be slow sometimes).
2017-05-20 16:27:14 -04:00
lethosor b92095190f Update stonesense, scripts, xml 2017-05-18 20:52:41 -04:00
lethosor 01c6416824 Update submodules 2017-05-13 21:56:08 -04:00
lethosor 787c54d8a7 Remove several unused CMake and Doxygen files 2017-05-11 22:01:57 -04:00
lethosor 9e32269e90 Update xml 2017-05-09 13:52:26 -04:00
lethosor 8bda738466 df_expr_to_ref: support integer array indices 2017-05-07 16:31:30 -04:00
lethosor 55931703ac Designate the correct tile for trees with multi-tile trunks
DF always designates the southeast trunk tile, while plant.pos is the center,
which is sometimes inaccessible (see #1014)
2017-05-05 21:25:25 -04:00
lethosor adb14491d0 Fix loop in Designations::unmarkPlant() 2017-05-05 17:24:51 -04:00
lethosor 81610d0259 Update xml 2017-05-05 14:49:32 -04:00
lethosor d3c496cc2b Add getSelectedPlant() and related functions
Currently only works with the center tile of multi-tile trees
2017-05-05 14:45:46 -04:00
lethosor 1e469453fc Add Designations module, currently supporting plant/tree designations
This makes it easier for tools to properly handle designating and undesignating
trees for chopping and plants for gathering, which changed significantly in
0.40.20.

Ref #531 (?), #656, #1014, #1018, #1030, #1076
2017-05-04 21:47:12 -04:00
lethosor e3258defd7 Expose Gui::revealInDwarfmodeMap() to Lua
Closes #1085
2017-05-04 14:37:14 -04:00
lethosor cd5944689c Use find_package() to find Perl, and run it earlier
Previously, PERL_EXECUTABLE was set manually in library/CMakeLists.txt, which
caused gunzip.pl to fail if was run before that happened.
2017-04-30 17:36:42 -04:00
lethosor 71b553b305 Add a few functions to retrieve unit social activities 2017-04-28 17:25:58 -04:00
Lethosor 318cf92f0b Merge pull request #1079 from Amostubal/patch-1
fix of relations errors.
2017-04-25 21:21:03 -04:00
Amostubal bc47803948 fix of relations errors.
There is a lot more errors in this file, mostly called unk variables... I bet they have names, I've tried to figure out what they were renamed too, but I'm not fully understanding the xml.
2017-04-24 07:07:08 -05:00
lethosor 9d5b69cb20 git-describe.cmake: use 8-digit git commit abbreviations
The length here was previously determined automatically, and jumped from 7 to 8
recently, breaking devel/check-release. Since Git seems to think 8 characters is
better now, specify it explicitly to avoid future breakages.
2017-04-23 18:16:00 -04:00
lethosor 3cfbd735dc Update xml, stonesense, scripts 2017-04-23 17:14:22 -04:00
lethosor 78cb4a31b9 New tweak: condition-material (fixes bug 9905)
http://www.bay12games.com/dwarves/mantisbt/view.php?id=9905
2017-03-28 09:50:38 -04:00
lethosor fa1adbbac4 Allow lua integer writes to accept anything that can be converted to an integer
May address #1044
2017-03-18 17:55:51 -04:00
lethosor 400d22cb76 Update xml (ui_advmode_menu and ui_unit_view_mode) 2017-03-18 00:35:16 -04:00
lethosor 67f39316ce Update xml (assorted viewscreen changes) 2017-03-02 14:05:34 -05:00
lethosor 334817fa1b Add Lua API functions to determine architecture 2017-03-02 14:04:34 -05:00
lethosor 15759808e5 Fix "plug" output width for generated-creature-renamer 2017-03-02 14:04:20 -05:00
lethosor c21b7bf941 Add a Painter:key_string() method 2017-03-01 15:56:50 -05:00
lethosor 19695b4ee7 EventManager/eventful: Pass building ID pointers to event handlers
Previously, there was some disagreement over whether event handlers such as
Buildings::updateBuildings() took building pointers or building IDs shoved
into pointers. It turned out to be the latter, which, unfortunately, did not
compile on x64. Passing building IDs isn't possible in all cases, because
building event handlers can be called for recently-deleted buildings too.
Pointers to building IDs do work reliably, though.

Fixes #1003
2017-02-17 22:53:48 -05:00
lethosor a10d4ae226 Add viewscreen::feed_key method 2017-02-11 16:53:50 -05:00
lethosor f2164d27c9 ls: List scripts outside of hack/scripts
Closes #412
2017-02-05 22:11:35 -05:00
lethosor 34988e53b9 Update supported keys in keybinding help text 2017-02-05 22:03:06 -05:00
lethosor b5c7771b71 Merge remote-tracking branch 'quietust/develop' into develop
Fixes #1061
2017-02-04 15:14:10 -05:00
lethosor 7823d78cd9 Update xml and embark-tools field name 2017-02-04 14:49:21 -05:00
lethosor a8f4833188 internal_memscan: add extra check 2017-02-04 14:49:09 -05:00
Quietust cc02ced0ac Fix RTTI in Win64 - offsets are relative to the current module (e.g. the DLL), so it needs to be looked up explicitly 2017-01-21 15:16:06 -06:00
lethosor 92f890d3c6 Update xml, scripts (#994 and file_compressor fix) 2017-01-04 12:30:42 -05:00
lethosor 61d081849e xml: ui_sidebar_menus.command_line fix 2016-12-30 18:02:51 -05:00
lethosor d18beb8daf xml: Add some linux64 offsets, fix ui_sidebar_menus alignment
Fixes #1053
Fixes #1054
Fixes #1055
2016-12-29 15:33:09 -05:00
lethosor 538b07d214 Update xml and fix knowledge_scholar_category_flag::value() custom method
Allows bitfields within unions (#1047, dfhack/df-structures#169)
2016-12-27 23:24:22 -05:00
Milo Christiansen 8bd92b6a08 Add a Lua module for getting a tile's material (#1031) 2016-12-27 16:49:46 -05:00
lethosor 506d124a98 Update xml
Ref #1047, #1050
2016-12-26 19:41:34 -05:00
lethosor f3e2e5e7d4 Update xml 2016-12-11 18:04:00 -05:00
lethosor 9e0221a44e Merge remote-tracking branch 'dscorbett/bitfield-constructors' into develop 2016-12-11 17:52:00 -05:00
lethosor e8c8953cbb Re-add and update misery plugin
Closes #1037
Ref #1011
2016-12-10 18:22:32 -05:00
lethosor 3bae9d9d65 Lua API: Make bitfield.whole return an integer, not a decimal 2016-12-10 12:27:43 -05:00
David Corbett acdb369aa8 Avoid non-trivial bitfield constructors 2016-12-09 13:41:14 -05:00
lethosor 6e16a7a20c Update xml, scripts 2016-12-09 11:27:44 -05:00
lethosor 8521b830b2 Merge remote-tracking branch 'CannibalVox/job_remove' into develop 2016-12-05 15:24:37 -05:00
Stephen Baynham 595f3857b6 Reverse the param order of these two methods
The current way doesn't match other Job module methods
2016-12-01 20:13:49 -08:00
Stephen Baynham 7920f71517 Bad formatting 2016-11-25 00:25:18 -08:00
Stephen Baynham de0e211e07 Figured I could like test my code. 2016-11-24 23:35:03 -08:00
Stephen Baynham e490afdf00 Rebuilt slightly to offer bool return val
We fail on unknown general ref types now, without modifying the job at
all yet
2016-11-24 22:36:11 -08:00
Stephen Baynham 8b964ca2dc Wipe job_items vector 2016-11-21 06:51:21 -08:00
Stephen Baynham fba32f2e2f Also disconnect the job from its items. 2016-11-17 23:25:48 -08:00
Stephen Baynham 67af9f5e82 Add lua bindings for removeJob 2016-11-17 23:04:48 -08:00
Stephen Baynham 74f5df99db Add job remove method
Job remove eliminates a job's worker & holder references, if any, puts
the worker on cd, if appropriate, removes the job's postings, eliminates
the job from the global linked list, and then finally deletes it.  This
code was tested by incorporating it into autochop and it does make the
plugin work.  However, chop jobs don't have holder building references,
and anyway, with DF being 90% edge case by volume, this could use a heck
of a lot more testing.

I saw elsewhere code that prevented worker removal if the job was a
special job, and that made me feel funny so I made the job remove method
not work if the job is a special job.
2016-11-17 19:54:41 -08:00
lethosor ae59b4f5ad Update xml, scripts 2016-11-10 14:25:05 -05:00
lethosor 04ad7a0a42 Replace some instances of "cmake -E copy_if_different" with a standalone script
@JapaMala reported that CMake < 3.5 doesn't support copy_if_different with
multiple source files.

https://cmake.org/cmake/help/v3.5/release/3.5.html#command-line
2016-11-02 16:23:32 -04:00
lethosor 2c230f0d3e Improve protobuf file regeneration (no longer uses a dummy status.txt file) 2016-10-24 22:51:27 -04:00
lethosor 4fdbba0207 Only touch protobuf generated files if they actually changed 2016-10-24 22:28:51 -04:00
lethosor b19a0b4305 Update scripts, xml
Fixes #1005
2016-10-19 09:53:51 -04:00
lethosor b1e3c1088c Give loadfile() result a better name for tracebacks 2016-10-19 09:53:12 -04:00
lethosor 4c21bbd5ae Add Lua::TableInsert() helper 2016-10-15 14:55:48 -04:00
lethosor 8a138fcc4c Avoid polluting global namespace in MapCache.h 2016-10-15 14:53:10 -04:00
Japa b2424f9a59 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2016-10-15 10:32:13 +05:30
Japa 08cc9f3188 Cast size_t to int explicitly to avoid compiler warning C4267 2016-10-15 10:31:38 +05:30
Japa 98ab357df0 Use size_t in both path methods, to avoid warning C4267 2016-10-15 10:17:38 +05:30
lethosor 9f541481ea Fix some warnings with GCC -Wall 2016-10-15 00:37:18 -04:00
Japa 980b6dd12f Update XML again. 2016-10-13 19:42:40 +05:30
Japa d5e8b5eeba Update XML 2016-10-13 19:35:40 +05:30
lethosor e6bb7357df Update xml 2016-10-08 17:09:23 -04:00
lethosor f6a91c2f30 Log architecture on startup 2016-10-08 16:58:08 -04:00
lethosor 70d3c07cdb Initial lua getDwarfmodeViewDims rewrite 2016-10-07 23:51:58 -04:00
lethosor a5338d2f59 Fix rebase_delta type mismatch
See #984. GCC wasn't complaining about this on x64 for some reason.

Also reordered includes.
2016-09-28 20:43:02 -04:00
Quietust 27d2229665 Fix follow_jmp for 64-bit code - skip REX prefix if found 2016-09-25 18:29:57 -05:00
Japa b09ee3407c Merge branch 'v0.43.03' of https://github.com/JapaMala/dfhack into develop
Conflicts:
	library/xml
	plugins/remotefortressreader.cpp
2016-08-29 22:06:37 +05:30
lethosor 41e298bdfc Update submodules 2016-08-27 15:27:57 -04:00
lethosor 85ebbf0e9c Fix df_expr_to_ref for raw userdata 2016-08-24 17:18:55 -04:00
lethosor 6ce470ad57 Add basic lua expression support to memview
Currently just supports basic field accesses (world.x, screen.y.z).
No support for world.x - 4, etc.

Closes #976
2016-08-24 16:26:34 -04:00
lethosor 7487f44fc8 Implement a helper to create lua environments with shortcuts (e.g. scr, unit)
Used in gui/gm-editor and lua

Closes #977
2016-08-23 21:47:41 -04:00
lethosor 2dccd1d0ff Add CheckedArray:__tostring() method 2016-08-22 23:18:30 -04:00
lethosor 1dab45ffed Replace lua_pushnumber with lua_pushinteger in LuaApi.cpp 2016-08-22 23:18:08 -04:00
lethosor e983e66a1a Update xml and scripts 2016-08-21 20:59:24 -04:00
lethosor 70ac99cbfa Fix Buildings::setOwner() persistence
Needed to set bld->owner_id for changes to persist across save/load

Fixes #983, thanks to Quietust
2016-08-21 20:58:40 -04:00
lethosor 98a187ca43 Update xml 2016-08-18 17:28:44 -04:00
lethosor 9e4a6d7591 Update default base address on 64-bit Linux 2016-08-18 17:28:18 -04:00
lethosor 0b6597ddb2 Stop field_offset from crashing due to missing vtables
Now, a pointer to NULL is cast to the type in question, avoiding the need to
call new() or delete() with potentially-misaligned types. Also,
virtual_identity::find has been tweaked to prevent it from crashing on NULL
vtable pointers.

This was suggested by Angavrilov.
2016-08-18 15:59:46 -04:00
lethosor c2997b9c79 Fix save_dir 2016-08-18 15:47:40 -04:00
lethosor de731b0299 Move save_dir back into cur_savegame and update submodules 2016-08-14 12:41:09 -04:00
lethosor e965f5318f Replace many includes with forward declarations in modules/Maps.h 2016-08-13 21:44:01 -04:00
lethosor 576174ea0b Lua: Add lengths of (some) containers to their string representations 2016-08-13 19:52:14 -04:00
lethosor eef6f9bfb7 Add df.new() support for char and unsigned long 2016-08-11 00:01:52 -04:00
lethosor a1ff432bf8 Restore fixed-width types in string representations of lua fields
e.g. tostring(df.new('int16_t')) was returning "<short: 0xaddr>"
2016-08-10 23:58:45 -04:00
lethosor 215afa34f3 Update for 64-bit unit changes
Includes xml, stonesense, scripts

Ref DFHack/df-structures@25cb373
2016-08-10 23:50:00 -04:00
Lethosor 6e741b1a80 Merge pull request #969 from Qartar/win64
Minor fixes/updates for Visual Studio 2015 Win64
2016-08-10 15:15:44 -04:00
lethosor 02eef95147 Fix base address for Darwin x64 2016-08-09 20:00:31 -04:00
lethosor e22b3b1de7 Use non-fixed-width types in integer identity_traits definitions
In some situations (e.g. 32-bit Linux), "intptr_t" is defined as "int", which is
equivalent to "int32_t", leading to issues with duplicate definitions. In other
situations with GCC, "intptr_t" is "long", which isn't covered by any intNN_t
types. Also, definitions for "long" already had to be added on Windows, because
no fixed-width types in MSVC are equivalent to "long".

Switching to non-fixed-width types should hopefully cover all of these
situations. If this doesn't cover any integer types that we need, it will
be caught quickly, e.g. by references to integer_traits<T> in LuaWrapper.cpp.
2016-08-08 11:46:20 -04:00
lethosor 298d16238e Remove a few unneeded includes in DataStaticsFields.cpp 2016-08-08 11:45:00 -04:00
lethosor aeac8b4fef Update xml 2016-08-05 18:04:42 -04:00
lethosor ee7357b60e x86: fix vector validity check 2016-08-05 17:51:08 -04:00
lethosor dde6901534 x86: fix lua address display 2016-08-05 17:50:49 -04:00
Japa 2fda01d90b Add support for site towers. 2016-08-03 10:22:30 +05:30
Japa 9189e3dc7e Send world buildings through remotefortressreader.cpp 2016-08-02 10:30:17 +05:30
Carter Bray 44913609c8 Fix format string warnings 2016-08-01 19:03:26 -07:00
lethosor 79377669a1 Merge remote-tracking branch 'NCommander/dwarfvet' into develop 2016-07-29 16:25:53 -04:00
lethosor 158f18106f Merge remote-tracking branch 'NCommander/vs2015' into develop 2016-07-29 15:30:32 -04:00
lethosor 55970a71ab Fix Lua::Push for enums 2016-07-29 11:06:16 -04:00
lethosor e8fe72826f Add new integer types to memscan and update find-offsets 2016-07-29 00:05:12 -04:00
lethosor dc79e2477b Expose long/[u]intptr_t to lua and fix some integer return values 2016-07-29 00:02:51 -04:00
lethosor b7856fd9f2 Use enable_if for Lua::Push specializations 2016-07-28 22:04:46 -04:00
lethosor 7b7f7a1b79 Fix support for integer fields in Lua 5.3 2016-07-28 16:36:02 -04:00
lethosor 41a81f9021 Fix some more warnings (GCC 4.8) 2016-07-28 11:00:52 -04:00
lethosor 42c620bb9c Download non-broken libstdc++ on OS X 2016-07-27 21:43:38 -04:00
lethosor 828fee532a Switch to downloading zlib.lib and SDLreal.dll on Windows 2016-07-27 21:08:24 -04:00
Vitaly Pronkin 223c83071e win64 fixes: doReadClassName, ParseVersion
cherry-picked from 2f734ae2317060edb83021f17cffc966c435ad7b
2016-07-27 20:21:57 -04:00
lethosor ddd56d7825 Fix (for win64) and avoid duplicating base address 2016-07-27 20:10:03 -04:00
lethosor 50144b60ea A few %08x to %p changes 2016-07-27 19:54:19 -04:00
Vitaly Pronkin 8916aba3bf win64 fixes (partial)
cherry-picked from 2f734ae2317060edb83021f17cffc966c435ad7b
2016-07-27 19:46:49 -04:00
Vitaly Pronkin fe18f176f7 More 64-bit fixes
Cherry-picked from 7eb3ba6
- Lua update already done in e2c6350, 4dd411e
- Excluded library/modules/Buildings.cpp
2016-07-26 23:47:53 -04:00
Vitaly Pronkin 3833ff2e09 proper 64bit address formatting 2016-07-26 23:30:50 -04:00
lethosor a684e1dd0f Merge remote-tracking branch 'lethosor/64-bit' into develop 2016-07-26 22:54:36 -04:00
Michael Casadevall e10397370b Merge branch 'develop' of github.com:DFHack/dfhack into vs2015 2016-07-11 18:59:22 -05:00
Michael Casadevall ed6fb69012 Fix whitespace spacing
Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-07-11 18:54:03 -05:00
lethosor cede0528f2 Merge branch 'develop' of https://github.com/dfhack/dfhack into develop 2016-07-06 21:00:20 -04:00
lethosor 39aa143cfa Update NEWS and submodules 2016-07-06 20:59:49 -04:00
Lethosor 4f96bdd0eb Merge pull request #950 from TC01/linux-system-tinyxml
Support linking against an external tinyxml if EXTERNAL_TINYXML is set
2016-07-06 20:37:28 -04:00
lethosor 2de2e6a983 Update CMakeLists and submodules 2016-07-06 20:30:28 -04:00
lethosor b4063352cf Fix crash in vprinterr due to va_list misuse 2016-07-03 23:33:07 -04:00
lethosor 2455e36510 Initial 64-bit support 2016-07-03 23:32:43 -04:00
lethosor 163207e362 Give more feedback for DF detection failures with mismatched XML versions
This may help address issues where people forget to read the documentation,
don't run "git submodule update", and end up with a df-structures version
that's too old (which is somewhat common, it turns out).
2016-06-30 20:42:27 -04:00
lethosor cfaba3ec71 Update various references to scripts/ and mention old git issues in Compile.rst 2016-06-29 19:38:15 -04:00
lethosor af906d6582 Remove library/scripts submodule 2016-06-29 19:06:00 -04:00
Ben Rosser ae55d2d526 Support linking against an external tinyxml if EXTERNAL_TINYXML is set
As best as I can tell, the copy of tinyxml dfhack uses is unmodified
from whenever it was first bundled. This commit adds an option to CMake,
EXTERNAL_TINYXML, that if set to ON, will attempt to link against a system
tinyxml instead of using the dfhack-bundled one.  It defaults to OFF,
so there is no change in default behavior.

The DFHACK_TINYXML variable is then set to either "tinyxml" or "dfhack-tinyxml"
so the library (and any plugins that need updating) can link against one
or the other.

The FindTinyXML.cmake script was taken from https://github.com/ros/cmake_modules
(licensed under the 3-clause BSD license).

Add license text to new CMake file.
2016-06-29 17:53:16 -04:00
Michael Casadevall d509cf2fb5 It helps when you pop pragmas
Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-28 09:39:46 -05:00
Michael Casadevall d49032ef73 Supress a lot of compiler noise in hopes of finding real errors. Right now, a plugin free DFHack can be built with VS2015 2016-06-28 08:34:11 -05:00
Japa b338d0218e Merge branch 'develop' of https://github.com/DFHack/dfhack into develop 2016-06-20 13:22:25 +05:30
Japa 36aafd550b Increased the message size limit in RemoteClient from 8mb to 64mb. 2016-06-20 13:17:30 +05:30
lethosor 6d1c4cd9ce Merge branch 'develop' of https://github.com/dfhack/dfhack into develop 2016-06-16 23:37:21 -04:00
lethosor a7d5c2132a update xml 2016-06-16 23:37:01 -04:00
Japa 0918efd02d fix word_wrap not returning a value. 2016-06-16 20:52:16 +05:30
lethosor 27a84a8246 Move scripts to library/scripts
git can't cope with replacing scripts/3rdparty/* submodules with a single
scripts submodule.
2016-06-15 18:45:08 -04:00
lethosor 9de4550fde Update submodules 2016-06-15 12:11:20 -04:00
lethosor 022a1bf9e8 Wrap script descriptions in `ls` output and remove description length cap 2016-06-14 21:24:27 -04:00
lethosor 4f3a2b39d7 Update xml 2016-06-14 13:21:59 -04:00
lethosor f07bc03c69 Update clsocket and Open()/Listen() usage 2016-06-14 13:21:51 -04:00
Lethosor a2b2c66798 Merge pull request #931 from warmist/advfort2
Advfort2
2016-06-14 09:45:33 -04:00
Michael Casadevall 90c7dc41ec Update where library/xml to point to current master
Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-13 17:10:58 -04:00
Michael Casadevall a03b32846a Modify DFHack to handle new produce() prototype. Major thanks to lethosor, and ragundo for their help in this
Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-13 16:57:45 -04:00
Michael Casadevall e45fbfc61d Modified dwaftvet plugin to work with latest DFHack
Initial commit of the dwarfvet plugin

Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-08 04:14:59 -04:00
lethosor a47a1c83ba Update xml, clsocket 2016-06-07 08:17:40 -04:00
lethosor fa1c589391 Update xml 2016-05-30 16:58:51 -04:00
lethosor d44bc069ad Merge remote-tracking branch 'BenLubar/thread-memory-leak' into develop 2016-05-30 16:24:42 -04:00
lethosor 9fc43cff4d Make const method wrappers possible
Reverts ae3052f
Ref #935
2016-05-28 20:11:42 -04:00
lethosor 113325f885 update xml 2016-05-28 10:29:53 -04:00
lethosor ae3052f79a Make knowledge_scholar_category_flag::value() non-const
const methods can't be wrapped at the moment, at least without changing things
in DataFuncs.h
2016-05-28 10:28:22 -04:00
lethosor 4d3df60470 Update xml (offsets) 2016-05-27 17:51:01 -04:00
lethosor c1ba435058 Update version and xml 2016-05-27 17:41:23 -04:00
Ben Lubar e76258b040 knowledge category flag 2016-05-26 15:15:42 -05:00
Ben Lubar 700392ba55 Fix tinythread memory leak in two ways:
1. update to tinythread version 1.1, which provides a detach method
2. move the thread disassociation to the join function, which allows
attached threads to be joined even after they finish (this was the main
leak)

Also update RemoteServer.cpp to detach threads and delete the thread
objects instead of leaking them (although they are much smaller than the
actual threads).
2016-05-21 19:17:08 -05:00
Warmist 6c64b3441d Fixes to gui/advfort.lua 2016-05-20 13:55:59 +03:00
lethosor d93cf2cd2e Update xml 2016-05-17 23:26:21 -04:00
lethosor b7aa8aca26 Update xml 2016-05-14 22:27:21 -04:00
lethosor 1832e563b7 Update xml 2016-05-14 19:41:41 -04:00
lethosor a89251cdf8 Find job in job screen 2016-05-14 16:07:27 -04:00
lethosor 118d88e44f Update xml 2016-05-14 16:07:10 -04:00
lethosor 55e58e5f06 Update handling of viewscreen_workshop_profilest in Gui module, search/sort plugins 2016-05-14 11:43:37 -04:00
lethosor 97f7cd6081 Bump version and update xml 2016-05-12 16:03:33 -04:00
lethosor fee6e57b40 Disable viewscreen_layer_workshop_profilest focus handler for now 2016-05-11 17:52:56 -04:00
lethosor ed81be16b3 Improve logging of vtable interpose errors 2016-05-11 17:52:10 -04:00
lethosor 38051a5a48 remove tweak manager-quantity 2016-05-11 17:51:57 -04:00
lethosor b53f829737 Update to 0.43.01-alpha0 and update xml 2016-05-10 17:48:50 -04:00
lethosor c1e44c178f Add on_click/on_rclick handlers to widgets.Label
Closes #919
2016-05-09 21:30:34 -04:00
lethosor 402a96b0e6 Expose new unit functions to lua and add some basic safety checks 2016-04-23 21:52:50 -04:00
lethosor bc7c689d93 update xml 2016-04-23 20:33:03 -04:00
lethosor 52728babd4 Merge branch 'develop' into zone-unassign 2016-04-22 18:41:15 -04:00
lethosor b36193857c Add string:startswith(), endswith() 2016-04-16 17:13:41 -04:00
lethosor 0d37209063 use trade_state enum 2016-04-13 09:44:57 -04:00
Warmist 7c91b8f755 Add more informative focus_path
This with conjunction of changes in eventful will make the sidebar overlay more bug-free :)
2016-04-10 16:53:18 +03:00
Warmist 8b8ce4eff9 Spelling mistake 2016-04-10 15:45:43 +03:00
Warmist d1c45d00d2 Fix some bugs in workshopOverlay
Fix bugs relating to "remove building"/"suspend remove" part of overlay.
2016-04-10 14:44:09 +03:00
Warmist 80521d1bb1 add onGetSelectedBuilding to workshop overlay
This will make other stuff that depends on dfhack.gui.getSelectedBuilding work with workshop overlay
2016-04-10 12:28:15 +03:00
lethosor 49863a9f32 Add a file-like lua JSON wrapper 2016-04-08 17:40:14 -04:00
lethosor b97d33ca28 moveToBuilding improvements
- Don't set in_building by default when use_mode is 0 (consistent with most vanilla DF items)
- make use_mode optional and default to 0 (including in Lua API)

Resolves #885
2016-04-05 11:43:02 -04:00
lethosor d9e368cab4 Update xml 2016-04-03 21:10:02 -04:00
lethosor e0ae7bde79 Add Lua primitives: ptr-string, pointer, ptr-vector, bit-vector, bit-array
These are most useful with df.reinterpret_cast, but df.new can also be used for
most of these (except ptr-string)
2016-04-03 20:48:57 -04:00
lethosor 37c81df21c Add reverse vtable name lookup 2016-04-03 20:45:44 -04:00
lethosor a49f313f84 update xml 2016-04-03 13:34:52 -04:00
lethosor ec5e91bd6a Update xml 2016-03-28 21:00:27 -04:00
lethosor b115fdc73f Load script paths from dfhack-config/script-paths.txt 2016-03-27 15:56:23 -04:00
lethosor 866d31f121 Update xml 2016-03-26 11:12:06 -04:00
lethosor af4a3428a6 Split DataStaticsFields into multiple compilation units 2016-03-22 17:34:25 -04:00
lethosor b8bbf5f545 field_offset: Use actual type instances instead of reinterpret_cast(type, 1)
ui_build_selector is a virtual class as of 0.42.06, so reinterpret_cast-ing it
with bad addresses will crash. 'df.new(df.ui_build_selector)' works just fine.
2016-03-22 17:27:53 -04:00
Japa a3ddc63836 Merge branch 'develop' of https://github.com/DFHack/dfhack into develop
Conflicts:
	plugins/remotefortressreader.cpp
2016-03-20 16:30:49 +05:30
lethosor e505bf0a58 Update xml 2016-03-18 17:05:59 -04:00
lethosor 76793045a9 Only block keyboard events in OS X SDL_PollEvent hook without focus
Blocking all events causes issues with window manager controls when the window
is not focused - for example, DF doesn't resize certain screen buffers, leading
to flickering in OpenGL print modes.
2016-03-13 10:33:25 -04:00
expwnent f8ff447cb5 Add a check to the histfig fix and tweak NEWS. 2016-03-10 08:50:03 -05:00
expwnent fd132d3fe7 Fix persistent histfig crashbug. 2016-03-10 08:38:55 -05:00
lethosor cbb4275a44 Update xml 2016-03-09 14:54:24 -05:00
sv-esk dd9f1bf759 make world friend of machine and building handlers to allow use their
protected constructor
2016-03-09 13:03:16 +02:00
lethosor c700847bcf Remove a couple unneeded includes 2016-03-04 20:23:00 -05:00
lethosor c595f7908a Update xml 2016-03-04 20:22:09 -05:00
sv-esk 9da79544de fix Units::isCitizen
fixes a lot of issues where plugins ignore non-dwarf citizens and work
with dwarf mercenaries and bards, where it shouldnot
2016-03-04 22:48:33 +02:00
lethosor 8eb39cc1d0 Merge branch 'develop' of https://github.com/dfhack/dfhack into develop 2016-03-03 23:19:03 -05:00
lethosor 0db3c72557 Update xml 2016-03-03 23:18:36 -05:00
sv-esk d508028bcc fix job-duplicate (do not clone posting_index)
if job cannot be done right now, game puts it in df.global.world.job_postings
when job finally can be done, game removes job from postings and clears posting_index
that index should not be cloned by job-duplicate(new jobs(added by vanilla way) have that value -1 always anyway)
cloning posting_index into the new job causes that job to be ignored
2016-03-03 21:32:16 +02:00
lethosor 5334bd8a6a Bump version to 0.42.06-alpha0 and update xml 2016-02-28 11:18:27 -05:00
lethosor 5bb19a230f getKillCount: also search kills->events 2016-02-25 15:34:56 -05:00
lethosor 25507a10f9 Add Units::getKillCount() and expose it to Lua 2016-02-25 15:21:14 -05:00
lethosor 3e44aabf12 Expose Units::getSquadName to lua 2016-02-25 15:19:35 -05:00
lethosor 297bbd6f20 Merge remote-tracking branch 'warmist/develop' into develop (closes #772) 2016-02-24 17:24:03 -05:00
sv-esk 83c70ccb0f forbid manipulator editing non-citizens 2016-02-11 13:31:52 +02:00
lethosor fafe1e9ce1 Update xml 2016-02-03 23:19:41 -05:00
Warmist d4988c5faf Add no handler version of lua event. 2016-02-01 22:22:12 +02:00
James Gilles 0a670bb0db Implement #804, move some functions to Units, colorize zone output, a
little cleanup
2016-02-01 11:12:06 -05:00
lethosor 2d23a848cc git-describe: Add git xml information 2016-02-01 10:30:53 -05:00
lethosor 77466f01e0 Merge remote-tracking branch 'BenLubar/benlubar-valgrind' into develop 2016-01-31 14:52:04 -05:00
lethosor 248331a196 buildingplan: Support floodgates, grates, bars
See #808
2016-01-31 14:50:07 -05:00
Ben Lubar ea9261f5b5 allow dfhack to run inside valgrind
valgrind replaces the readlink system call, but not the open system
call. By calling readlink first, we guarantee that /proc/self/exe is the
actual Dwarf Fortress executable and not the valgrind executable.

See also: https://bugs.kde.org/show_bug.cgi?id=86921
2016-01-31 13:34:07 -06:00
lethosor 80fd2270db Merge branch 'develop' of https://github.com/dfhack/dfhack into develop 2016-01-31 14:22:57 -05:00
Ben Lubar a316dfa074 set floodgate flags correctly when allocating it in lua or c++
https://github.com/DFHack/dfhack/blob/0.42.04-alpha2/plugins/ruby/building.rb#L63
2016-01-29 14:50:50 -06:00
lethosor 80ecbbd369 get rid of "private" comment in BitArray.h 2016-01-21 16:49:16 -05:00
Ben Lubar 675d173266 set civzone number when constructing a civzone 2016-01-18 14:46:39 -06:00
lethosor 0b2ba377be Update xml 2016-01-18 11:49:37 -05:00
lethosor ab8cce2a86 Update xml 2016-01-18 10:13:16 -05:00
lethosor 0bcc8dc443 exportlegends: fix day/month issues more reliably
Fixes #783, #791
2016-01-09 19:28:12 -05:00
lethosor d670ee8ab4 New tweak: block-labors
Prevents labors that can't be used from being toggled

Suggested at http://www.bay12forums.com/smf/index.php?topic=121451.msg6719464#msg6719464
2016-01-08 19:27:11 -05:00
lethosor 93fe222c35 Revert #719
No plugins built prior to the symbol naming change in 4fc6cb6f can
be loaded in DFHack for v0.42.
2016-01-01 11:20:54 -05:00
lethosor d0c28d3f50 Prevent plugins with active viewscreens from being unloaded
This requires plugins to pass plugin_self to Screen::show(), but
avoids the need to implement special checks in plugin_onstatechange
for the SC_BEGIN_UNLOAD event.
2016-01-01 11:15:29 -05:00
lethosor ef62c044a3 Update NEWS, xml 2016-01-01 10:30:02 -05:00
lethosor 31745f4a36 Fix a couple exportlegends issues and update xml 2015-12-31 14:32:31 -05:00
lethosor 090787e927 Update xml 2015-12-31 13:41:46 -05:00
lethosor 2079093d5a Fix new addresses in export-dt-ini 2015-12-28 23:19:02 -05:00
lethosor 22283066ca Update xml 2015-12-28 17:30:05 -05:00
lethosor 39086acf64 Merge export-dt-ini changes from splintermind/Dwarf-Therapist 2015-12-28 15:46:42 -05:00
lethosor c23ac50250 Always run dfhack.init-example if dfhack.init doesn't exist
This previously only happened if no files matching *dfhack*.init
existed
2015-12-27 16:39:10 -05:00
lethosor e075a06486 Add search controls to all viewscreen_petst subpages 2015-12-27 15:49:10 -05:00
lethosor d087f4f741 Expose process MD5/PE to Lua (useful in export-dt-ini) 2015-12-27 14:59:18 -05:00
lethosor a977f274b1 Update xml 2015-12-26 20:00:09 -05:00
lethosor fabff1ddfb Fix df::occupation usage 2015-12-26 19:59:54 -05:00
lethosor 5263d425a2 Merge remote-tracking branch 'BenLubar/benlubar-init-args' into develop 2015-12-26 13:47:58 -05:00
Ben Lubar 106891f6e0 vim-style +-args. for example, "./dfhack +echo foo" would be equivalent to running ./dfhack and then typing "echo foo" into the console. uses shell argument splitting, so "./dfhack +somecommand 'foo bar' baz" does the right thing. See DFHack#755. 2015-12-26 12:10:44 -06:00
lethosor 9a82f59518 Merge remote-tracking branch 'BenLubar/benlubar-init-args' into develop 2015-12-26 11:49:45 -05:00
lethosor 05926d9734 New tweak: title-start-rename
Adds a safe rename option to the title screen "Start Playing" menu
2015-12-26 11:47:58 -05:00
lethosor 64d861bf6b Add support for viewscreen_locationsst to various gui functions 2015-12-25 11:09:13 -05:00
lethosor 25e808be38 Update xml 2015-12-23 17:45:08 -05:00
lethosor e3e68a8df9 Add a search option to the location occupation menu 2015-12-23 16:57:43 -05:00
lethosor 14f1e6b06c Improve prerelease warning somewhat 2015-12-22 19:34:54 -05:00
lethosor 2a2ab00ca9 Add "map" parameter to a lot of drawing functions
Ref #746
2015-12-22 11:42:51 -05:00
lethosor 10c72a3d5d Fix produce() call in modules/Items.cpp 2015-12-22 09:46:01 -05:00
lethosor e4ff4fe64c Update xml 2015-12-22 09:43:17 -05:00
lethosor ef27018545 Update xml 2015-12-20 15:19:32 -05:00
lethosor eeb0fc7a0f update xml 2015-12-19 23:12:26 -05:00
lethosor eb1ae54d63 Add ui_lever_target_type scan to find-offsets 2015-12-19 17:09:29 -05:00
lethosor ea79fc692a Update xml 2015-12-19 11:07:42 -05:00
lethosor 5a1e5e1464 Expose Units::casteFlagSet() 2015-12-19 11:07:35 -05:00
lethosor ca29f60518 update xml 2015-12-18 23:09:27 -05:00
lethosor 55d5706a21 Update structures and fix various issues with plugins producing items
reaction_product::produce() takes a new unidentified vector<void*>*.
Passing a reference to an empty vector appears to work.
2015-12-18 18:40:11 -05:00
lethosor 347a112aa1 Add support for 11-argument function wrappers
Needed by item::addImprovementFromJob() as of 0.42:
dfhack/df-structures@f6361e2
2015-12-18 17:45:23 -05:00
Ben Lubar 9bccf457c5 Check for ui_sidebar_menus being null before using it. 2015-12-17 10:54:19 -06:00
Ben Lubar 80ec5ab043 vim-style +-args. for example, "./dfhack +echo foo" would be equivalent to running ./dfhack and then typing "echo foo" into the console. uses shell argument splitting, so "./dfhack +somecommand 'foo bar' baz" does the right thing. See DFHack#755. 2015-12-13 14:03:25 -06:00
lethosor 78d6b92127 Change strangemood permitted skill checks to job checks
permitted_skills was removed in 0.42 (dfhack/df-structures@6e2e8731)
2015-12-12 11:17:00 -05:00
lethosor 1329acc516 Update xml 2015-12-11 20:34:48 -05:00
lethosor 83603fcf45 Add prerelease build flag and warning script 2015-12-11 20:27:46 -05:00
lethosor 571df39878 Update submodules 2015-12-11 16:35:42 -05:00
lethosor 7e9d6fba86 Update xml 2015-12-09 20:03:14 -05:00
lethosor 448e367d4d Update xml 2015-12-08 17:32:13 -05:00
lethosor a3d6d16757 Update xml 2015-12-07 17:14:46 -05:00
lethosor 02d2405d1f Update xml 2015-12-07 16:34:47 -05:00
lethosor 49ad153d4b Update xml 2015-12-06 17:12:46 -05:00
lethosor 3b2ace95f8 Make SDL_UpperBlit hook check core status first 2015-12-05 20:07:54 -05:00
lethosor b63270162d Update xml 2015-12-04 23:12:49 -05:00
lethosor 7a69b90277 Update xml 2015-12-02 16:27:51 -05:00
lethosor 8b406cc0b3 Make a separate copy of DF's SDL library to link against on OS X
Linking to any library with ".framework" in its path on OS X causes
that directory to be included in the include path (with -F), which
causes all of the DFHack core to be rebuilt unnecessarily when
changing DF folders.
2015-12-01 17:35:39 -05:00
lethosor 2aeac718cc workflow: Account for job postings correctly and fix existing issues
Without removing postings correctly, it was possible to end up with
multiple workers assigned to a job that workflow had suspended
multiple times, which caused crashes if more than one worker was
assigned to the same job by DF.

This adds an additional command, fix-job-postings, that runs
automatically when loading a world and fixes:
- Multiple job postings that point to the same job
- Job postings that point to a job where posting_index == -1
  (i.e. jobs that should have no posting assigned)

Fixes #741
2015-11-25 20:33:13 -05:00
lethosor df4fb70be2 Provide more suggestions for unrecognized commands 2015-11-25 20:22:14 -05:00
lethosor 610170b0b0 Add hooks for getDwarfmodeViewDims and getDepthAt (new) 2015-11-15 11:54:34 -05:00
lethosor 1ff9277e12 Remove plugin export functionality (unused) 2015-11-15 11:54:34 -05:00
lethosor fcfffd1cb6 Track state of gui hooks
Also fix a bug in drawborder() and expand color-dfhack-text to test
multiple hooks
2015-11-15 11:54:34 -05:00
lethosor fff9072b07 Add initial support for hooking into Gui-related functions 2015-11-15 11:54:34 -05:00
lethosor 875ecf7827 Update Core::top_viewscreen before calling state change handlers
This was previously done right before SC_VIEWSCREEN_CHANGED events
were handled, meaning that code handling earlier events that used
top_viewscreen (rather than getCurViewscreen()) could refer to an
invalid viewscreen, i.e. in the tick after it was deleted.

Fixes #747
2015-11-14 21:48:51 -05:00
lethosor 2882422a3e Don't require short script help to start with a space
Ref #742
2015-11-09 22:58:46 -05:00
lethosor 3fb2628921 Add a Lua implementation of next_enum_item() 2015-11-07 15:22:30 -05:00
lethosor 051244c8d6 Fix GCC compile error 2015-11-06 20:05:14 -05:00
lethosor d1cd5df314 Merge remote-tracking branch 'DoctorVanGogh/automats-floorfix' into develop 2015-11-06 19:54:06 -05:00
DoctorVanGogh e9be1aa657 Fix for construction over existing construction & on top of walls
Fix to allow constructions on top of (natural) down stairs
2015-11-06 19:00:43 +01:00
lethosor 867b733a04 Fix a few GCC warnings on Linux (GCC 4.6) 2015-11-05 21:48:13 -05:00
lethosor 8412a496dd Remove extra check for "type" command 2015-11-05 19:09:14 -05:00
lethosor 23b02ebcf2 Update xml 2015-11-05 16:17:52 -05:00
lethosor e2a1658124 Update xml 2015-11-04 21:42:04 -05:00
Lethosor 14707e7d81 Merge pull request #719 from DoctorVanGogh/r3compat
Allow loading (external) plugins compiled against r3
2015-10-31 19:12:07 -04:00
DoctorVanGogh c6220c9703 Remove tabs/trailing whitespaces 2015-10-31 23:43:57 +01:00
Lethosor 6e5d9c23e5 Merge pull request #715 from DoctorVanGogh/webfix
Add 'undisturbed' flag to job item checks
2015-10-31 11:28:25 -04:00
lethosor 7da3c65079 Fix display of arrows in lua filtered list widgets
Fixes #718
2015-10-30 19:16:29 -04:00
lethosor 83991d2a22 plug: Don't color loaded plugins 2015-10-30 18:45:55 -04:00
lethosor ac71fa8070 Add isValidLabor() to Units module
Closes #711 and could avoid potential issues when editing units from
other civs with manipulator.
2015-10-30 18:41:09 -04:00
lethosor 1250bb5204 type: Provide more useful information (script paths, plugin names) 2015-10-27 17:34:32 -04:00
DoctorVanGogh 4e0f426bba Fix code formatting 2015-10-26 02:37:44 +01:00
DoctorVanGogh ba53f3c035 Add 'undisturbed' flag to job item checks 2015-10-26 02:19:41 +01:00
DoctorVanGogh fb4d16f477 Enable loading of r3 plugins 2015-10-25 00:04:49 +02:00
lethosor 8de710f1c1 Add Renderer module - safer way to install custom renderers 2015-10-21 17:18:39 -04:00
lethosor c44ac8ec6e Improve handling of fatal errors and errors in dfhack.lua
* Several fatal errors that occurred during core initialization didn't
  stop initialization or set 'errorstate' properly, which caused
  update hooks and other code to crash later. This has been fixed and
  should address crashes like the one mentioned in #470.
* Errors when loading dfhack.lua now cause Lua::Open() to fail, which
  triggers a fatal error in Core::Init()
* Failure to initialize the console no longer results in a call to
  fatal() (since it didn't actually stop initialization previously)
2015-10-17 21:18:04 -04:00
lethosor 5387c03ea0 DFHackVersion: Expose whether the built commit is tagged 2015-10-17 15:35:40 -04:00
lethosor d3dbc6225a Implement getViewscreenByType() in lua 2015-10-17 15:11:04 -04:00
lethosor 96df70fe0b Use TCSADRAIN when disabling raw mode as well 2015-10-14 15:58:27 -04:00
lethosor 632a809d6f Update xml 2015-10-11 11:39:16 -04:00
lethosor c2267013b4 plug: List enabled state 2015-10-03 13:42:20 -04:00
lethosor 3f5c002634 Pass virtual_identity by reference 2015-10-03 09:27:24 -04:00
lethosor d343dfd8a0 Add a function to find viewscreens (or parents) of a given type
This makes it possible for some plugins to detect the game state more
reliably - for example, prospector would previously fail when
embarking if the viewscreen_choose_start_sitest instance had any
children.
2015-10-02 21:50:55 -04:00
expwnent e95aea90e0 Fix CMake warning over INTERFACE_LINK_LIBRARIES / policy CMP0022. 2015-09-27 04:30:46 -04:00
lethosor b16e59b91c Check for existence of save folder before attempting to log events
cur_savegame.save_dir can be populated when the save directory does
not yet exist after world generation (since the game can be aborted
at that stage without saving).
2015-09-26 14:26:44 -04:00
lethosor fa60ccdd52 Don't find scripts from the last loaded world's raw/scripts folder 2015-09-26 14:26:13 -04:00
lethosor b679a0c482 Update xml 2015-09-26 13:45:51 -04:00
lethosor 2bcf74d74c Merge branch 'develop' of https://github.com/dfhack/dfhack into develop 2015-09-26 10:46:45 -04:00
lethosor ec17685041 CMake: Add compiler checks and GCC version checks 2015-09-26 10:46:29 -04:00
expwnent dfe9ec90f2 Update XML. 2015-09-25 19:43:14 -04:00
expwnent a188b9d567 Merge branch 'third-party-scripts' into develop 2015-09-25 17:48:25 -04:00
expwnent 5bcff42800 Add third party scripts. 2015-09-23 23:46:26 -04:00
lethosor 788860efb6 Log more information about version information on startup
May help address #653
2015-09-22 20:01:05 -04:00
lethosor 91a1836439 Fix a few issues with init file variations
* GCC does not allow std::string instances or enums without a base
  type to be passed as varargs
* Fixed path concatenation issue causing dfhack.init to not be loaded
2015-09-21 18:57:58 -04:00
expwnent 2c9b268184 Merge pull request #689 from expwnent/develop
Generalize dfhack.init so it looks for more files in more places, for onload, onunload, etc.
2015-09-21 17:33:52 -04:00
expwnent af90d14cb2 Use shenanigans to make a certain table const. 2015-09-21 17:24:51 -04:00
lethosor 051a1f9661 Update xml 2015-09-19 18:00:59 -04:00
lethosor a56a427d12 Make Filesystem::is* functions handle nonexistent paths properly
If stat() failed, these functions could read from an uninitialized
stat struct and return "true" for paths that didn't exist.
2015-09-19 17:34:58 -04:00
expwnent 5bf3093139 Now it looks for dfhack*.init instead of just dfhack.init, onLoad*.init instead of just onLoad.init, etc. 2015-09-15 07:27:42 -04:00
lethosor d696832efa Merge branch '3rd-party-scripts' into develop 2015-09-14 16:52:13 -04:00
lethosor 9eb86c7e38 Support additional script search paths
These can currently be added/removed from C++ or through the Lua API.
2015-09-06 16:23:02 -04:00
lethosor 66c7a461fd Don't attempt to copy non-files into dfhack-config 2015-09-03 15:02:51 -04:00
lethosor 9eac4585b1 keybinding: support 0-9, F10-F12 2015-09-02 15:56:53 -04:00
lethosor 949e4d42cf Remove MacPool.* 2015-08-29 19:42:32 -04:00
lethosor 906fba9b54 Update xml 2015-08-26 16:41:04 -04:00
lethosor 81ef17df32 Update xml 2015-08-25 10:23:59 -04:00
lethosor 29a0aee44c Implement strnlen on OS X <= 10.6
Fixes #182
2015-08-24 17:51:42 -04:00
lethosor 19f966aefc Improve some plugin-related error handling 2015-08-16 17:28:31 -04:00
lethosor 5717c2cdd4 Don't set plugin state to PS_BROKEN due to load failures 2015-08-16 17:02:53 -04:00
lethosor a5f15b279c plug: Include deleted plugins in full list 2015-08-14 19:32:41 -04:00
lethosor 735498c3f9 Fix merge conflict 2015-08-14 16:23:39 -04:00
lethosor 4fc6cb6f17 Several PluginManager improvements
* load/unload/reload are no longer restricted to plugins that exist
  on startup
* Names passed to DFHACK_PLUGIN must match the plugin's filename
  (remotefortressreader vs RemoteFortressReader, counters vs probe)
* "plug" output lists all plugins and state/command information
* Deleted plugins can be reloaded again if they are replaced
* load/unload/reload don't fail silently with broken plugins
* Built-in commands are recognized internally (e.g. "help help"
  does not display "help is not a recognized command"), although help
  for them is not yet implemented
* New command: "type" (bash-like) - shows where/how a command is
  implemented
* "plug" can accept multiple plugin names
* "ls" displays more information about unloaded/unrecognized plugins
* "load all" changed to "load -all" (or "load --all", "load -a", ...)
2015-08-14 16:11:23 -04:00
lethosor 1bf3a6a37a Update xml 2015-08-14 10:46:05 -04:00
lethosor 2aba2da56d Avoid DataStaticsFields dependency on PluginManager.h 2015-08-11 22:59:19 -04:00
lethosor 9c84c78129 Make lua listdir functions return useful error messages 2015-08-10 12:44:27 -04:00
lethosor d09cdc83ba Update xml 2015-08-10 11:25:15 -04:00
lethosor dc747d59df Link dfhack-md5 on Windows 2015-08-09 13:20:28 -04:00
lethosor 418d2831ef Add a framework for including 3rd-party script repos
Repos need to include a CMakeLists.txt file with calls to the
DFHACK_SCRIPTS macro, which functions similarly to DFHACK_PLUGIN.

The `open-legends` script from lethosor/dfhack-scripts is included
as an example.
2015-08-06 21:50:01 -04:00
lethosor f46d3d137f Allow multiple contexts to be specified when adding keybindings 2015-08-06 20:41:54 -04:00
lethosor afce8d810b Update xml 2015-08-06 17:32:42 -04:00
lethosor de49befdbb Improve version information
* Add reimplementations of old DFHACK_VERSION-style macros
* Expose full git commit ID
* Expose all DFHack::Version functions to Lua
2015-08-06 17:30:51 -04:00
lethosor a67326ad00 git-describe: always use long format 2015-08-06 17:01:11 -04:00
lethosor d02e67267a Replace jsonxx with jsoncpp 2015-07-29 15:50:33 -04:00
lethosor cc5045d6df Fix Alt-E/U/N bindings on OS X 2015-07-29 10:32:19 -04:00
lethosor f387eb2960 Fix an issue where Ctrl-*-A and Ctrl-*-Z keybindings were not properly detected 2015-07-29 09:35:09 -04:00
lethosor 786086e5c5 Make non-CR_OK return values for SC_BEGIN_UNLOAD events abort unload
Returning CR_FAILURE, for example, is more consistent with
plugin_shutdown().
2015-07-28 18:36:20 -04:00
lethosor e51779b08c Update xml 2015-07-27 21:40:04 -04:00
lethosor 7eb4c33cb1 Cache result of getPath() on darwin 2015-07-27 20:32:33 -04:00
lethosor 03aa2399a0 Add environment variables to skip global and vtable initialization 2015-07-23 23:25:01 -04:00
lethosor 27295a9b6f Log DFHack and save-specific information on world (un)load events 2015-07-23 23:24:00 -04:00
lethosor c34e9bb657 Update xml 2015-07-22 17:27:57 -04:00
lethosor fc094e2dbc OS X: Check for existence of SDL.framework before building 2015-07-21 16:26:41 -04:00
lethosor 83f89480aa Update xml 2015-07-18 14:10:53 -04:00
lethosor 22ea68e68a Use is_valid_enum_item in FOR_ENUM_ITEMS
This is part of the workaround for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43680

Fixes DFHack/dfhack#654
Fixes JapaMala/armok-vision#21
2015-07-18 12:57:12 -04:00
lethosor 74404c62e7 Fix deadlock when aborting plugin load 2015-07-17 16:00:41 -04:00
lethosor 797e9b4485 OS X: Prevent DF window from receiving input when not focused
This partially fixes DFHack/stonesense#32, in the sense that input
to Stonesense is no longer received by DF, but does not cause
Stonesense to receive input either.
2015-07-17 13:49:17 -04:00
lethosor 2afc1c6d3f Update xml
viewscreen_choose_start_sitest fixes
2015-07-17 13:48:49 -04:00
lethosor 527b17d964 Update submodules 2015-07-04 20:45:37 -04:00
lethosor 95e04ef56a Update xml 2015-06-30 16:10:49 -04:00
lethosor 6cfc855e19 Use getcwd() in Process::getPath() on OS X
The "dfhack" script sets up the proper working directory
2015-06-29 10:11:46 -04:00
lethosor 0f3753095b update xml 2015-06-29 10:10:44 -04:00
lethosor 716ce1c9e2 Update xml 2015-06-26 23:20:59 -04:00
lethosor 935f4dd628 Log plugin load information to stderr 2015-06-26 16:11:41 -04:00
lethosor 5d1ae9f5ed Allow plugins without git description to be loaded 2015-06-25 11:46:04 -04:00
lethosor 524593a3d3 Locate git with find_package 2015-06-25 11:43:54 -04:00
lethosor ee7a2c7db7 Add git commit information to libdfhack-version
git is run every time 'make' is run, but the generated include file
is only updated when necessary. Plugins will be loaded successfully
if their DFHack version matches core's (assuming OpenLibrary()
succeeds), but will produce a warning if their git commit doesn't
match core's.
2015-06-24 19:32:45 -04:00
lethosor 0fa5570349 Recognize newline characters in Linux/OS X console 2015-06-24 00:54:12 -04:00
lethosor f3d91b3606 Update xml 2015-06-22 23:16:28 -04:00
lethosor 5bb5d87ad8 Install default dfhack-config files
Files from the "dfhack-config" source directory are now installed to
"dfhack-config/default" and copied to "dfhack-config" on startup if
they don't already exist. Previously, config files weren't available
at all unless they were manually installed (93c9a41).
2015-06-18 08:59:01 -04:00
lethosor 73de6a3051 Update xml 2015-06-15 12:58:49 -04:00
lethosor 6fb6645ed5 Merge branch 'dwarfmonitor-widgets' into develop 2015-06-15 12:55:26 -04:00
lethosor 862389d217 Allow lua scripts to redirect to other lua scripts
Addresses #634, #638
2015-06-14 11:56:14 -04:00
lethosor 93c9a41a3a Reimplement dwarfmonitor widgets in Lua (and improve customizability)
Widget positions and a few other options (e.g. date formats) can be
specified in dfhack-config/dwarfmonitor.json on a per-instance basis.

Related changes:
* Fixed an issue loading JSON files from Lua
* JSON files in dfhack-config (only dwarfmonitor.json currently) are
  no longer copied into the DF directory when building DFHack. This
  keeps developers' personal settings intact, but will require
  copying over changes made to DFHack's copies manually.
* Fixed incorrect config path in dwarfmonitor help
2015-06-13 21:15:43 -04:00
lethosor d663784707 Detect null unit pointer in Items::createItem() 2015-06-09 14:02:42 -04:00
lethosor bb93f2e40f Fix circular lua script dependencies 2015-06-05 19:08:11 -04:00
lethosor 36fde3d7e3 Allow Lua screens to allow OPTIONS to work 2015-06-05 18:45:52 -04:00
lethosor 96f3bdafb4 Implement an internal command to interrupt running Lua scripts
This inserts a debug hook that runs every 256 instructions by
default, which has a minimal impact on performance.
2015-05-24 19:06:01 -04:00
lethosor e27493fa02 Treat plugins without a "plugin_dev" symbol as ordinary plugins 2015-05-24 11:42:22 -04:00
lethosor 6278c94775 Update xml 2015-05-16 14:27:17 -04:00
lethosor db08df7e50 Update xml 2015-05-09 19:41:19 -04:00
lethosor b6ec48c99a Add a macro that allows exported functions to use different names 2015-05-09 09:42:15 -04:00
lethosor a8f5e683f7 Merge remote-tracking branches 'RossM/autolabor-changes', 'RossM/workflow-changes' and 'lethosor/plugin-exports' into develop 2015-05-09 09:39:55 -04:00
lethosor a47a5f8b0a Add an alternative to script_environment() that requires scripts to
recognize use as a module

Also document the use of enable/disable with lua scripts
2015-05-09 09:21:00 -04:00
lethosor 42a6cfaee6 Improve Lua enable/disable error handling 2015-05-08 18:03:19 -04:00
lethosor eaf282c18e Allow lua scripts to be enabled and disabled with built-in commands 2015-05-08 18:03:19 -04:00
lethosor db423c1aa6 Allow Lua scripts to specify whether they can be used as a module or
enabled/disabled
2015-05-08 18:03:18 -04:00
lethosor e73a2f8778 Move script internals to a single table 2015-05-08 18:03:18 -04:00
Ross Morgan-Linial 51d61d91cb Change tabs to spaces. 2015-05-07 20:50:19 -07:00
Ross Morgan-Linial 7aac9a8fb8 Improve workflow handling of plant reactions
Makes workflow understand "seeds of any plant", "thread of any plant",
"drink of any plant", "powder of any plant", and "liquid of any plant"
when counting items.

Changes workflow's handling of the built-in plant reactions to
understand that they always produce plant products, and that they also
produce seeds.

This means that you can set a target for, for example, "powder of any
plant", and workflow will use a milling job to produce that.
2015-05-07 20:49:29 -07:00
lethosor a4a2b2f1de Use TCSADRAIN instead of TCSAFLUSH when initializing raw mode 2015-04-19 11:58:35 -04:00
lethosor 3ca00f85d0 Merge remote-tracking branch 'lethosor/json' into develop 2015-04-08 20:18:13 -04:00
lethosor 62cfd0b8ca Reset DYLD_INSERT_LIBRARIES on startup on OS X
This prevents subprocesses (e.g. those launched with Lua's os.execute)
from attempting to load libdfhack.dylib and aborting due to an
architecture mismatch.
2015-04-06 17:05:36 -04:00
lethosor 4b124bc022 Avoid including DFHackVersion.h in PluginManager.h
Changes to DFHackVersion.h previously required recompiling nearly all
of the DFHack core.
2015-04-03 14:02:14 -04:00
lethosor 7758311f88 Make gametype functions use default arguments when called from Lua 2015-04-02 16:55:27 -04:00
lethosor 786581689f Move get_dfhack_version() to a separate namespace and add a few other version-related functions 2015-04-02 16:37:58 -04:00
lethosor 9b6d8d2799 Allow dev plugins to be skipped on startup 2015-04-01 17:50:22 -04:00
lethosor 8b5b8ed864 Log command name collisions 2015-04-01 17:32:11 -04:00
Lethosor e71c55865d Merge pull request #591 from lethosor/penarray
Expose a faster screen drawing/caching API to Lua
2015-03-31 16:11:28 -04:00
lethosor 331be2b589 Make "keybinding list" accept a context
See #588
2015-03-30 19:03:16 -04:00
lethosor bbb41078e7 Expose PenArray dimensions and tiles to Lua 2015-03-28 18:35:07 -04:00
lethosor e2b6ae9beb Allocate Lua PenArray objects using an existing buffer 2015-03-28 11:27:47 -04:00
lethosor 99f4ea4d2b Implement a PenArray class for caching parts of rendered screens 2015-03-27 22:56:30 -04:00
lethosor ac2f537bf4 Merge branch 'async-zoom' into develop 2015-03-26 19:41:02 -04:00
Lethosor ee16c6d1ab Fix "delete" in console on OS X/Linux 2015-03-25 23:31:23 -04:00
lethosor 7f98a632ce Update xml 2015-03-25 17:58:00 -04:00
lethosor 01c6d05775 Add custom enabler::zoom_display() method (screen.zoom in Lua) 2015-03-25 17:55:56 -04:00
lethosor 42e4f584b9 Add SDL_SemWait and SDL_SemPost hooks 2015-03-25 16:08:25 -04:00
lethosor 38fa416ad1 Lua: Indent array values 2015-03-22 14:04:03 -04:00
lethosor 96e5c5d2fd Fix whitespace 2015-03-20 19:55:32 -04:00
lethosor b976053be0 Add Lua JSON library 2015-03-20 19:51:24 -04:00
lethosor f3508f82c1 Add jsonxx to depends/ 2015-03-20 15:45:38 -04:00
lethosor 625be319c9 Re-enable memory range logging on OS X if an environment variable is set 2015-03-19 19:37:10 -04:00
Lethosor 3639920a50 Merge pull request #575 from lethosor/game-type
Add gametype checks to World module
2015-03-13 22:25:37 -04:00
lethosor 016f67e83f Expose strerror to Lua 2015-03-10 16:32:43 -04:00
lethosor afca7419dc Add gametype checks to World.cpp 2015-03-09 20:08:21 -04:00
lethosor ea1c9fa0df Allow plugin exports to be defined in plugins (and looked up when needed) 2015-03-07 17:25:35 -05:00
lethosor 1570af3f4d Allow plugins to export additional functions through a class 2015-03-07 15:56:43 -05:00
lethosor 1591e67bf2 Replace backslashes with forward slashes in command names 2015-03-06 16:53:57 -05:00
lethosor 0c09feae5b Prevent backslashes from being used in command names 2015-02-27 18:46:29 -05:00
lethosor 45acf61b17 Update xml 2015-02-26 16:12:12 -05:00
lethosor 88ff51c755 Add PushEvent hook on OS X
See #553
2015-02-21 21:28:35 -05:00
lethosor bd809d7bbc Replace most interposed functions with dlsym wrappers on OS X 2015-02-21 21:28:35 -05:00
lethosor db9bcc27e4 Make plugin load errors more descriptive 2015-02-21 21:28:35 -05:00
lethosor 0f77a1a578 Move DFHack version to a separate (static) library
This allows the DFHack version to be changed without recompiling
everything
2015-02-19 12:08:23 -05:00
lethosor c80fbbc397 Remove AS prefixes from add-spatter.cpp
The actual cause of this crash was fixed in #558

See #205
2015-02-19 12:05:32 -05:00
lethosor c399377f08 Ensure that command usage information always ends with a newline 2015-02-16 20:17:47 -05:00
lethosor b7f15ef2d6 Update xml, stonesense for 0.40 ui_advmode_menu changes
Closes #552
2015-02-16 19:10:15 -05:00
lethosor 10cfef0553 Fix whitespace issues 2015-02-14 22:53:06 -05:00