Commit Graph

4142 Commits (64c2dcb21781143492bc5b59d4661f16c20e42a4)

Author SHA1 Message Date
myk002 e516cf1a80
remove MapCache header include 2021-04-27 09:19:33 -07:00
myk002 9b416a8662
speed up dig blueprint creation by 70%
remove the unneeded cache layer. the cache is for writing. we're just
reading. all the cache is doing is adding latency as it makes its copies
of map data structures.

generating a 190x190x100 dig blueprint:
before change: 1.7s
after change:  1.0s

the performance gains aren't as important here as the reduced complexity
of the algorithm, though. for reasonably-sized blueprints, the time
savings are unnoticeable.
2021-04-27 09:19:30 -07:00
lethosor e4de302048
Simplify building overlap calculations significantly
Fixes #1824
2021-04-14 00:59:43 -04:00
lethosor 7b1d7a7ff9
Fix off-by-one error in report-usage 2021-04-05 23:35:11 -04:00
lethosor 14172b7c0f
Improve readability of report-usage output 2021-04-05 23:33:53 -04:00
lethosor 40c2b19083
Switch from vector to unordered_set 2021-04-05 23:28:42 -04:00
lethosor 1c3e60337c
Switch to range-based for 2021-04-05 23:23:31 -04:00
lethosor 761cf19e99
tweak hide-priority: make toggle state persist across designation menu uses
To reproduce:
1. Enter the `d`esignation menu
2. Press `-+` to change priorities
3. Create a designation
4. Press `Alt-p` to hide priorities
5. Exit and re-enter the designation menu (`Esc`, `d`)

Previously, priorities would be visible again after step 5. With this change, they are not visible until you press `Alt-p` again.

