Commit Graph

1300 Commits (94de377c0b360d8ebe8c2fa49c028b7214db0695)

Author SHA1 Message Date
lethosor eb12ff17f6
Refactor: move static identity_traits to their own file, simplify field defs
DataStaticsFields.cpp used to contain identity_traits specializations for
primitive and opaque STL types, as well as macros used for the generated struct
field definitions. Only one of these were actually used in any compilation unit,
and the identity_traits definitions were hidden behind a guard to prevent them
from being compiled at all when building the struct field definitions.

Now, the identity_traits specializations live in their own file,
DataIdentity.cpp (matching their declarations, which live in DataIdentity.h).
This speeds up build times because modifying these specializations no longer
requires rebuilding all of the field definitions unnecessarily.
2023-08-02 00:15:26 -04:00
lethosor 9f168214dd
Merge remote-tracking branch 'lethosor/fix-textures-cleanup-segfault' into develop 2023-08-01 00:35:19 -04:00
lethosor e2ca506e23
Fix off-by-one error in Textures::cleanup()
In a ASCII-only configuration, I was seeing `textures.raws.size() == 164` and
`texpos_end == 164`. This resulted in reading one item past the end of the
vector.

This may not be occurring in configurations with graphics enabled, or
Windows/WINE may be more permissive.
2023-08-01 00:13:09 -04:00
lethosor e55984c529
Fix startup crashes when global addresses are missing
Useful for initial research. Can be tested with `DFHACK_NO_GLOBALS=1`
2023-08-01 00:05:02 -04:00
Myk Taylor 77d0fb297c
convert tabs to spaces when getting clipboard text
this avoids tab characters being translated to "?" when converted to
cp437
2023-07-21 15:03:06 -07:00
Myk Taylor dff4816287
update dwarfvet 2023-07-21 04:12:56 -07:00
Myk Taylor 0d81f5ce6e
don't include dead citizens in the citizens list 2023-07-18 23:09:19 -07:00
Myk 2cd226d879
Merge pull request #3566 from myk002/myk_pasture
[zone] initial implementation of pasture assignment screen
2023-07-16 14:36:57 -07:00
Myk Taylor 5fb299c6df
expand egg-laying filter to the entire race, not just the unit 2023-07-16 12:30:12 -07:00
Myk Taylor 39612f0d5a
trade a bin if any contents can be traded
the new trade screens will make it easy to filter out unwanted items
later
2023-07-16 12:15:51 -07:00
Kelly Kinkade 1fba8b16f5 replace `dts:make_unique` with `std::make_unique`
2014 here we come!
2023-07-07 21:38:15 -05:00
Myk Taylor 6a8522ab5e
generalize dfhack.items.isRequestedTradeGood 2023-07-06 03:27:05 -07:00
Myk Taylor b938891e11
add dfhack.items.isRequestedTradeGood 2023-07-06 03:24:36 -07:00
Myk Taylor c45dcdd7b0
implement sell_prices adjustments 2023-07-06 03:24:16 -07:00
Myk Taylor 2aeb86ba8f
implement trade agreement buy prices 2023-07-06 03:24:16 -07:00
Myk Taylor c2e647b79b
fix item prices and algorithm
adjust prices according to race WAR affinity
2023-07-06 03:24:15 -07:00
Myk Taylor 9849885df6
Revert "generalize dfhack.items.isRequestedTradeGood"
This reverts commit aa6d28bab6.
2023-07-06 03:23:17 -07:00
Myk Taylor aa6d28bab6
generalize dfhack.items.isRequestedTradeGood 2023-07-06 03:21:36 -07:00
Myk 79dbcf0461
Merge pull request #3524 from myk002/myk_copypaste
support copy/paste from system clipboard
2023-07-05 23:09:08 -07:00
Myk 785405b281
Update DFSDL.cpp 2023-07-05 22:34:25 -07:00
Myk 50b3cecfcf
Merge pull request #3481 from myk002/myk_cpp20
get compiling with c++-20
2023-07-05 22:28:59 -07:00
Myk c25b6e642e
Merge pull request #3533 from myk002/myk_noble
port API for unit lookup by noble role from quickfort
2023-07-05 19:34:29 -07:00
Myk Taylor c587cad471
generalize to civ roles as well 2023-07-05 17:37:49 -07:00
Myk 8e7d7fefc0
Merge pull request #3527 from myk002/myk_no_extra_keys
filter out spurious STRING keybindings
2023-07-05 12:10:51 -07:00
Myk Taylor 43ea9b94c3
move clipboard wrappers into DFSDL module (but not in the namespace) 2023-07-05 12:08:18 -07:00
Myk Taylor 125e4c623b
avoid inducing link dependency on dfhack 2023-07-05 11:07:51 -07:00
Myk Taylor cbdb56a1ac
port API for unit lookup by noble role from quickfort 2023-07-03 13:47:43 -07:00
Myk Taylor f111b69f2f
Merge branch 'develop' into myk_cpp20 2023-07-03 11:49:54 -07:00
Myk Taylor 9ca96567a5
move conversion logic to MiscUtils
but keep minimal wrappers in SDL module so we don't leak memory
2023-07-03 11:05:58 -07:00
Myk Taylor fdf2430fc4
filter out spurious STRING keybindings
that don't match actual SDL string input
2023-07-03 09:09:52 -07:00
Myk Taylor c660a12502
differentiate between choosing merchant screen and default trade screen 2023-07-02 19:09:15 -07:00
Myk Taylor d39440d33b
migrate markForTrade logic from logistics to core 2023-07-02 19:05:50 -07:00
Myk Taylor acd03486a9
add some more detail to the focus strings for buildings 2023-07-02 19:05:50 -07:00
Myk Taylor 175c249d29
support copy/paste from system clipboard 2023-07-02 18:04:06 -07:00
Myk Taylor e308d3204a
Merge branch 'develop' into sdl2 2023-06-26 16:04:50 -07:00
Myk Taylor b5f4cef187
differentiate trade request screen from other diplomacy screens 2023-06-26 02:29:36 -07:00
Myk Taylor 8235680ff0
add unsuspend map textures 2023-06-25 18:40:04 -07:00
Myk Taylor 78448f438d
don't leak warning suppression out of protobuf 2023-06-25 17:53:16 -07:00
Myk b958727655
Update Textures.cpp 2023-06-23 14:36:26 -07:00
Myk Taylor f7bef53b42
prefer symbols to descriptions for hotkey names 2023-06-23 14:36:18 -07:00
Myk Taylor 840a2b3525
ensure DFHack screens get all string input 2023-06-23 14:36:18 -07:00
Taxi Service 3e2940ef8f
attempt to set optional tilesize arguments for load_texture() 2023-06-23 14:35:45 -07:00
Myk Taylor 52151b0e98
remove SDL functions that don't exist anymore 2023-06-23 14:31:14 -07:00
Myk Taylor 4e48ce64f1
get things mostly ported to SDL2 2023-06-23 14:31:12 -07:00
Myk Taylor b571e5b52b
don't diplay orders overlay on subscreens 2023-06-19 16:48:07 -07:00
Myk Taylor 8a079e1ae7
get compiling on windows 2023-06-17 22:14:11 -07:00
Myk Taylor 2efef75b4e
re-constify 2023-06-17 10:46:56 -07:00
Myk Taylor 4a2b97105c
only initialize steam if launched from steam 2023-06-05 14:18:55 -07:00
Myk Taylor 5c914280c3
change dynamic_cast -> virtual_cast 2023-06-01 10:53:08 -07:00
Myk Taylor 974a6155c0
reinstated Buildings.setOwner 2023-05-31 18:48:08 -07:00
Myk Taylor 8b3eef699f
adjust findCivzonesAt to v50 semantics 2023-05-27 05:37:31 -07:00
Myk Taylor 8c01f3efe0
don't relaunch launchdf if it's already running 2023-05-20 02:59:41 -07:00
Myk Taylor a5a6b70a51
launch DFHack through steam if DF is run from steam 2023-05-20 02:59:39 -07:00
Myk Taylor 11361975f9
look up texpos values instead of assuming they're constant 2023-05-16 17:14:36 -07:00
Myk Taylor 8f5c454b39
add focus strings for new_region 2023-05-03 15:52:01 -07:00
Myk b1ae39764b
Merge branch '5008-beta1' into myk_nosdlreal 2023-04-26 15:48:13 -07:00
Myk Taylor 73b5e37f67
simplify loops with foreach syntax 2023-04-24 14:28:47 -07:00
Myk Taylor 6203894c99
add title screen focus string detection 2023-04-24 08:03:11 -07:00
Myk Taylor a7aded65e4
match new gems category 2023-04-17 01:04:03 -07:00
Myk Taylor 275513319c
remove last reference to SDLReal 2023-04-12 23:14:03 -07:00
Myk Taylor 460b1e8eaf
adjust code to new tree root type 2023-04-11 10:14:28 -07:00
Myk Taylor 17373dcffd
constify! 2023-04-10 04:35:34 -07:00
Myk Taylor 836a3edcb9
add some more logging 2023-04-10 04:35:34 -07:00
Kelly Kinkade ce017ee4a8
properly callIs SteamRunningOnSteamDeck 2023-04-10 04:35:34 -07:00
Myk Taylor e4777d2688
add shutdown and cleanup logic 2023-04-10 04:35:34 -07:00
Myk Taylor f0d19c9363
add note about dfhooks 2023-04-10 04:35:34 -07:00
Myk Taylor 6a7446780b
hide terminal console when running on steam deck 2023-04-10 04:35:34 -07:00
silverflyone 4aa5e9d17b Merge branch 'develop' of https://github.com/silverflyone/dfhack into develop 2023-04-05 12:23:20 +10:00
silverflyone 37d6a05aea
Merge branch 'develop' into develop 2023-04-05 11:49:38 +10:00
silverflyone 2bd24efa4b Merge branch 'develop' of https://github.com/silverflyone/dfhack into develop 2023-04-05 11:49:30 +10:00
silverflyone 0cebad1078 Update Buildings.cpp
Removed extra min/max checks.
2023-04-05 11:49:14 +10:00
Taxi Service 824f7ed038 clean up Items.cpp quality symbols definitions 2023-04-04 00:08:01 +02:00
Taxi Service 7c63ea9394 added BOLD_FRAME and INTERIOR_MEDIUM_FRAME 2023-04-03 20:13:57 +02:00
silverflyone c6fc55f98f
Merge branch 'DFHack:develop' into develop 2023-04-04 03:45:23 +10:00
silverflyone 181f0bdf72 Update Buildings.cpp
Boundary checks added.
2023-04-04 03:27:32 +10:00
silverflyone f8de51aba3 Update Buildings.cpp
Fixes #3159.
Valid map coordinates from (0, 0, 0) to (world->map.x_count - 1, world->map.y_count - 1, world->map.z_count - 1).
Stockpile coords (x1, y1, z) to (x2, y2, z) may lie outside of this region.
Use min of (0, 0) and max of (world->map.x_count - 1, world->map.y_count - 1) when iterating the block.
2023-04-04 03:08:43 +10:00
TaxiService 8d8a4abd13
reverted loss of readability 2023-04-02 02:33:09 +02:00
TaxiService e3bab1eb6b
simplifying character definition even more
removed those pesky superfluous consts and casts...
2023-04-01 23:40:45 +02:00
TaxiService 3a6893de53
attempt to increase code readability
following lethosor and myk's suggestions, each symbol now is its own constant with a descriptive name.
...will it work though?
2023-04-01 16:43:05 +02:00
TaxiService 18f1b5c675
attempt#2 to fix masterwork/exceptional/decorated symbols
this time we're using a couple of `static_cast<char>(...)` thingies
2023-03-31 17:33:23 +02:00
Myk Taylor fe0590503f
mark tiles with magma or deep water as "not free" 2023-03-24 15:05:17 -07:00
Myk Taylor 03e44f1e7f
fix initial extended/retracted position for upright spike traps 2023-03-23 00:25:29 -07:00
Myk Taylor 9b7860125d
ensure elements in deepest dir are added to output list 2023-03-11 02:01:50 -08:00
Myk Taylor 0562dc5234
constify some MaterialInfo methods 2023-03-05 18:16:49 -08:00
Myk Taylor df0c7c27cb
adjust to structures change 2023-02-26 22:04:22 -08:00
Myk 663b014eae
Merge pull request #2682 from 20k/squadwork
makeSquad, updateRoomAssignments
2023-02-26 21:40:33 -08:00
Myk Taylor c513c246a5
more SDL wrapping for stonesense 2023-02-26 21:18:16 -08:00
Myk Taylor 851bb50dc8
add SDL_PushEvent shim for RemoteFortressReader 2023-02-26 21:18:08 -08:00
20k c38a288eee use insert_into_vector, tweak docs again 2023-02-27 02:15:26 +00:00
20k c0bd452c86 add a failure case check just in case 2023-02-27 02:06:36 +00:00
20k 3c1d3ce21c rework docs, comments, clean up unnecessary init 2023-02-27 01:45:10 +00:00
20k 0c9a9c8b9e cleanup remaining unk 2023-02-26 18:09:10 +00:00
20k e50f3dbb64 remove unnecessary init 2023-02-26 18:09:10 +00:00
20k 1eeefdd598 clean up a variety of unks 2023-02-26 18:05:42 +00:00
20k 2bd48f1f90 address some review comments 2023-02-26 18:05:35 +00:00
20k d84b118767 docs, rework, rename 2023-02-26 18:05:35 +00:00
20k 3912c6290f Military module start 2023-02-26 18:05:34 +00:00
20k ce3ee386fd makeSquad, updateRoomAssignments 2023-02-26 18:05:34 +00:00
Myk 3cddea9b61
Merge branch 'develop' into myk_clear_tile 2023-02-26 09:25:05 -08:00
Myk e81a45a742
Merge pull request #2952 from myk002/myk_keep_focus
[Gui] don't prefix focus strings that are already properly marked
2023-02-26 09:23:42 -08:00
Myk Taylor f1d5551e51
fix on-map character rendering 2023-02-24 17:23:01 -08:00
Myk Taylor 88516a899a
allow map interface tiles to be cleared 2023-02-24 17:22:55 -08:00
Myk Taylor d7d3dcb0be
keep focus strings if they are already labeled
i.e. don't add a "dfhack/" prefix if the focus string already has the
string "dfhack" in it
2023-02-24 17:20:12 -08:00
Myk Taylor 30ea58374c
better detection of fire and magma safety 2023-02-24 16:57:44 -08:00
Myk Taylor 4bf0849d51
fix usage of squad equipment vector 2023-02-24 15:50:56 -08:00
silverflyone d8afb6c682 Update Buildings.cpp
Changed the StockpileIterator::operator++ to checks block based on <= 16 rather than <16. Previously it was not returning items at stockpile tiles at the block boundary. Identified as part of combine.lua changes.
2023-02-15 15:31:50 +11:00
Kelvie Wong f8d94afb7d Add getSelectedCivZone to dfhack.gui
Mostly helpful for my own automation in my custom lua scripts.

