Commit Graph

4019 Commits (19616f7e32fe6329c5ea363d07cd6faac401bb01)

Author SHA1 Message Date
Myk Taylor 079d5e4178
support foreground and background writing from pens 2023-01-12 12:30:07 -08:00
Myk Taylor 88f158921f
move warning to run_script_with_env 2023-01-11 19:48:15 -08:00
Myk Taylor 679e91d2e7
warn against running untested scripts
but allow after the first try
2023-01-10 23:21:30 -08:00
Myk Taylor 1d0f6b3a95
more careful bounds checking for screen tiles 2023-01-10 19:40:13 -08:00
Myk Taylor 353117d484
fix a crash in Screen when read or paint tile indices are negative 2023-01-10 19:05:04 -08:00
Myk Taylor 7cf703ef23
turn down Ruby support 2023-01-09 23:59:55 -08:00
Myk 17bcdb1f56
Merge pull request #2583 from arekatir/develop
Remove os.execute and io.popen
2023-01-09 23:53:32 -08:00
DFHack-Urist via GitHub Actions 7a9dd02bbd Auto-update submodules
library/xml: master
scripts: master
2023-01-10 07:51:40 +00:00
Myk c26ed36893
Merge pull request #2577 from myk002/myk_get_any
get rudimentary getAny(Unit|Item|Building) working
2023-01-09 23:50:02 -08:00
Myk e1b63d8600
Merge pull request #2576 from myk002/myk_pin
use an actual pin texture for ZScreen pins
2023-01-09 23:49:50 -08:00
DFHack-Urist via GitHub Actions c6472560c6 Auto-update submodules
library/xml: master
scripts: master
2023-01-10 07:14:21 +00:00
pre-commit-ci[bot] 8ad1cafb07 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-01-10 04:52:00 +00:00
arekatir d725b813c7
Remove os.execute and io.popen 2023-01-09 23:04:43 -05:00
Myk Taylor fecc733192
detect clicks on part of pin that sticks up 2023-01-09 12:52:26 -08:00
Myk Taylor f39684dbfd
pass getAny calls through ZScreens 2023-01-09 09:35:55 -08:00
Myk Taylor f8728a4388
get rudimentary getAny(Unit|Item|Building) working 2023-01-09 01:39:48 -08:00
Myk Taylor 2234328a91
use an actual pin texture for ZScreen pins 2023-01-09 00:47:13 -08:00
DFHack-Urist via GitHub Actions 3e11a31070 Auto-update submodules
library/xml: master
2023-01-09 07:15:10 +00:00
Myk Taylor 92489ef27d
get things to compile with the recent structure updates 2023-01-08 11:33:14 -08:00
DFHack-Urist via GitHub Actions f78267351d Auto-update submodules
library/xml: master
2023-01-08 18:45:17 +00:00
Myk a983326dd6
Merge pull request #2569 from myk002/myk_set_option
add CycleHotkeyLabel:setOption()
2023-01-08 04:48:28 -08:00
DFHack-Urist via GitHub Actions 0684b4a9ba Auto-update submodules
library/xml: master
scripts: master
2023-01-08 07:13:26 +00:00
Myk f9cc43728f
Merge pull request #2567 from RosaryMala/develop
Remote Fortress Reader updates
2023-01-07 16:30:31 -08:00
Rose 95223d8197 Got archery target direction back, and cleaned up a few things. 2023-01-07 14:37:44 -08:00
Myk Taylor 72d5760ff6
add CycleHotkeyLabel:setOption() 2023-01-07 01:00:40 -08:00
Myk f20180de47
Merge pull request #2568 from ab9rf/5005-persistence
fix persistence
2023-01-06 21:50:20 -08:00
Kelly Kinkade 51bb5589de change order of state change event processing
this will cause persistent data storage to load _before_ `SC_WORLD_LOADED` events are sent to scripts and plugins
2023-01-06 21:55:42 -06:00
Kelly Kinkade 3e4861b54b fix persistence for changed file structure
`data/save` -> `save`
2023-01-06 21:24:01 -06:00
Myk fe9d1e186e
Merge pull request #2562 from myk002/myk_greenify
allow color options for CycleHotkeyLabel
2023-01-06 19:10:39 -08:00
Myk Taylor 093eac3eb2
use a black background for non-top ZScreen titles 2023-01-06 18:58:08 -08:00
Myk Taylor 810430f1a2
make windows lockable (can ignore r-click and esc) 2023-01-06 18:48:53 -08:00
Myk Taylor 1f5ae4165f
return self from raise, update docs 2023-01-06 15:43:08 -08:00
Myk Taylor fccefd1155
don't pass through handled r-clicks 2023-01-06 15:43:08 -08:00
Myk Taylor f43358002d
Allow dialogs to close on r-click 2023-01-06 15:43:08 -08:00
Myk Taylor 574be3fe73
provide a useful default impl of isMouseOver 2023-01-06 15:42:40 -08:00
Myk Taylor f15e9e3577
don't revert to plain strings for pens 2023-01-06 15:42:30 -08:00
Myk Taylor e111a73763
allow color options for CycleHotkeyLabel
and use the option to render `On` in green for ToggleHotkeyLabel
2023-01-06 15:42:27 -08:00
Myk Taylor 6f46ae672e
add Gui::getDFViewscreen and Lua binding 2023-01-06 12:17:36 -08:00
DFHack-Urist via GitHub Actions 1540e7c294 Auto-update submodules
library/xml: master
scripts: master
2023-01-06 07:13:54 +00:00
DFHack-Urist via GitHub Actions f4d059ea3d Auto-update submodules
library/xml: master
scripts: master
2023-01-06 02:43:42 +00:00
Myk a59f1518c1
Merge pull request #2556 from myk002/myk_zscreen
framework for passthru, z-order swapping windows
2023-01-05 18:41:57 -08:00
DFHack-Urist via GitHub Actions 9eb5165ebe Auto-update submodules
library/xml: master
2023-01-06 02:11:27 +00:00
Myk Taylor 1934014659
framework for passthru, z-order swapping windows 2023-01-05 18:07:38 -08:00
Myk Taylor 3969262e44
update submodule refs 2023-01-05 17:50:49 -08:00
Myk Taylor 845391f4e6
fix overzealous "ui" -> "plotinfo" replacement
some comments were just talking about the UI..
2023-01-05 17:46:30 -08:00
Myk Taylor c4a2bdd08e
update lua too 2023-01-05 17:35:33 -08:00
Myk Taylor 5e5775f5e3
rename globals according to structures update 2023-01-05 17:11:01 -08:00
Myk a5b11065db
Merge pull request #2547 from lethosor/codegen-stl-map-stub+v50
[v50] Add read-only container_identity for std::map
2023-01-05 15:35:27 -08:00
Myk Taylor 412531bf03
really fix the format string this time 2023-01-04 21:29:45 -08:00
Myk Taylor 9cbcd81f63
fix format strings for vars that were size_t 2023-01-04 21:24:52 -08:00
Myk Taylor c70c4131bd
don't include dfhack-config/ in release tarball
create it at runtime
move files around so no dfhack-owned files are in there
2023-01-04 19:41:58 -08:00
Myk b62cfa3699
Merge pull request #2552 from myk002/myk_mouse
Get correct mouse button down behavior in Lua without overwriting enabler fields
2023-01-04 19:39:43 -08:00
Myk 78be3a6463
Merge pull request #2548 from myk002/myk_logo
Display DFHack logo for the hotkeys overlay widget
2023-01-04 19:06:05 -08:00
Myk Taylor 4e51e02924
move SDL shims to a new DFSDL module 2023-01-04 17:15:32 -08:00
Myk Taylor 5d04b9c4cb
add Textures module and load DFHack logo
undocumented for now since it's internal. in the future, perhaps this
could morph into a dynamic texture loading facility for tools
2023-01-04 13:30:18 -08:00
Myk Taylor 9fd3ef7b4b
correct mouse down behavior without hosing enabler
before, we inhibited multiple mouse button down events by overwriting
the values in enabler. now we keep state internally and inhibit multiple
events on our own.

