Commit Graph

3777 Commits (b77e896041fca4d557e333cd73c05dc36c9d0449)

Author SHA1 Message Date
Ryan Williams ad1a3408e6 Hopefully fix submodules 2022-06-06 01:41:17 -07:00
DFHack-Urist via GitHub Actions 7b2cb8f9a6 Auto-update submodules
library/xml: master
2022-06-05 07:16:27 +00:00
Ryan Williams ce36abce47
Fixes 2022-06-04 15:46:02 -07:00
Ryan Williams ae4446610b
Update Gui.cpp 2022-06-04 15:36:50 -07:00
Ryan Williams 16b5cade00
Add constants, update old fns
Add MAX_REPORTS_SIZE, RECENT_REPORT_TICKS

Remove redundant "using df::global::world" inside fns

Update `makeAnnouncement`:
Use `word_wrap`, `pauseRecenter`, and utility fn `delete_old_reports`
Handle repeat announcements
Insert sorted into ``world->status.announcements``

Update `addCombatReportAuto`: Use utility fn `recent_report`

Update `showPopupAnnouncement`: Delete old popups at end of fn

Update `getDwarfmodeViewDims_default`: Check for ui_sidebar_mode::Default and ArenaWeather
2022-06-04 15:23:57 -07:00
Ryan Williams 23e85a0d24 Fetch and merge 2022-06-04 12:17:28 -07:00
Ryan Williams b0b601cf0f
Remove recenterViewscreen, update revealInDwarfmodeMap 2022-06-04 11:59:04 -07:00
DFHack-Urist via GitHub Actions f290b1c804 Auto-update submodules
library/xml: master
scripts: master
2022-06-04 07:16:44 +00:00
DFHack-Urist via GitHub Actions f5d3b9f699 Auto-update submodules
library/xml: master
scripts: master
2022-06-02 04:51:00 +00:00
Myk 89d3d45e87
Allow EditField widgets to manage their own activation and keyboard focus (#2147)
* use new focus subsystem in widgets.EditField

* always eat the enter key if we have an on_submit

* add modal attribute

* give EditFields a default height of 1

so they can be autoarranged
2022-06-01 21:48:21 -07:00
Myk ad2d9cad03
[lua] implement keyboard focus subsystem (#2160)
* implement keyboard focus subsystem

* Fix error in focus group combining

* documentation for the inputToSubviews decision

* modify unit tests to catch that last bug
2022-06-01 17:42:13 -07:00
Ryan Williams bc0def4342
MiscUtils word_wrap: Add option to trim only leading whitespace after wrapping (#2169)
* Update changelog.txt
2022-05-30 22:58:46 -04:00
Ryan Williams b1e118384e Update Maps.cpp 2022-05-30 16:26:30 -07:00
Ryan Williams 574728ac5c
Move add_proper_report up with other utility fns 2022-05-30 15:04:43 -07:00
Ryan Williams 0ff0d272b5
use static instead of anon namespace; suggested changes 2022-05-30 13:51:24 -07:00
Ryan Williams 1c3ea000e1
Trim trailing whitespace 2022-05-28 15:56:49 -07:00
Ryan Williams 249ed2888f
Fix scope issue 2022-05-28 13:28:10 -07:00
Ryan Williams e613085b0e
remove whitespace 2022-05-28 12:39:49 -07:00
Ryan Williams 2b29431806
More fixes
* Use word_wrap()

* add_proper_report utility fn; have addCombatReportAuto use this

* Update Lua API.rst

* Update Gui.cpp
2022-05-28 12:35:49 -07:00
myk002 ea7fe2b926
account for scroll bars when sizing message boxes 2022-05-27 15:38:13 -07:00
Timur Kelman 07f54deb0b
fix wrong `Label.frame_body.x2` value (#2134)
* fix wrong `Label.frame_body.x2` value

`update_scroll_inset` might change `frame_inset`, i.e. we need to `computeFrame` with the new values.

* add tests for Label

* add missing `local`, remove code in comments

* move `TestFramedScreen` outside test functions
2022-05-27 15:25:17 -07:00
lethosor ca10cbc9e6
Merge remote-tracking branch 'lethosor/mock-observe-func' into develop 2022-05-27 01:46:24 -04:00
lethosor 888c531774
Add mock.observe_func(), improve mock.lua documentation
observe_func() is similar to func() but passes through all calls to a specified
function.
2022-05-27 00:33:44 -04:00
DFHack-Urist via GitHub Actions 56b301164f Auto-update submodules
library/xml: master
scripts: master
2022-05-25 07:18:15 +00:00
Ryan Williams 4b21e7afb4
Remove parseReportString from API (now utility fn)
Implementations using `word_wrap()` are commented out pending changes to that function.
2022-05-24 03:52:33 -07:00
myk002 18628ff5b8 make key_sep more configurable
and add more configuration to HotkeyLabel and EditField to take
advantage of it
2022-05-18 16:46:33 -07:00
myk002 53609db1f9 let CycleHotkeyLabels take numeric initial_options
even if all of the option values are non-numeric
2022-05-18 15:39:52 -07:00
DFHack-Urist via GitHub Actions 47b87a5ac1 Auto-update submodules
library/xml: master
2022-05-17 07:18:04 +00:00
Ryan Williams ce34ac8f33
Use debugfilter; remove redundant changelog entries 2022-05-16 18:41:47 -07:00
Ryan Williams 785fe9aa3a fix "info" level described as "error" level 2022-05-14 05:56:57 -07:00
Myk 8f6522899b
Upgrade jsoncpp to 1.9.5 (#2144)
* test jsoncpp upgrade

* use new json library target name

* don't remap the output dirs

* undo warnings at the source

* set new defaults for jsoncpp

* fix typo in new options

* fix signed comparison mismatch warning

* address random(?) compile failures

saying our std::atomic is not initialized in Debug.cpp
2022-05-13 13:52:43 -07:00
DFHack-Urist via GitHub Actions bf8eaef6bc Auto-update submodules
library/xml: master
plugins/isoworld: master
depends/libexpat: dfhack
depends/jsoncpp-sub: dfhack
2022-05-12 05:21:01 +00:00
DFHack-Urist via GitHub Actions 15a11d1a39 Auto-update submodules
library/xml: master
scripts: master
2022-05-10 07:22:46 +00:00
Tim Siegel 55e4008925
MiscUtils: teach word_wrap() to optionally preserve whitespace 2022-05-09 13:42:11 -04:00
Ryan Williams 14afcc2b0a
Merge branch 'develop' into Bumber64-patch-2 2022-05-05 22:58:23 -07:00
myk002 585888c2d3
update version, changelog, modules for 0.47.05-r5 2022-05-04 17:21:31 -07:00
DFHack-Urist via GitHub Actions d4ba946d2b Auto-update submodules
library/xml: master
scripts: master
2022-05-03 07:18:10 +00:00
Ryan Williams 74499ad64a
Use to_string on integer 2022-05-03 00:09:34 -07:00
Ryan Williams 5be0fe2a44
Fix issues, update changelog and docs
Initialize variables in LuaApi.cpp, solve changelog conflicts, hyperlink and escape char info in docs
2022-05-02 23:52:47 -07:00
Ryan Williams 621ccef996
Merge branch 'develop' into Bumber64-patch-2 2022-05-01 23:42:21 -07:00
Ryan Williams f565de88e8
Fix stuff (#4)
* Update Lua API.rst

* Update Gui.h

* Update Gui.cpp

* Update LuaApi.cpp
2022-05-01 22:53:53 -07:00
DFHack-Urist via GitHub Actions 5f1d2a08e4 Auto-update submodules
library/xml: master
scripts: master
2022-05-01 13:33:50 +00:00
DFHack-Urist via GitHub Actions 7120988044 Auto-update submodules
library/xml: master
scripts: master
2022-05-01 07:17:58 +00:00
DFHack-Urist via GitHub Actions 9643246b18 Auto-update submodules
library/xml: master
2022-04-30 19:20:07 +00:00
DFHack-Urist via GitHub Actions e9a2de08cd Auto-update submodules
library/xml: master
2022-04-30 07:17:43 +00:00
Myk e2fb15a3a5
add dwarfmode.MenuOverlay:renderMapOverlay() (#2119)
* add dwarfmode.MenuOverlay:renderMapOverlay()

* ensure we move with the viewport when bounds_rect is nil
2022-04-29 20:32:22 -07:00
Myk 24dd4d8ac0
Update init files (#2117)
* update example init files

replace onLoad.init-example with documentation on how to create scripts that run on world/map load
it was confusing to show it being loaded with sc-script since it gets autorun anyway if it is just named properly

* update changelog

* add quickfort keybinding

* move standard tweaks from dreamfort init to main
2022-04-29 20:24:09 -07:00
myk002 e603fee3ce
move sidebar mode management code to init
from onAboutToShow(). this allows the frames to be calculated correctly
during widget instantiation. otherwise widgets can end up with -1 width
2022-04-29 12:10:05 -07:00
myk002 af47434f52
protect against 0 width in string:wrap() 2022-04-29 11:29:19 -07:00
Tachytaenius b9c36c1e63
Added custom-raw-tokens utility (#2038)
* Added (chain) for [CHAIN_METAL_TEXT] armours in gui/materials.lua used by gui/create-item-- again (oops)

* Added customRawData utility

* Oops, whitespace

* Revised rawStringsFieldNames

* Dialed down on lua trickery and fixed wrongly formatted changelog entry

* Fixed changelog in wrong place and made customRawData a proper module

* Fixed not caching not-present tags, revised examples and fixed error

* Fixed whitespace. Changing settings in editor!

* customRawData docs

* Added getCreatureTag for respecting caste tags, "fixed" bizarre caching error (quotes because I don't even know what was causing it) and updated docs

* Added line limiting for docs, I guess

* Added missing string convert argument

* docs indent fix, code block fix, and revision

* Major revision

* gdi, docs error

* Another? But... huh.

* ...

* Made requested changes

* Whoops

* Rearrange docs lines

* Followed example, should fix linter issues

* fix typo. linted offline this time......

* Make it so that last instance of tag is what is read from

* Added requested change

* eventful key change

* i to lenArgs

* change eventful key

* add test for broken caste selection

* Major redesign

* tags --> tokens

* Added plant growth behaviour and did some requested changes

* More error handling

* fix docs

* Added basic error suppression

* Docs clarification.

* Docs registering example and fix error

* Strip errors on frame after onWorldLoad, not on map load

* Revert "Strip errors on frame after onWorldLoad, not on map load"

This reverts commit e20a0ef8d3743f79d961077f46910b77b16f36b9.

* Revert "Docs registering example and fix error"

This reverts commit 9c848c54c3f84e0ecc1dc421137c8a8b4a52280d.

* Revert "Docs clarification."

This reverts commit 6b4b6a1aa40c50398504f37ecf1ff0f93d6459b1.

* Revert "Added basic error suppression"

This reverts commit d11cb1438cf1e56ff700469e944f0b9af64651d7.

* Use more eventful key more consistent with other files

* use onStateChange instead of eventful and remove redundant utils require

* Code review stuff

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update docs/Lua API.rst

committing a suggestion

Co-authored-by: Alan <lethosor@users.noreply.github.com>

* Prepend examples with DFHACK_

* Remove unused parameters

* Use new ensure_key global

* Named a couple of unnamed arguments (untested)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alan <lethosor@users.noreply.github.com>
2022-04-29 08:39:59 -07:00
Timur Kelman f08a268e8a
add scroll icons to Label widget (#2101)
* WIP: add scroll icons to Label widget

It's an opt-out. The icons are rendered in the right-most column of the 1st and last row. They are only rendered when text can actually be scrolled in the corresponding direction.

WIP: Currently, the icons might overlay text characters, there is no mechanism preventing it

* gui.lua: expose the `parse_inset()` function

* refactor Label's scroll icon code

* since `render_scroll_icons` only works with a label, it's now a class function
* `update_scroll_inset` ensures `frame_inset.r` or `.l` is at least 1, according to `show_scroll_icons`
* `show_scroll_icons` has 4 possible values: `false` for no icons, `left` for icons on the first column on the left (also ensuring `frame_inset.l >= 1`), `right` - last column on the right, `DEFAULT_NIL` - same as `right` if text height greater than `frame_body.height`, else same as `false`.

* make `render_scroll_icons` always draw icons

The check now happens in `onRenderFrame`

* draw frame's background

calling `Label.super.onRenderFrame(self, dc, rect)` makes frame's background invisible for some reason

* remove trailing spaces

* fix scroll icons placed far above/below text

 With `Label.frame_inset = 1` the text could be vertically centered with plenty of space below and above,
but not all rendered. Before this change, the scroll icons would be at the very top and bottom of the frame
instead of near the first and last rendered text line.

* always `update_scroll_inset` to react to resized window

* draw scroll icons next to text

* update `Lua API.rst` with new `Label` parameters

* move comment separator up

This way every scroll related parameter is in one group

* list default values for new parameters in docs

* add missing description of `Label.scroll_keys`
2022-04-29 06:55:08 -07:00
myk002 dcadde38d7 add new global function: ensure_key 2022-04-27 17:35:49 -07:00
myk002 6ad362d698
return a reference to the created dialogs 2022-04-27 11:51:46 -07:00
Ryan Williams b56d9520e9
Fix trailing whitespace 2022-04-25 00:39:05 -07:00
Ryan Williams 861a0ee85e
Update LuaApi.cpp
Wrappers for autoDFAnnouncement, pauseRecenter, and recenterViewscreen.
2022-04-24 22:52:31 -07:00
Ryan Williams c7be54dac0
Update Gui.cpp
Add reverse engineered functions: parseReportString, autoDFAnnouncement, recenterViewscreen, and pauseRecenter.
Add versions of autoDFAnnouncement that don't take a report_init struct and that log unprinted announcements.
Add utility functions: recent_report, recent_report_any, delete_old_reports, and check_repeat_report.
2022-04-24 22:45:26 -07:00
Ryan Williams 89ed9950c7
Update Gui.h
Added parseReportString, which parses a string using '&' as a control character (&r as newline, && as &) and cuts to a certain length w/o splitting words.

Added autoDFAnnouncement, which takes a report_init and a string, and handles them like DF does.
Added variants to log unprinted announcements and to build the report_init from arguments.

Added pauseRecenter, which recenters on an xyz coord (item style, not unit) and optionally pauses, while respecting pause_zoom_no_interface_ms.
Added variant that takes a pos.

Added recenterViewscreen, which recenters on an xyz coord using a report zoom style (item, unit, generic. revealInDwarfmodeMap calls "unit" style "center". Generic style ignores coords and just enforces valid view bounds.)
Added variants that take pos or use current cursor coords.
2022-04-24 22:32:41 -07:00
myk002 ed5523152c
factor text wrapping out of TooltipLabel into WrappedLabel 2022-04-22 09:53:10 -07:00
myk002 809f9316fd
make frame inset configurable for ListBox list 2022-04-22 08:30:53 -07:00
Josh Cooper 9c9a7ef99a Adds consistent interface signatures for Maps module 2022-04-21 19:40:58 -07:00
Tim Siegel b56f57c074
cmake: Add SDL dep for Linux dfhack; deprecate BUILD_TESTS
On Linux, libdfhack.so depends on libSDL.so, but that was not marked
inside CMake. As it's only used via LD_PRELOAD, there was no problem.
But when linking unit tests against it, this becomes necessary. It may
be wise to add a find_package(SDL) to provide the user with more
control, but just a hard-coded "SDL" should work for most installs.

The CTest module creates a BUILD_TESTING option, which clashes
(thematically, not in code) with the existing BUILD_TESTS option.
Resolve it thus:
- Deprecate BUILD_TESTS; it still works, but is marked as an advanced
  option so it doesn't show in the CMake UI by default.
- Add a new BUILD_TEST_SCRIPTS that does what BUILD_TESTS used to do,
  but is a "dependent" option so it goes away if BUILD_TESTING=OFF.

The up-shot is that, by default, the C++ unit tests will be built
(BUILD_TESTING=ON) and the Lua integration tests are not installed
(BUILD_TEST_SCRIPTS=OFF).
2022-04-21 18:44:33 -04:00
Tim Siegel 6daa13ad51
unit testing: Link test executables against libdfhack
Note: Hard-coded "SDL" here is wrong, but requires some refactoring in
top-level CMakeLists.txt to fix.
2022-04-21 10:42:19 -04:00
Tim Siegel 26a9bf9671
unit tests: Add CTest support, and a trivial first unit test
If BUILD_TESTS=ON:
- Adds a 'test' target for ninja
- Adds a library/MiscUtils.test unit test executable
2022-04-20 22:24:13 -04:00
DFHack-Urist via GitHub Actions 62b02c2367 Auto-update submodules
library/xml: master
2022-04-19 07:17:48 +00:00
Josh Cooper 251f4f92c8 Fixes build errors 2022-04-18 23:53:23 -07:00
Josh Cooper ff2bd8d953 Retypes the EventManager's constructions container 2022-04-18 23:53:23 -07:00
Josh Cooper d6b2629cfc Adds hash functions and operator overloads for event data structures 2022-04-18 23:53:23 -07:00
Josh Cooper 64b7de0339 Revises getVerb signature 2022-04-18 22:46:38 -07:00
Josh Cooper 018d189494 Simplifies report index safety 2022-04-18 22:46:38 -07:00
Josh Cooper 1f972d6c1c Implements clang-tidy suggestions 2022-04-18 22:46:38 -07:00
myk002 07761e1d5d add some more handy widgets to the library
TooltipLabel
HotkeyLabel
CycleHotkeyLabel
ToggleHotkeyLabel
2022-04-18 17:37:11 -07:00
Timur Kelman cb123e5076
default unset `frame_inset` values to 0 (#2100)
* default unset `frame_inset` values to 0

This change allows writing `frame_inset = {r=1}` instead of `frame_inset = {l=0, r=1, t=0, b=0}`
2022-04-16 08:17:35 -07:00
Josh Cooper 9bf9a79a11
EventManager/Eventful - Generate event arrays (#2097)
* Replaces EventManager.cpp's event array with an auto-gen one

* Replaces eventful.cpp's event array with auto-gen one
2022-04-14 21:47:25 -07:00
lethosor 0f464b13b3
Merge remote-tracking branch 'lethosor/pre-commit' into develop 2022-04-12 21:17:15 -04:00
lethosor d1f0edd33b
Apply initial pre-commit config 2022-04-12 14:48:19 -04:00
DFHack-Urist via GitHub Actions f3386d0621 Auto-update submodules
library/xml: master
scripts: master
2022-04-12 07:18:03 +00:00
Myk fd1ee233a2
automatically manage sidebar modes in MenuOverlay (#2083) 2022-04-11 20:58:54 -07:00
Myk 10f22ecc27
add ResizingPanel class and autolayout for Panels (#2086)
* add autolayout for Panels and new ResizingPanel
2022-04-11 18:25:00 -07:00
Myk e6299700bf
Handle punctuation in FilteredList filter matching (#2085)
* allow punctuation to be typed into a filter

and allow the filter to match keys with punctuation
2022-04-11 18:22:31 -07:00
myk002 4a383b1c84 handle number-indexed lua maps in safe_index 2022-04-11 18:02:57 -07:00
Myk 4f9608da13
Document and update argparse module (#2089)
also add unit tests and use new string fns in processArgs and allow it to recognize parameters with two dashes instead of just one
2022-04-11 16:16:55 -07:00
Myk 9a8fd12785
ensure ListBoxes always have enough height (#2084)
so they can always display an error message if the filter doesn't match anything
2022-04-11 16:15:50 -07:00
Myk 96b5b4420b
Add string:escape_pattern() utility function (#2082)
* add string:escape_pattern() to dfhack.lua

stolen from devel/query.lua. will migrate scripts to use the common implementation later
2022-04-10 21:18:01 -07:00
DFHack-Urist via GitHub Actions 39f5084902 Auto-update submodules
library/xml: master
scripts: master
2022-04-07 07:17:48 +00:00
DFHack-Urist via GitHub Actions b313b31879 Auto-update submodules
library/xml: master
2022-04-03 07:16:42 +00:00
DFHack-Urist via GitHub Actions 8b09e9bbf9 Auto-update submodules
library/xml: master
2022-03-31 07:17:20 +00:00
Alan ec0941da2f
git-describe: fail earlier if git fails to run or doesn't exist (#2061)
In cases where the cached `GIT_EXECUTABLE` does not exist, `git-describe.cmake`
would fail silently, resulting in a `git-describe.h` with missing definitions
that caused `DFHackVersion.cpp` to fail to compile.

This change produces a more descriptive error earlier in the build process.
2022-03-30 14:49:18 -07:00
Myk 257e7a3dfd
[core] Debug logging facelift (#2060)
* route 'Loading script...' messages through the debug logging framework
  * they are now controllable via debugfilter. to turn off, add this to your dfhack.init file: debugfilter set Warning core script
* clarify debug logging docs
* prevent DEBUG messages from being compiled out of the binary
* recolor INFO messages so they blend into existing console output
* add configuration interface for log message header elements so they are individually configurable. all default to off
2022-03-30 14:46:09 -07:00
Myk 2df6980237
fix crash in eventful due to misaligned fn map (#2059)
also add warnings in eventful and EventManager to prompt devs to keep them in sync
2022-03-29 12:51:21 -07:00
Josh Cooper 69ca0d8a28
Improves support for dfhack as a sub-project (#2058)
Replaces CMAKE_SOURCE_DIR with dfhack_SOURCE_DIR so it can be included in other cmake projects that have a different top-level CMAKE_SOURCE_DIR
2022-03-29 10:28:52 -07:00
Josh Cooper b18eff9ce2
Revert EventManager to previous behavior, but keep new events
Fixes #2031
2022-03-29 09:42:24 -07:00
myk002 db5e7d55c1 fix guidm.enterSidebarMode(DesignateMine)
it would end up in DesignateChopTrees if you happened to be looking at
the surface z-level.
2022-03-28 16:57:24 -07:00
DFHack-Urist via GitHub Actions bbea31db34 Auto-update submodules
library/xml: master
2022-03-26 07:16:35 +00:00
Tachytaenius 19c0a4fe06
Added (chain) for [CHAIN_METAL_TEXT] armours in library/gui/materials.lua used by the gui/create-item script (#2037) 2022-03-19 15:32:16 -07:00
Ryan Williams 88b403ec7a
Add functions reverse-engineered from ambushing unit code (#1992)
* Add functions reverse-engineered from ambushing unit code

* Fix whitespace

* Fix debug_showambush check

* Remove getOuterContainerRef from Lua API

Don't think this works properly without allocating a new specific_ref. More trouble that it's worth.

* Fixed tile visibility check

* I don't think gamemode or gametype are ever NULL

* Minor tweaks to documentation

* Reimplement getOuterContainerRef for Lua; fix some comments

* Update Units.cpp and changelog

* Update Units.cpp
* Update changelog.txt
2022-03-13 17:19:35 -07:00
DFHack-Urist via GitHub Actions 8a4ddacff3 Auto-update submodules
library/xml: master
scripts: master
2022-03-13 07:15:55 +00:00
Kelly Kinkade 3d4c96de56 update Job.cpp to use the DF-provided job cancel method
use DF's provided job cancel function instead of the hackadoo workaround we used to use
2022-03-12 15:37:33 -08:00
Quietust aa1bc3fe52 Cleanup Kitchen module (and the seedwatch plugin which uses it) 2022-03-12 12:04:34 -08:00
Josh Cooper 3f05859780 Revises manageJobStartedEvent, and adds comments 2022-03-12 11:33:27 -08:00
Josh Cooper c8e7869375 Fixes some build errors 2022-03-12 11:33:27 -08:00
Josh Cooper 524f1670ed Fixes missing namespace 2022-03-12 11:33:27 -08:00
Josh Cooper ba5710f263 Adds new event type NEW_UNIT_ACTIVE 2022-03-12 11:33:27 -08:00
Josh Cooper 6ace4b2cf8 Fixes mistake in EventManager::manageTickEvent 2022-03-12 11:33:27 -08:00
Josh Cooper b8ad0131ea Modifies EventManager::registerTick to retain old behaviour of re-registering tick events 2022-03-12 11:33:27 -08:00
Josh Cooper fb51e2d8b5 Adds comments to members of EventHandler 2022-03-12 11:33:27 -08:00
Josh Cooper 1107c03b86 Modifies EventManager unit loops 2022-03-12 11:33:27 -08:00
Josh Cooper c550a6caf0 Updates EventManager job loops 2022-03-12 11:33:27 -08:00
Josh Cooper 07ffa0b8da Fixes bug in manageJobStartedEvent 2022-03-12 11:33:27 -08:00
Josh Cooper 24255d3195 Adds event type JOB_STARTED 2022-03-12 11:33:27 -08:00
Josh Cooper 48444afbd5 Fixes issue in manageJobCompletedEvent 2022-03-12 11:33:27 -08:00
Josh Cooper 3e72d549d1 Switches iterators to pre-increment instead of post for EventManager
My understanding is that iterators (.begin()/end()) are slightly faster with
pre-increment instead of post. Something about avoiding a copy if I recall correctly.
I replaced all `([:alpha:]+)\+\+` with `++$1` so non-iterators were switched as well - luckily there is no impact to pre/post aside from with iterators.
2022-03-12 11:33:27 -08:00
Josh Cooper f5ced46608 Refactors EventManager
- handler freq now works on an individual handler basis (set to 0 to fire as frequently as possible)
- tick events no longer need to be re-registered after every eventful tick
2022-03-12 11:33:27 -08:00
Josh Cooper 12df6d14e9 Improves documentation for plugin writing 2022-03-12 11:33:27 -08:00
myk002 cf54b84fd6 Bump to 0.47.05-r4 2022-03-09 14:27:20 -08:00
myk002 31397af99b cache civzones so lookup is O(1) instead of O(N) 2022-02-26 15:32:25 -08:00
myk002 a7085ea36b report to the console and stderr when we run inits 2022-02-25 12:59:38 -08:00
myk002 faa2410058 fix typos in argparse 2022-02-18 14:54:45 -08:00
myk002 e531346968 make a (shallow) copy of table params
this improves introspection capabilities since the table is snapshotted
at the time of the mock call
2022-02-18 13:33:08 -08:00
DFHack-Urist via GitHub Actions e1e3c6f7ac Auto-update submodules
library/xml: master
2021-10-29 07:16:44 +00:00
myk002 42ae45dd5f support designate for enterSidebarMode 2021-10-02 09:26:32 -07:00
DFHack-Urist via GitHub Actions b51d7cc80d Auto-update submodules
library/xml: master
2021-09-28 07:15:58 +00:00
myk002 ecdfca89d1 support nil to indicate no short param name 2021-09-25 22:00:49 -07:00
myk002 fc556c9e5d implement non-alias long form params
now long form parameters can exist by themselves without being an alias
for a required equivalent short form param
2021-09-25 22:00:49 -07:00
lethosor 17de88e839
Fix some warnings on macOS 2021-09-07 11:58:44 -04:00
lethosor e7754ea890
Enable -Wunused-variable and fix most errors 2021-09-07 01:16:21 -04:00
lethosor 1295633722
Bump to 0.47.05-r3 2021-09-04 14:00:31 -04:00
DFHack-Urist via GitHub Actions afca336679 Auto-update submodules
library/xml: master
scripts: master
2021-09-03 07:15:42 +00:00
DFHack-Urist via GitHub Actions b509a0b571 Auto-update submodules
library/xml: master
2021-09-02 07:20:39 +00:00
lethosor d5be63823d
Merge remote-tracking branch 'TymurGubayev/patch-1' into develop 2021-08-31 00:55:36 -04:00
lethosor 186eab8ab8
Update xml 2021-08-27 01:03:25 -04:00
DFHack-Urist via GitHub Actions 61cdc24e4a Auto-update submodules
library/xml: master
scripts: master
2021-08-25 07:18:36 +00:00
myk002 691e54dfc6
rename expect.find to expect.str_find 2021-08-24 21:06:12 -07:00
myk002 b2f44f00f1
add pattern matching expect.find() for unit tests
settled on `find()` since the string method of the same name has the
same semantics. other options: `str_find()` since it fails on non-string
or `match()` (but that might imply that the pattern needs to match the
entire string).
2021-08-23 22:59:30 -07:00
lethosor 10db894d99
Merge remote-tracking branch 'myk002/myk_printall_nontable' into develop 2021-08-21 22:51:35 -04:00
lethosor d4e40b260e
Merge remote-tracking branches 'TymurGubayev/patch-2' and 'TymurGubayev/patch-3' into develop 2021-08-21 11:30:36 -04:00
Timur Kelman ca8d89df5a
alt_getopt.lua: allow `?` as an option
This makes it possible to call `script -?`
2021-08-21 13:39:10 +02:00
Timur Kelman bd423ca47c
argparse.lua: `hasArgument` in a comment refers to `hasArg` everywhere else 2021-08-21 13:27:09 +02:00
myk002 86b2329b7f
fix hardcoded call to pairs, add test 2021-08-20 22:55:07 -07:00
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