Tested it with barracks, meeting areas, and pastures.
2023-02-13 15:22:33 -08:00
Robob27 65f38ec75c Add isGeldable, isMarkedForGelding, isPet 2023-02-11 05:44:45 -05:00
Roxy 826f918954 remove isHospital as hospitals are no longer civzones 2023-02-06 19:11:00 -05:00
Roxy ca5a17a799 explanatory comment for magic number 2023-02-06 19:09:47 -05:00
Roxy a38246aaa4 Update logic for zone type checks 2023-02-06 16:47:50 -05:00
Myk Taylor 9e318842a4
implement some Gui module hotkey guards
and clean up focus string matching logic
2023-02-06 00:58:57 -08:00
Myk Taylor 526d7c1726
allow focus string generation to fall through unfocuses ZScreens 2023-02-05 18:01:46 -08:00
Robob27 c8d672eb05 Remove duplicate SquadEquipment entry 2023-02-05 19:04:21 -05:00
Robob27 6657fb59e5 Fix pausing and warnings 2023-02-05 19:04:21 -05:00
Robob27 36e4bba779 Fixup prefix matching 2023-02-05 19:04:21 -05:00
Robob27 14f1e4b52f Per confirm pause maybe? 2023-02-05 19:04:21 -05:00
Robob27 f7df51587c More focus strings, correct docs 2023-02-05 19:04:21 -05:00
Robob27 fdbe91e35b Add the rest of the bottom modes 2023-02-05 19:04:21 -05:00
Robob27 8f32f1ed7b Fixup focusStrings->focusString 2023-02-05 19:04:21 -05:00
Robob27 86b57380a6 fixup unnecessary changes, remove unnecessary stuff 2023-02-05 19:04:21 -05:00
Robob27 085a308e99 Remove/readd comments 2023-02-05 19:04:21 -05:00
Robob27 6e442a26ca More WIP 2023-02-05 19:04:21 -05:00
Robob27 a770a4cae4 WIP 2023-02-05 19:04:21 -05:00
Ryan Williams 08d90de277
Merge branch 'DFHack:develop' into patch-1 2023-02-05 12:02:58 -08:00
Ryan Williams 1eb67ab239
Update Gui::resetDwarfmodeView
* Set `plotinfo->main.mode` again now that alignment is fixed
* Left note about unidentified global
* DF resets the whole `selection_rect` struct
* Comments for `ANNOUNCE_LINE_DURATION` and `ANNOUNCE_DISPLAY_TIME` constants reflect the default 50 GFPS
2023-02-04 19:56:37 -08:00
Ryan Williams 0f78509328
agitated_wilderness_creature is in unit->flags4 2023-02-04 19:29:37 -08:00
Ryan Williams c345acd417
Update Units::isFortControlled
Add check for `agitated_wilderness_creature`.
2023-02-04 18:48:41 -08:00
Myk Taylor 49246a60f3
properly cast for unsigned comparisons 2023-02-02 23:57:52 -08:00
Myk Taylor 8c7be9a8c2
don't use negative plant indices
and clean up the Kitchen module a bit more
2023-02-02 23:33:24 -08:00
Myk 21f93173c3
Merge pull request #2778 from myk002/myk_halfsies
support offset text in graphics mode for pens
2023-02-01 17:50:24 -08:00
Myk 7468170751
Merge pull request #2771 from myk002/myk_seedwatch
update seedwatch
2023-02-01 17:49:57 -08:00
Myk Taylor 58be8cfd69
support offset text in graphics mode for pens 2023-02-01 17:39:32 -08:00
Myk Taylor be40d55e64
update seedwatch 2023-02-01 04:03:28 -08:00
Myk Taylor aa22917aeb
add new control panel textures 2023-01-31 23:52:30 -08:00
Myk 376526d512
Merge branch 'develop' into myk_no_stuck_df_viewscreens 2023-01-29 16:55:52 -08:00
Myk 274e995790
Merge pull request #2747 from myk002/myk_on_off
Add new on/off icons
2023-01-29 16:55:01 -08:00
Myk Taylor 1c6235633f
add dfhack.units.getCitizens() 2023-01-29 16:28:05 -08:00
Myk Taylor c2d6debcd8
add on/off light textures and expose to lua 2023-01-29 00:35:29 -08:00
Myk 2003efc21f
Merge branch 'develop' into myk_no_stuck_df_viewscreens 2023-01-28 12:03:50 -08:00
Myk 99d1ed6828
Merge branch 'develop' into myk_no_inception 2023-01-28 11:58:37 -08:00
Myk Taylor a931ca692d
Fix debug level typo 2023-01-28 08:21:13 -08:00
Myk Taylor f12ca33c0b
ensure DF screens don't get "stuck" when DFHack tool windows are on top 2023-01-28 08:05:37 -08:00
Myk Taylor 863ca2ca65
solve the inception problem
where hideGuard smashes the viewscreen stack with multiple insertions
for the same screen
2023-01-28 08:02:46 -08:00
Myk Taylor 22dd49ce38
remove "room" checking for buildings -- there is no room 2023-01-27 13:38:21 -08:00
Myk Taylor 9aaa55cd7f
add textures and frames for various use cases 2023-01-23 03:58:51 -08:00
Myk d82a795ef4
Merge pull request #2681 from 20k/develop
More civzone <-> building work, add removing zones with associated squads support
2023-01-22 17:14:24 -08:00
20k 4559168005 update for multiple ownership 2023-01-22 22:59:25 +00:00
20k b15fcc93d2 remove assignments on zone destroy 2023-01-22 15:26:55 +00:00
20k c7ca9d0d7b reverse squad iteration delete 2023-01-22 15:25:16 +00:00