also add events and state tracking for middle mouse button
2023-01-03 14:52:49 -08:00
Myk Taylor 55cdaea636
refactor EditField text insertion 2023-01-03 12:57:02 -08:00
Myk Taylor a0343b06a6
adjust text wrap to new scrollbar width 2023-01-03 00:56:07 -08:00
DFHack-Urist via GitHub Actions fa2da54852 Auto-update submodules
library/xml: master
scripts: master
2023-01-03 07:13:58 +00:00
lethosor feeefcf149
Add read-only container_identity for std::map 2023-01-03 01:16:42 -05:00
Myk 6361b0a3a4
Merge pull request #2543 from myk002/myk_prep_for_quietust
prep for Quietust's structure updates
2023-01-02 20:42:48 -08:00
Myk 35ce361b09
Merge pull request #2542 from myk002/myk_dwarfmode_dims
clear out obsolete area map and menu logic from the Gui module
2023-01-02 20:42:30 -08:00
Myk 24235694f2
Merge pull request #2539 from myk002/myk_screen_write
implement Screen::paintTile for both modes and readTile for graphics mode
2023-01-02 20:41:35 -08:00
Myk 3ccf6034b9
Merge pull request #2538 from myk002/myk_script_paths
add dfhack-config/scripts to default script paths
2023-01-02 20:41:13 -08:00
Myk Taylor da63d6294b
ensure the scrollbar midpoint is always rendered
this mimics the vanilla scrollbar behavior (and looks better)
2023-01-01 17:55:06 -08:00
Myk Taylor 218fbdbd45
prep for Quietust's structure updates 2023-01-01 01:03:42 -08:00
Myk Taylor aa091ed37e
overwrite anchored textures where we actually touch their anchor 2023-01-01 00:45:14 -08:00
Myk Taylor 7d5d2d0a9b
clear out obsolete area map and menu logic
in particular, return the correct map dimensions in getDwarfmodeDims()
2022-12-31 22:49:30 -08:00
Myk Taylor a6294c24fb
implement Screen::paintTile and readTile 2022-12-31 21:16:42 -08:00
Myk Taylor 5232e2b04e
add dfhack-config/scripts to default script paths 2022-12-30 23:30:11 -08:00
Myk bf995a0968
Merge pull request #2533 from myk002/myk_lua_input
adjust Lua widgets to new input scheme
2022-12-30 22:37:12 -08:00
Myk a7dd14d699
Merge pull request #2535 from myk002/myk_smart_refresh
only do a full refresh when needed
2022-12-30 22:36:42 -08:00
Myk Taylor cf65f48aa0
don't use defunct MENU_CONFIRM keybinding 2022-12-30 22:35:08 -08:00
Myk Taylor 21f137644f
remove trailing whitespace 2022-12-30 22:35:08 -08:00
Myk Taylor 3a76fc086f
fix keyboard movement of Panel widgets 2022-12-30 22:35:08 -08:00
Myk Taylor 6871bc20c4
use new KEYBOARD interface keys in move delta 2022-12-30 22:35:08 -08:00
Myk Taylor 04f2d555c6
implement context-aware mouse wheel scrolling 2022-12-30 22:35:08 -08:00
Myk Taylor 38b525bdb5
adapt lua library widgets to new keyboard keybindings 2022-12-30 22:35:08 -08:00
Myk Taylor 1d7a7c8a49
Don't leave artifats behind when dimissing mboxes 2022-12-30 22:20:50 -08:00
Myk Taylor dd0cc087d5
Revert "consolidate full refresh logic in widgets.Panel"
This reverts commit 33787473f0.