Fixes #1068. Note that this is a relatively unobtrusive fix: selecting a priority with `+-` will still result in priorities being shown again. This is native DF behavior that I am reluctant to override because users of designation priorities likely want to see them.
2021-04-05 21:58:51 -04:00
lethosor a5128fd7e6
dwarfvet: minor logic cleanup
- Use at() to crash immediately on out-of-range errors instead of introducing
  memory corruption (see #1824)
- Replace custom implementation of df::unit::find()
- Use range-based for with get_vector() where appropriate
2021-04-05 00:38:23 -04: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 257f8dbe00
buildingplan: fix size calculation for constructions
Planning a 4x2 construction with DF's `umkh` keys (i.e. not automaterial's box-select) would previously produce a 5x3 construction instead, for example.
2021-04-01 00:16:54 -04:00
Ben Lubar c06d1f8e52
tagged union support for lua (#1818) 2021-03-30 15:55:06 -05:00
lethosor 572b6ebab5
Fix warning (#1796) 2021-03-27 00:11:50 -04:00
lethosor d61c4aa234
Merge remote-tracking branch 'myk002/myk_xlsxreader_classes' into develop 2021-03-27 00:10:03 -04:00
myk002 4d2af8438f
always read all cells to work around xlsxio bug
otherwise xlsxio will return a spurious empty row on next row read
2021-03-26 19:43:15 -07:00
lethosor 26e41005e3
Fix fastdwarf warning 2021-03-25 17:20:33 -04:00
myk002 aac958aa50
add open() wrapper fn and document class methods 2021-03-22 09:38:20 -07: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 1f9e875bcd
Update stonesense, scripts 2021-03-11 00:00:49 -05:00
Ben Lubar 67ed9e135f
update stonesense ref 2021-03-10 15:45:36 -06:00
Ben Lubar f566284b80
update stonesense ref 2021-03-10 15:31:50 -06:00
Ben Lubar 1554d06831
update stonesense submodule 2021-03-10 15:14:12 -06:00
DFHack-Urist via GitHub Actions 45823c2745 Auto-update submodules
scripts: master
plugins/stonesense: master
2021-03-10 07:15:44 +00:00
myk002 69a2f44020
Lua class wrappers for the xlsxreader plugin API 2021-03-08 15:04:50 -08:00
Ben Lubar 4aaa54c056
dwarfvet: remove console spam when plugin is enabled but no hospitals exist 2021-03-07 14:59:41 -06:00
PatrikLundell ef53c2d672 adapted to changed df-structures enum value names 2021-03-05 12:45:51 +01:00
lethosor 9df06564a0
Merge remote-tracking branch 'PatrikLundell/Prospector' into develop
Conflicts:
	docs/changelog.txt
2021-03-03 23:56:06 -05:00
lethosor 1b2eed7c5e
confirm convict: use visible name to avoid exposing alternate identities
Ref #1593
See also:
https://www.reddit.com/r/dwarffortress/comments/ltzu82/if_i_wasnt_sure_i_found_the_vampire_before/
http://www.bay12forums.com/smf/index.php?topic=164123.msg8253738#msg8253738
2021-02-28 01:01:47 -05:00
lethosor 4a7fcc6118
Fix plugin name in error, add link in docs
Ref #1769
2021-02-25 00:41:13 -05:00
lethosor cb9ed4ff0c
Merge remote-tracking branch 'myk002/myk_manipulator' into develop
Conflicts:
	docs/changelog.txt
2021-02-25 00:39:01 -05:00
lethosor af34b5d614
Merge remote-tracking branch 'bseiller/ea_improve_survey_performance_keep_mlts_on_heap' into develop 2021-02-23 00:22:22 -05:00
bseiller 60e83046f8 Prevent accidental double-frees
- matcher.cpp, survey.cpp: setting the state pointer to null/nullptr in ::shutdown() to prevent errors caused by accidental double-frees - an additional check if the pointer is null already is not necessary as the standard guarantees that nothing happens if delete is called on a nullpointer

Co-Authored-By: Alan <3719547+lethosor@users.noreply.github.com>
2021-02-20 22:43:12 +01:00
myk002 de9375574a
fix syntax error 2021-02-18 23:25:21 -08:00
myk002 3e6294198b
update wording of fortplan deprecation notice 2021-02-18 23:23:50 -08:00
myk002 09f0607db2
add deprecation warnings to fortplan 2021-02-13 11:07:14 -08:00
myk002 55743fc43f
Merge remote-tracking branch 'upstream/develop' into myk_manipulator 2021-02-13 07:16:58 -08:00
Ben Lubar a051077820
update structures 2021-02-10 18:54:12 -06:00
lethosor ebbbfc0f8e
Merge remote-tracking branch 'myk002/myk_orders_crash' into develop
Conflicts:
	docs/changelog.txt
2021-02-10 00:10:53 -05:00
bseiller 6ffbf401c4 Merge branch 'develop' into ea_improve_survey_performance_keep_mlts_on_heap 2021-02-09 08:42:42 +01:00
PatrikLundell 4660f52b36 improved pre embark mineral estimates 2021-02-08 14:45:49 +01:00
myk002 09d91dcae1
move alchemist-enabling logic to autohauler 2021-02-06 14:14:08 -08:00
myk002 6819ee9928
make alchemist flag valid for controllable civs 2021-02-05 16:45:39 -08:00
myk002 4d57d27d4d
Revert "allow alchemist skill to be toggled in manipulator"
This reverts commit fa662cafbc.
2021-02-05 16:10:36 -08:00
bseiller efc92750fa Fix crash
embark-assistant.cpp: Move call to survey::initiate() after call to survey::setup(), otherwise state won't exist
2021-02-04 01:10:10 +01:00
bseiller 52bf998224 Adapt to review comments by @PatrikLundell
- survey.cpp: rename loop variable for more clarity; replace use of parmeter with use of vector.size(), replace nested vector.at calls with direct index access/subscript as it is faster and easier to read
2021-02-03 14:32:03 +01:00
bseiller 0c304cf85f Improve performance of surveying => faster search
replace the local/automatic mid_level_tiles variable in matcher::match_world_tile with one that is created once during the setup phase (heap).
The dynamic part of the contained (16*16*3 = 768) vectors is being allocated on the heap in both cases - which made the repeated instatiations of the automatic variable so slow/expensive.

Also replace calls to vector<bool>.resize in nested loops with direct assignments to those vectors, which curiously even after a lot of profiling is the fastest way to reset the inorganic vectors - at least on Windows.

- embark-assistant.cpp: Replace 2 local/automatic mid_level_tiles variables with a single dynamic variable created during setup as well; add calls to matcher::setup() and matcher::shutdown()
- matcher.cpp/.h: add state with mid_level_tiles member; add setup and shutdown functions
- survey.cpp: add function reset_mlt_inorganics as replacement for the looped calls to vector::resize as all inorganic vectors are now expected to have the proper size when entering survey::survey_mid_level_tile
2021-02-03 00:08:59 +01:00
myk002 1063497828
don't crash on malformed orders json 2021-02-02 10:50:21 -08:00
myk002 fa662cafbc
allow alchemist skill to be toggled in manipulator
since autohauler uses it as a flag
2021-02-02 08:28:48 -08:00
bseiller 56335977ab Merge branch 'develop' into ea_refactoring 2021-02-01 23:36:04 +01:00
bseiller fede136008 refactoring embark-assistant survey, 12.iteration
- survey.cpp: replace repeated (nested) vector access with an const int / auto pointer in survey_mid_level_tile
2021-02-01 22:57:30 +01:00
bseiller aff64956fb refactoring embark-assistant survey, 11.iteration
- survey.cpp: replace repeated (nested) vector access with a auto pointers in survey_mid_level_tile
2021-02-01 22:53:45 +01:00
bseiller 4fdcec5893 refactoring embark-assistant survey, 10.iteration
- survey.cpp: replacing repeated vector access with auto value in survey_mid_level_tile
2021-02-01 22:36:16 +01:00
bseiller 1ed783284e refactoring embark-assistant survey, 9.iteration
- survey.cpp: replacing repeated vector access with a const world_geo_biome pointer in survey_mid_level_tile
2021-02-01 22:31:58 +01:00
bseiller 9d64c9a549 refactoring embark-assistant survey, 8.iteration
survey.cpp: remove unused includes
2021-02-01 22:25:57 +01:00
bseiller db423cc11e refactoring embark-assistant survey, 7.iteration
- survey.cpp: replacing repeated nested vector access with a const df::inorganic_raw pointer in survey_mid_level_tile
2021-02-01 22:22:10 +01:00
bseiller aa520dfcce refactoring embark-assistant survey, 6.iteration
- survey.cpp: add function to copy all incursion values from one  mid_level_tile_incursion_base instance to another; replace repeated assignments with  calls to new function in survey_mid_level_tile
2021-02-01 16:00:01 +01:00
bseiller 3181532bf2 refactoring embark-assistant survey, 5.iteration
- survey.cpp: replacing repeated nested vector access with a const mid_level_tile reference in survey_mid_level_tile
2021-02-01 00:24:56 +01:00
bseiller 16438c59c8 Remove trailing whitespace as per lint rules 2021-01-31 14:03:49 +01:00
bseiller 115b8a439f fixing use of wrong indices, discovered during refactoring in survey::survey_mid_level_tile
- survey.cpp: replacing faulty repeated nested vector access (due to wrong indices) with the existing region_map_entry reference
2021-01-31 13:58:17 +01:00
lethosor fd7c3fc4aa
Prevent stockpiles hotkey label from overlapping with autodump
stockflow moved to last slot because it isn't enabled in dfhack.init-example

Ref #1764
2021-01-30 21:14:45 -05:00
lethosor 9c65c1f7c7
Merge remote-tracking branch 'myk002/myk_stockpiles_stockflow_conflict' into develop
Conflicts:
	docs/changelog.txt
2021-01-30 21:11:58 -05:00
lethosor c78866aba7
Merge remote-tracking branch 'abstern/autofarm-fallow-if-no-eligible-plants' into develop 2021-01-30 18:09:12 -05:00
lethosor 62870e9aee
Remove extra log statement, reorder changelog
ref #1753
2021-01-30 18:08:17 -05:00
lethosor 9d0eacadbf
Merge remote-tracking branch 'Moth-Tolias/seedwatch' into develop 2021-01-30 17:56:16 -05:00
bseiller 741e430a06 removing dead store from survey::survey_mid_level_tile
- survey.cpp: deleting declaration of and assigments to variable base_z which is never used apart from a self-assigment
2021-01-30 23:37:09 +01:00
bseiller 028a68ae6f refactoring embark-assistant survey, 4.iteration
- survey.cpp: replacing repeated nested vector access with a region_map_entry reference in survey_mid_level_tile; made a reference mid_level_tile const to prevent acidental change of values
2021-01-30 23:33:09 +01:00
bseiller b1cf65860c Merge branch 'develop' into ea_refactoring 2021-01-30 17:39:41 +01:00
Susan 8540fd84a4 move world loaded check and message printing to plugin_enable() 2021-01-30 15:14:46 +00:00
lethosor c6da99e5ce
Merge remote-tracking branch 'myk002/myk_stockflow_steals_input' into develop
Conflicts:
	docs/changelog.txt
2021-01-30 01:59:44 -05:00
lethosor 845993ba59
Merge remote-tracking branch 'lethosor/fix-k-search-crash' into develop 2021-01-29 20:08:08 -05:00
Su 545fcf6745
Merge branch 'develop' into seedwatch 2021-01-29 11:34:57 +00:00
Susan 33342404bc Merge branch 'seedwatch' of github.com:Moth-Tolias/dfhack into seedwatch 2021-01-29 11:27:34 +00:00
Susan a3b0cda069 don't enable if no world is loaded 2021-01-29 11:26:46 +00:00
lethosor 5c14f619c8
Merge remote-tracking branch 'myk002/myk_buildingplan_enable_all' into develop 2021-01-29 00:59:33 -05:00
lethosor 4fbd763c1a
Also cancel 'k' search when hotkeys (F1 - Shift-F8) are pressed 2021-01-29 00:28:32 -05:00
lethosor 865484f678
Merge branch 'develop' into fix-k-search-crash
Conflicts:
	docs/changelog.txt
2021-01-29 00:16:13 -05:00
bseiller b33f06efee refactoring embark-assistant survey, 3.iteration
- survey.cpp: replacing repeated nested vector access with a mid_level_tile reference in survey_mid_level_tile
2021-01-28 23:48:09 +01:00
bseiller e90e84ab87 refactoring embark-assistant survey, 2.iteration
- survey.cpp: replacing pointer and repeated nested vector access with a region_tile_datum reference in survey_mid_level_tile
2021-01-28 23:40:58 +01:00
bseiller 6e012bb032 refactoring embark-assistant survey, 1.iteration
- survey.cpp: replacing repeated double vector access with a reference in survey_mid_level_tile
2021-01-28 23:38:40 +01:00
Su 98f3142c92
change deactivation message to be more accurate
Co-authored-by: Alan <lethosor@users.noreply.github.com>
2021-01-28 18:00:34 +00:00
myk002 42ae0727fe
resolve hotkey help text conflict
between stockflow and stockpiles

I removed stockpiles's dynamic placement code as well. it attempted to
move the hotkey help text down if it covered any stockpile links, but
this will no longer work since other hotkey text already takes up all
the lines below stockpiles' hotkey text.
2021-01-27 08:37:12 -08:00
myk002 ff69665815
keep stockflow from stealing input during rename 2021-01-27 08:25:21 -08:00
bseiller 1f7cae17ef Merge branch 'develop' into ea_incursion_struct 2021-01-26 23:22:59 +01:00
myk002 10634b8ae5
fix merge error 2021-01-24 09:19:01 -08:00
Myk Taylor d0fc448a39
add 'enable all' option for buildingplan
This kind of functionality is much more important now than it used to
be since there are so many supported building types.

Also modified the 'Planning Mode' status on the building placement
screen to reflect whether we're in quickfort mode, enable all mode, or
whether just the building type is enabled.

this setting is not persisted (just like quickfort_mode is not
persisted), but it can be set from onMapLoad.init
2021-01-24 09:08:36 -08:00
bseiller 3c4cb749a3 Merge branch 'develop' of https://github.com/DFHack/dfhack into prevent_repeated_survey_mlt_calls 2021-01-24 13:57:27 +01:00
bseiller c525b80dda Merge branch 'develop' of https://github.com/DFHack/dfhack into ea_incursion_struct 2021-01-24 13:54:25 +01:00
lethosor d01e61c658
Fix some error message formatting and add some cross-links to docs
Followup to #1747
2021-01-22 21:05:20 -05:00
lethosor 5ef7a81fd1
Merge remote-tracking branch 'myk002/myk_buildingplan_set_settings' into develop 2021-01-22 20:57:30 -05:00
myk002 ad39bb3c33
address review comments 2021-01-22 12:48:36 -08:00
bseiller 6a1b70ae76 making lint happy by removing trailing whitespace 2021-01-19 17:43:32 +01:00
bseiller 438811e108 handling special case of the cursor having been positioned in the lower right corner before the search
- matcher.cpp: manually moving the cursor to the neighbouring world tile so it can be moved back and embark_update is being called when all (incursion) data has been collected

Co-Authored-By: PatrikLundell <22739822+PatrikLundell@users.noreply.github.com>
2021-01-19 16:37:59 +01:00
bseiller 9b9373be4f removing commented out assigments 2021-01-19 12:06:36 +01:00
bseiller cb496c3f59 fixing indention/whitespaces
- defs.h: replacing tab with space/blank for indents
2021-01-19 00:07:28 +01:00
bseiller e99c8faa24 switching to mid_level_tile_incursion_base to store incursion data of world tile edges
- defs.h: using mid_level_tile_incursion_base in region_tile_datum to store incursion data of world tile edges
- survey.cpp: commented out "not used" blocks of assignment in survey_mid_level_tile that no longer make sense now
2021-01-19 00:01:54 +01:00
bseiller bdfd50cc65 using mid_level_tile_incursion_base instead of mid_level_tile for incursion processing
- matcher.cpp, survey.cpp: adapting signatures to use new struct that only contains incursion specific attributes
2021-01-18 23:50:14 +01:00
bseiller cc68767336 created struct mid_level_tile_incursion_base that only contains attributes that are relevant for incursion processing
- def.h: make attributes/fields of mid_level_tile_incursion_base available in mid_level_tile by inheriting from mid_level_tile_incursion_base which also allows treating mid_level_tile as a mid_level_tile_incursion_base
2021-01-18 23:23:50 +01:00
bseiller 85fe05b723 early return from embark_update during an active search to improve performance
- embark-assistant.cpp: checking if a search is active, if so return early
2021-01-18 22:08:46 +01:00
bseiller c300cae2f9 removing 2 dead stores to speed up survey::survey_mid_level_tile
- survey.cpp: removing layer_bottom and layer_top, which are never read, but slow down survey_mid_level_tile significantly because entries are added quite often into the tree map structure
- survey.h: removing now obsolete include for map
2021-01-18 19:38:57 +01:00
Susan 84b07005d8 tabs to spaces [whoops] 2021-01-16 23:47:41 +00:00