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