I've already found another use case where we need a more general
implementation -- modal dialogs that inherit from FramedScreen that
appear and disappear
2022-12-30 22:13:53 -08:00
Myk bf9db8e223
Merge pull request #2534 from myk002/myk_scrollbar
skin our scrollbars to look and hover like DF's
2022-12-30 21:51:25 -08:00
Myk Taylor 33787473f0
consolidate full refresh logic in widgets.Panel 2022-12-30 20:44:15 -08:00
Myk Taylor 88dcdfd158
move trigger code from Window to Panel
where the drag/resize code actually is. Panels can be dragged around the
parent screen without them being a Window
2022-12-30 20:01:09 -08:00
Myk Taylor 70a0f4a718
only do a full refresh when needed
this significantly reduces CPU utilization when DFHack-owned screens are
visible.
2022-12-30 17:06:41 -08:00
Myk Taylor 7d91f9262d
respect tile colors in pens 2022-12-30 05:36:41 -08:00
Myk Taylor 3aac79fe4f
skin our scrollbars to look and hover like DF's 2022-12-30 05:33:17 -08:00
Myk Taylor 83a8e9a45a
render bright colors correctly 2022-12-30 03:30:01 -08:00
Myk Taylor 1265d531d5
only keep the anchor flag if it's already there 2022-12-30 00:53:44 -08:00
Myk Taylor f45eac993a
use semantically clearer div rather than bit shift 2022-12-29 22:18:35 -08:00
Myk Taylor a4c11de4fb
returns correct mouse pos when in ascii 2022-12-29 00:01:40 -08:00
Myk Taylor 371f5be050
fix signedness of comparison var 2022-12-28 23:31:06 -08:00
Myk Taylor cff603e243
allow Labels to write tile textures 2022-12-28 23:16:13 -08:00
Myk Taylor d7b67e9528
remove cached USE_GRAPHICS from gui.lua
it's no longer constant
2022-12-28 16:27:44 -08:00
Myk Taylor fc523f12fe
expose and document dfhack.screen.getMousePixels() 2022-12-28 16:05:27 -08:00
Myk Taylor 07f8fad787
implement Gui::getMousePos and Gui::getDepthAt 2022-12-28 16:00:10 -08:00
Myk ada96e616a
Merge pull request #2521 from myk002/myk_hooks
Prepare for the hook API
2022-12-27 19:47:38 -08:00
Myk Taylor e2a4eeb422
write textures and chars to the map 2022-12-27 17:00:50 -08:00
Myk Taylor 99ffe769fa
rendering the parent now involves a full refresh
in order to get the background
2022-12-27 15:23:34 -08:00
Myk Taylor 033eb2aefd
use default background colors
and ensure texpos_lower doesn't peek through
2022-12-27 15:05:13 -08:00
Myk Taylor 75afa88790
use tiles for our default frame 2022-12-27 14:40:35 -08:00
Myk Taylor 69c9e3ffb7
render tiles if given in the pen; otherwise text
this commit also smooths out many conflicts with other layers, but the
anchor layer still gives us trouble. it will overwrite us unless we
cover the upper left tile of the anchor graphic, and then the entire
anchor graphic will disappear. not ideal, but it's a start
2022-12-27 14:39:03 -08:00
Myk Taylor 4f9f8ebcf6
fix unused return value warning 2022-12-26 10:26:22 -08:00
Myk Taylor 4789637625
implement new dfhooks API 2022-12-25 18:15:55 -08:00
DFHack-Urist via GitHub Actions e2425b5c7c Auto-update submodules
library/xml: master
scripts: master
2022-12-25 07:13:11 +00:00
DFHack-Urist via GitHub Actions 7625dc132e Auto-update submodules
library/xml: master
scripts: master
2022-12-24 07:13:19 +00:00
lethosor 6a61c750e9
widgets.render_text(): error early if key is invalid
This helps identify _which_ key is invalid - otherwise, getKeyDisplay()
complains that it was called with `nil`, which is less helpful.
2022-12-23 13:17:26 -05:00
lethosor 12804a10a6
Fix Gui/Screen to work with g_src changes (dfhack/df-structures#487) 2022-12-23 00:36:09 -05:00
DFHack-Urist via GitHub Actions 07a0e6e511 Auto-update submodules
library/xml: master
2022-12-22 19:38:45 +00:00
Myk Taylor 52c1e49197
get the text rendering back 2022-12-21 22:13:05 -08:00
Myk Taylor 48a9e1c518 more new var names 2022-12-22 05:16:40 +00:00
Myk Taylor 93c875fb56
adjust to new variable names 2022-12-21 14:07:36 -08:00
Myk Taylor 839e927f9b
comment out problematic code from Renderer 2022-12-21 14:06:58 -08:00
Myk Taylor 010b18c0e4
hide "offset" tiles that we occlude 2022-12-20 20:10:14 -08:00
Myk Taylor 106b55397a
comment out problematic code in Core 2022-12-20 19:04:30 -08:00
DFHack-Urist via GitHub Actions 6c5b7d9458 Auto-update submodules
library/xml: master
2022-12-21 02:44:29 +00:00
Myk Taylor 663e1dd541
ascii is now in color 2022-12-20 16:33:11 -08:00
Myk Taylor d7f51e5ed8
basic text drawing 2022-12-20 11:00:49 -08:00
Myk Taylor 7f91cf6e2a
more instrumentation for eventmanager 2022-12-20 09:49:35 -08:00
Myk Taylor 999d602e79
instrument eventmanager a bit 2022-12-19 13:43:57 -08:00
DFHack-Urist via GitHub Actions d04e30406f Auto-update submodules
library/xml: master
2022-12-17 23:58:29 +00:00
Kelly Kinkade eef6dcb08c
Merge pull request #2504 from ab9rf/develop
initial 50.03 alpha branch - into the breach we go
2022-12-17 15:51:16 -06:00
Kelly Kinkade 607a4b34d4 update structures 2022-12-17 15:09:08 -06:00
Kelly Kinkade 57e599a4d9 comment out barracks reference
barracks appears to have gone away in 50.03
2022-12-17 13:07:37 -06:00
Myk Taylor 5cd60e10f0 comment out problematic code in Gui.cpp 2022-12-16 14:47:43 -06:00
Myk Taylor 003b74bf73 absorb Putnam's work on the windows hooks 2022-12-16 14:47:43 -06:00
Myk Taylor 768c95ecb6 absorb Putnam's work on Screen 2022-12-16 14:47:43 -06:00
Myk Taylor ccc9e976e2 comment out problematic code in Screen.cpp 2022-12-16 14:47:43 -06:00
Myk Taylor 55351951f0 comment out problematic code in Items.cpp 2022-12-16 14:47:43 -06:00
Myk Taylor 93b8479e94 comment out problematic code in Buildings.cpp 2022-12-16 14:47:43 -06:00
Kelly Kinkade 7fae0fe44f structures 2022-12-15 21:19:40 -06:00
Kelly Kinkade 9587dd42f8 structures update 2022-12-15 19:56:17 -06:00
Kelly Kinkade e6d8f06965 update structures 2022-12-15 19:27:52 -06:00
Myk 42203b13f4
Merge pull request #2500 from myk002/myk_panel_drag
Support resizing for DFHack Panel widgets
2022-12-15 14:36:33 -08:00
Kelly Kinkade a07d8c3b15 updates to do test builds of 50.03 2022-12-15 03:35:57 -06:00
Myk Taylor 06346c6269
implement double clicking on the title to maximize
also double click on a maximized window to jump to the minimum size
the location of the window isn't guaranteed to be the same after
maximizing and un-maximizing, but we could implement that if there is
call for it.
2022-12-14 19:03:38 -08:00
Myk Taylor 434e9322cc
fix error in error message formatting 2022-12-14 17:51:07 -08:00
Myk Taylor 4c6daf30d9
add widgets.Window and fix paint_frame offset 2022-12-14 12:04:29 -08:00
Myk Taylor 12e62c7f9d
highlight anchor point when resizing with keyboard 2022-12-14 10:34:06 -08:00
Myk Taylor c030704705
implement panel resizing 2022-12-14 10:34:04 -08:00
Myk Taylor 99b599e9ab
add docs for panel dragging 2022-12-13 13:01:49 -08:00
Myk Taylor 3f43f72731
fix the math 2022-12-13 12:39:17 -08:00
Myk Taylor 38a3bec953
dragging logic 2022-12-12 18:07:05 -08:00
Kelly Kinkade 0b80bd41b0 partial update to build with vs2022 2022-12-12 03:06:36 -06:00
Myk Taylor ffd646462a
ensure `enable` doesn't miss newly-added scripts
and add some more documentation
2022-12-10 22:13:38 -08:00
myk002 e88b1fdfe5
move script-manager into core 2022-12-10 21:59:51 -08:00
myk002 0362d76b39
list enableable scripts in the `enable` builtin 2022-12-10 21:59:51 -08:00
Myk Taylor facdb61e42
explicitly declare namespaces and proto versions 2022-12-10 18:06:53 -08:00
Myk Taylor 6c562a3fed
fix apparent typo in Materials scanning 2022-12-09 09:21:50 -08:00
myk002 dec6d3d379
Revert "update google protobuf to 3.21.10"
This reverts commit 9dabf51ac7.
2022-12-07 11:59:48 -08:00
myk002 9dabf51ac7
update google protobuf to 3.21.10 2022-12-07 11:59:15 -08:00
DFHack-Urist via GitHub Actions e1330a602e Auto-update submodules
library/xml: master
scripts: master
2022-12-06 07:14:43 +00:00
myk002 2b87307e11
allow visible and active to be dynamic properties 2022-12-04 15:46:19 -08:00
DFHack-Urist via GitHub Actions 08b579cf44 Auto-update submodules
library/xml: master
scripts: master
2022-12-02 17:45:32 +00:00
Tachytaenius 0836962007 Rename [xyz]CategoryActionTimers to [xyz]GroupActionTimers in action timer API 2022-12-01 23:24:04 +00:00
Tachytaenius ae532e1452 Rename affectedActionTypeCategory to affectedActionTypeGroup in action timer API 2022-12-01 23:22:02 +00:00
Tachytaenius 76cdbfbc5c Rename affectedActionCategory to affectedActionTypeCategory in action timer API 2022-12-01 23:19:10 +00:00
Tachytaenius f06f17b59c Rename affectedActionTypes to affectedActionCategory in action timer API 2022-12-01 23:17:57 +00:00
Tachytaenius aa2cf44c4b Use lambdas to violate DRY less in action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius a925c34413 Rename [xyz]ActionTimer functions to [xyz]ActionTimers 2022-12-01 13:34:54 +00:00
Tachytaenius f863b9807a Add action timer API input validation 2022-12-01 13:34:54 +00:00
Tachytaenius cc40b80456 Protect against integer overflow when subtracting with action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius 6148307e9b Change != 0 to > 0 in action timer API core functions 2022-12-01 13:34:54 +00:00
Tachytaenius 5e0c0d22cb Group action timer API internal functions together 2022-12-01 13:34:54 +00:00
Tachytaenius e93d7eefb3 Factor out set and add shared action timer code into own functions 2022-12-01 13:34:54 +00:00
Tachytaenius 357b871b4f Factor out shared unit action timer multiplication code into its own function 2022-12-01 13:34:54 +00:00
Tachytaenius 8f0b7663d9 Change ints in action timer API function signatures to int32_ts 2022-12-01 13:34:54 +00:00
Tachytaenius 4b33097e57 Remove default in action timer API switch case 2022-12-01 13:34:54 +00:00
Tachytaenius a3b1125c28 Progress on action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius 7f54a77ed9 Continue work on unit action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius 16ef4f8313 Rename action_type_group to unit_timer_action_type_group 2022-12-01 13:34:54 +00:00
Tachytaenius 2cbbed6750 Use df-structures XML enums for action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius fa589b5764 Make progress with action timer API 2022-12-01 13:34:54 +00:00
Tachytaenius 0f8ce360ac Make first pass of action timer API 2022-12-01 13:34:54 +00:00
DFHack-Urist via GitHub Actions d14a3f4970 Auto-update submodules
library/xml: master
scripts: master
2022-12-01 00:57:53 +00:00
Myk 018bf712d5
Merge pull request #2429 from cppcooper/patch-3
Updates Units::isAnimal
2022-11-29 18:43:04 -08:00
Myk 9038c1c568
Merge pull request #2437 from myk002/myk_ctest
Combine unit testing branches and simplify
2022-11-29 15:07:47 -08:00
Myk aac89d4942
Merge branch 'develop' into myk_default_search_key 2022-11-29 15:07:12 -08:00
Myk 5b311163a9
Merge pull request #2431 from myk002/myk_widget_fixes
fix minor errors in ResizablePanel, Label, and HotkeyLabel widgets
2022-11-29 15:06:15 -08:00
Myk 757aa303b7
Update library/MiscUtils.test.cpp
Co-authored-by: Josh Cooper <cppcooper@users.noreply.github.com>
2022-11-29 15:05:04 -08:00
Josh Cooper 807894ac6c Updates Units::isAnimal
Now checks that the unit cannot learn or speak, and has either a wilderness population source, a pet/pet_exotic token, or is trainable for war/hunting
2022-11-29 13:19:19 -08:00
myk002 d0a6a3e930
remove unnecessary target modifications 2022-11-28 17:43:55 -08:00
myk002 88074dacf0
move tests into the same dir as the main files 2022-11-28 17:31:10 -08:00
myk002 7fbeb215d7
Merge branch 'myk_unit_testing' into myk_ctest 2022-11-28 17:26:27 -08:00
myk002 f921b02a1b
Merge remote-tracking branch 'cppcooper/unit-testing' into myk_ctest 2022-11-28 17:25:10 -08:00
myk002 ae035d5836
simplify unit testing setup 2022-11-28 17:16:48 -08:00
myk002 726771c8d3
supply default search key for tokenized text 2022-11-28 16:02:47 -08:00
myk002 adb9c5ea12
fix frame size calculation when frame_inset is set
also fix error when clicking on HotkeyLabels where no on_activate
callback has been set
2022-11-28 15:12:22 -08:00
myk002 fb6483fe6c
allow frames to be drawn without DFHack signature 2022-11-28 15:04:28 -08:00
Josh Cooper 25f87306b4 Removes separated unit test executables 2022-11-25 09:43:04 -08:00
Josh Cooper 79551f7ef0 Updates CMake TESTING vars 2022-11-25 09:43:04 -08:00
Josh Cooper de91fa7f28 Adds -Wno-sign-compare to test targets 2022-11-25 09:43:04 -08:00
Josh Cooper 268719ed1f Integrates googletest 2022-11-25 09:43:04 -08:00
Tim Siegel 8e18d610f5 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-11-25 09:43:04 -08:00
Tim Siegel face558dd0 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-11-25 09:43:04 -08:00
Tim Siegel c5be87e381 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-11-25 09:43:04 -08:00
myk002 c9cf5ecca8
we kept editfield as MOUSE_L for click and drag 2022-11-21 17:51:24 -08:00
myk002 24dc879888
adapt library code to newly correct mouse events 2022-11-21 17:36:46 -08:00
myk002 e2218d0429
make mouse button event behavior conform to docs
before, when a mouse button was held down, we'd send a single _MOUSE_L
and _MOUSE_L_DOWN event and that's it. now we properly send a single
_MOUSE_L_DOWN event and _MOUSE_L events for as long as the button is
held down. similar for the right mouse button
2022-11-21 17:35:14 -08:00
myk002 0190cfb117
ensure foo.init runs before foo.*.init 2022-11-20 17:27:14 -08:00
Myk ac5a1d35ae
remove duplicate function definition 2022-11-18 17:39:49 -08:00
Myk 11c27d40dd
Merge branch 'develop' into Bumber64-patch-2 2022-11-18 17:34:00 -08:00
DFHack-Urist via GitHub Actions acd561ec9c Auto-update submodules
library/xml: master
scripts: master
2022-11-18 20:59:44 +00:00
DFHack-Urist via GitHub Actions 822a1c8359 Auto-update submodules
library/xml: master
scripts: master
2022-11-15 07:17:03 +00:00
Myk 966623a919
Merge pull request #2387 from cppcooper/units-checking
Extends Units module
2022-11-14 16:55:42 -08:00
myk002 94c6bc8063
refactor generic lua function caller to Lua ns 2022-11-14 16:40:35 -08:00
Josh Cooper aa5c6515e0 Removes rogue indent 2022-11-13 11:39:20 -08:00
Josh Cooper 78021ec672 Adds indentation 2022-11-13 11:35:01 -08:00
Josh Cooper 7e1bdb5302 Matches Units.h ordering in LuaApi.cpp 2022-11-12 17:05:11 -08:00
Josh Cooper d112649886 Organizes and documents Units::is*(unit) functions 2022-11-12 16:40:20 -08:00
Josh Cooper ebd450af0e Adds isUnitInBox to Units module 2022-11-12 14:42:41 -08:00
Myk afe85137c3
Merge branch 'develop' into cmake-ctest 2022-11-12 11:50:33 -08:00
Myk 5136bbbc03
Merge pull request #2383 from cppcooper/em-fixes
Fixes JOB_STARTED event
2022-11-11 19:58:46 -08:00
myk002 5b1ebdf72a
don't return list idx when mouse is on scrollbar 2022-11-11 10:40:10 -08:00
DFHack-Urist via GitHub Actions 4d97c90f53 Auto-update submodules
library/xml: master
scripts: master
2022-11-10 07:18:00 +00:00
Josh Cooper 34de030ba9 Units module
- Updates `Lua API.rst`
  - Only adds the most important additions (complicated enough to need explaining)
- Adds new functions to LuaApi.cpp
- Revises isUndead to accommodate `dfhack.units.isUndead(u)` => `Units::isUndead(u, false)` instead of taking the default value
2022-11-09 22:03:39 -08:00
Josh Cooper f3ae193914
Update EventManager.cpp 2022-11-09 16:49:35 -08:00
Myk eac7fac8e9
Merge pull request #2389 from myk002/myk_gui_anywhere
[Gui] add "anywhere" keybinding guard
2022-11-09 15:48:04 -08:00
Josh Cooper 80824f5b75 Extends Units module 2022-11-09 14:41:45 -08:00
myk002 0344595e4e
add "anywhere" keybinding guard 2022-11-09 14:32:51 -08:00
Josh Cooper c0ffcc2f79 Updates Units::isDemon() 2022-11-09 12:37:41 -08:00
myk002 d95a5ac238
add string_to_int to MiscUtils.h 2022-11-09 11:55:29 -08:00
Josh Cooper beee445f6f Extends Units module
Adds unit check functions for
- animals
- demons
- titans
- megabeasts
- semimegabeasts
- night creatures
2022-11-09 11:44:28 -08:00
Myk ccd43f1710
Merge pull request #2381 from myk002/myk_framed_panel
[widgets.Panel] support frames around panel widgets
2022-11-09 10:32:23 -08:00
Myk 9fed02435e
Merge pull request #2378 from myk002/myk_list_mouse
Allow widgets.List to report hover target and respond to shift-click
2022-11-09 10:32:06 -08:00
Myk 4924fd0d52
Merge pull request #2377 from myk002/myk_gui_convenience
Make View:getMousePos() and Screen:show() a bit more flexible
2022-11-09 10:31:58 -08:00
Myk f2a386f0e1
Merge pull request #2375 from myk002/myk_uicommon
Move generally useful string functions from uicommon to MiscUtils
2022-11-09 10:31:50 -08:00
Josh Cooper 92645ccb5b Fixes JOB_STARTED event 2022-11-08 12:43:23 -08:00
Myk 22eb9ca8b3
Merge pull request #2380 from myk002/myk_instrument_keybinding
instrument core keybinding resolution
2022-11-08 10:16:13 -08:00
myk002 4668d8c4a3 Add Lua::Push method for maps 2022-11-08 10:15:28 -08:00
myk002 e4d0bb9e46 move Lua push methods into LuaTools.cpp 2022-11-08 10:15:28 -08:00
myk002 b82a604c8d factor out keys -> lua onInput code to LuaTools 2022-11-08 10:15:28 -08:00
Myk 193d29ba67
include cctype to fix build error 2022-11-08 09:53:08 -08:00
myk002 32dc80729a
support drawing frames around panels 2022-11-07 16:50:21 -08:00
myk002 351ecbfb59
instrument core keybinding resolution 2022-11-07 16:41:53 -08:00
myk002 83f560a6f4
allow shift-click to trigger submit2 for List 2022-11-07 16:14:16 -08:00
myk002 1b7b75d8ab
factor out detection of the list index under mouse 2022-11-07 16:13:45 -08:00
myk002 28aadea6af
allow an alternate ViewRect for getMousePos 2022-11-07 15:54:56 -08:00
myk002 be18f4e900
return self from Screen:show() as a convenience 2022-11-07 15:54:55 -08:00
myk002 5b9c18fc3c
migrate string fns from uicommon to MiscUtils
and clean up some leaky usings
2022-11-07 15:36:16 -08:00
Josh Cooper 2197aded30
Fixes segfault 2022-11-06 17:30:28 -08:00
Myk a854e379b2
Merge pull request #2354 from myk002/myk_scrollbars_redux
make scrollbars more responsive when dragging
2022-10-22 20:28:52 -07:00
myk002 64b923b9eb
make the materials dialog filter lcase only
this allows the capital letter hotkeys to be processed by the list
widget without the special-casing of the ignore_keys attribute.
2022-10-21 12:43:53 -07:00
myk002 593b80cfa0
make scrollbars more responsive when dragging 2022-10-21 12:22:57 -07:00
myk002 1e21e6546e
fix materials selection dialog
where the filter was swallowing the sublist hotkeys
2022-10-19 17:31:28 -07:00
myk002 142b45ef49
move list item hotkey hint left by one tile
so it doesn't get covered by the scrollbar
2022-10-19 17:30:51 -07:00
myk002 666edd6d60
don't overwrite dig priority by accident
many callers of setDesignationAt simply didn't bother with the priority
parameter. change the default value of the priority param so that by
default we will keep the previous value instead of overwriting it
2022-10-19 16:47:54 -07:00
myk002 f94cc3fda0
add backtick to keybinding's hardcoded docs 2022-10-19 16:24:21 -07:00
Myk 4f10cd4a9b
Merge pull request #2331 from wolfboyft/constructions-find-at-tile-patch
Implement/change/expose to Lua constructions findAtTile & insert
2022-10-13 17:40:21 -07:00
Tachytaenius ded5f483d6 Fix issues in construction module 2022-10-12 21:32:27 +01:00
myk002 b78af72403
record built constructions in blueprint 2022-10-12 13:31:46 -07:00
Tachytaenius 1cf9688349 Implement/change/expose constructions findAtTile & insert (not building) 2022-10-12 21:10:22 +01:00
myk002 d650ba2377
ensure scrollbar can never get ahead of the cursor 2022-10-10 16:42:32 -07:00
myk002 ba36e72b33
support click and drag for scrollbars 2022-10-07 16:27:19 -07:00
myk002 35eb4e08dd
hold down the mouse button to continue scrolling 2022-10-07 15:40:05 -07:00
myk002 2bff70a290
add unit tests for widgets.Scrollbar 2022-10-07 13:14:52 -07:00
myk002 5722d6914b
transition Label to use the new generic Scrollbar 2022-10-07 12:45:43 -07:00
myk002 24232e894a
create Scrollbar widget and integrate with List 2022-10-06 11:13:16 -07:00
myk002 9817106c30
add --exclude option for ls 2022-10-05 13:30:14 -07:00
myk002 dc535004e9
better formatting for ls output for tags 2022-10-05 12:51:30 -07:00
DFHack-Urist via GitHub Actions 739792a59e Auto-update submodules
library/xml: master
scripts: master
2022-10-04 07:30:12 +00:00
myk002 3f6e92eda4
finalize 0.47.05-r7 release 2022-09-30 11:58:22 -07:00
myk002 cb80f7dd75
don't cache dup civzones when scanning buildings 2022-09-25 16:04:36 -07:00
lethosor e6336e769a
Units::teleport(): set idle_area 2022-09-24 13:30:24 -04:00
myk002 278b7528ac
implement basic domain index structure 2022-09-23 08:46:50 -07:00
myk002 fae26b2375
replace die's underline with tombstones
easter egg suggested by thurin : )
2022-09-23 08:34:22 -07:00
Myk b07f3b5b6c
stub help formatted same as real help 2022-09-22 17:43:56 -07:00
Myk 4d662adfe5
Fix marker checking for ruby help text 2022-09-22 17:39:54 -07:00
Myk Taylor 28b70eaee9
return map coords as a coord, not x, y, z 2022-09-18 13:27:33 -07:00
Myk Taylor dbc5001bd8
fail if mouse cursor isn't over the map area 2022-09-18 13:27:13 -07:00
Myk Taylor 3b650c8d0b
don't let changes to the lua cursor bleed through
before, we could end up changing the state of whoever last called
guidm.setCursorPos()
2022-09-18 08:20:33 -07:00
Myk Taylor 1f15e4d47e
expose Gui::getMousePos() to Lua 2022-09-18 08:19:56 -07:00
Myk Taylor 215a5b0a24
add Gui::getMousePos() that always gets map coords 2022-09-18 08:19:02 -07:00
Myk Taylor 448eced17c
make Screen::getMousePos always return scr coords 2022-09-18 08:07:08 -07:00
myk002 d0a5db2a0d
set sentinel value used by TWBT 2022-09-16 21:56:05 -07:00
myk002 6fff83de5a
fix EditField rendering with TWBT 2022-09-16 15:24:33 -07:00
myk002 b88d343ddd
fix off-by-one error on scrollbar click detection 2022-09-14 09:25:43 -07:00
myk002 bb52e7bac8 list tools in categories with tags builtin 2022-09-13 23:17:19 -07:00
DFHack-Urist via GitHub Actions dde56040c3 Auto-update submodules
library/xml: master
scripts: master
2022-09-12 07:39:33 +00:00
myk002 d4914e7511
implement mouse click reactions for scrollbar 2022-09-11 19:33:01 -07:00
myk002 e2fbade219
fix scrollbar display when all text is visible
also align behavior with documentation when 'left' or 'right' is
explicitly specified (i.e. always show the scrollbar)
2022-09-11 18:56:43 -07:00
myk002 f71f034d1d
show full scrollbars instead of just scroll icons 2022-09-11 17:58:10 -07:00
myk002 23994d4f4c
dynamically wrap helpdb long help text (default 80) 2022-09-11 13:41:20 -07:00
myk002 3c99a7214f
ensure params are strings when invoking scripts 2022-09-10 10:10:28 -07:00
myk002 cae2bca0a7
add dfhack.screen.hideGuard 2022-09-10 09:49:43 -07:00
lethosor 2fdbcaebf5 Accept negative indices, add vector tests 2022-09-07 09:14:09 -07:00
lethosor 483652e193 Rewrite utils.df_expr_to_ref() for consistency, add tests 2022-09-07 09:14:09 -07:00
myk002 b1a8662c4a
Merge branch 'develop' into docs 2022-08-31 23:00:39 -07:00
myk002 074a6ec5cd allow EditFields to ignore specified keys
like "+" and "-", so you can use them as hotkeys in the parent view
2022-08-31 10:22:41 -07:00
myk002 27e189fef2
no cursor position reset when updating list filter 2022-08-29 15:17:17 -07:00
myk002 4a1a322cd7
adapt to the new summary layout 2022-08-26 16:51:42 -07:00
myk002 0d3aa0fb28
Merge remote-tracking branch 'upstream/develop' into docs 2022-08-25 21:59:01 -07:00
myk002 8acda4d6c8
Interpret '4' & '6' as strings, not movement keys 2022-08-19 22:40:53 -07:00
myk002 751c2eb7d1
fix detection of short description start
now that labels are no longer bolded in the text rendering, the header
detection code needs updating
2022-08-19 16:19:19 -07:00
myk002 df9c37a8b7
Merge branch 'develop' into docs 2022-08-15 17:09:36 -07:00
myk002 8672282fd8
add helpdb, unit test, and document API
note that we have to dynamically sort some of the expected lists for
locale agnosticism
2022-08-15 16:31:52 -07:00
myk002 6fd0f4505f add dfhack history repository and expose to lua 2022-08-15 16:27:43 -07:00
myk002 84cd3f0e6d add getEntries() to the CommandHistory API
so we can export them to lua
also bump the default history size to 5000 from the paltry 100 we had
2022-08-15 16:27:43 -07:00
myk002 7f0791f6c3 use setText() accessor method instead of direct access 2022-08-15 16:24:34 -07:00
myk002 22f9f3b042 add unit tests for new widget functionality 2022-08-15 16:24:34 -07:00
myk002 0ae4fed3cf add mouse support for CycleHotkeyLabel widgets 2022-08-15 16:24:34 -07:00