Pauli
123de7fdf7
Use constexpr to prevent attempts of linking static variable
2018-06-24 17:06:32 +03:00
Pauli
9b6781f0f2
Temporary lower command-prompt when executing the command
...
command-prompt viewscreen may affect command execution if they are
looking for UI state. To make commands execute simillary to hotkeys or
console commands the viewscreen needs to removed from the top position.
Fixes #1194
2018-06-20 21:51:45 +03:00
Pauli
9c59b7ff48
Fix unlikely memory leaks if Screen::show fails
...
The Screen::show takes ownership of the screen pointer. I decided to
switch the parameter to std::unique_ptr to make the pointer ownership
explicit. The unique_ptr then provides automatic screen destruction in
Screen::show unless pointer is inserted or is already in the linked list
that is managed by df.
2018-06-19 16:41:31 +03:00
Pauli
1b5ec7ce69
Update jobs when committing MapCache changes
...
The map_block->designation.{dig,smooth} are reset to zeros when a job
posting is created for the designation. The job is then used to override
the designation state in the map_block. To make the new designation set
propogate to jobs the job structure would require updating. The update
would be possible a complex operation. The simple alternative is to
remove the job and let df create a new job in the next tick.
Fixes #1229
2018-06-18 16:34:09 +03:00
Pauli
6a151353e3
Use automatic return type for index_tile
2018-06-18 16:23:57 +03:00
lethosor
10e6016989
Merge branch 'units_dead' into develop
...
Closes #1297
2018-06-13 15:38:35 -04:00
PatrikLundell
f329774059
dead & killed flag separation
...
squashed 4 commits from #1297
2018-06-13 15:37:45 -04:00
lethosor
03968db344
Fix GCC warnings in 'tweak kitchen-prefs-all' and dev plugins
2018-06-01 10:02:38 -04:00
lethosor
7a04fefb0b
Remove Vermin module (unused and obsolete)
2018-06-01 00:22:10 -04:00
lethosor
17ba492992
Add some exclusion functions to Kitchen module, expose to Lua, fix build
2018-05-17 19:34:03 -04:00
lethosor
97a79893e7
Change Kitchen.{h,cpp} to title case
2018-05-17 11:08:13 -04:00
lethosor
e9ec08f419
Add Buildings::getRoomDescription(), moved from search plugin, +cleanup
2018-05-12 17:00:21 -04:00
lethosor
c15571caa0
Move isRouteVehicle, isSquadEquipment from workflow to Items module
2018-05-12 14:49:30 -04:00
lethosor
a34b34d3cb
Move a few item functions from autotrade/stocks into DFHack::Items
2018-05-12 12:04:46 -04:00
lethosor
2a52582c1f
Add Gui::inRenameBuilding
2018-05-09 10:23:05 -04:00
lethosor
1ba5477b63
Add designation priority support to MapCache and dig plugin
...
Fixes #481
2018-01-21 19:27:16 -05:00
lethosor
10e13c532a
Add "tweak cage-butcher" and some extra Building module functions
...
* Buildings::markedForRemoval()
* Buildings::getCageOccupants()
Closes #906
2017-06-25 15:27:21 -04:00
lethosor
ae809afde7
Add Gui::refreshSidebar()
...
This handles feeding CURSOR_DOWN_Z and CURSOR_UP_Z properly, avoiding issues
when on the lowest z-level.
2017-06-23 00:02:21 -04:00
lethosor
27343e3253
Add unit and tile visibility functions
2017-06-10 21:54:08 -04:00
lethosor
778ffb0971
More Units module cleanup, modernize getUnitsInBox
2017-06-10 21:02:30 -04:00
lethosor
1321a64613
Remove lots of old/unused functions from the Units module
2017-06-10 17:21:34 -04:00
lethosor
43c4a88068
Move some checks in paintTile/readTile after hooks are called
2017-06-02 00:40:14 -04:00
lethosor
05f322ca30
Merge remote-tracking branch 'lethosor/lua-dmdims' into develop
2017-06-01 23:34:35 -04:00
lethosor
939aff3231
readTile(): add hook support and map parameter
2017-05-31 12:12:15 -04:00
lethosor
55931703ac
Designate the correct tile for trees with multi-tile trunks
...
DF always designates the southeast trunk tile, while plant.pos is the center,
which is sometimes inaccessible (see #1014 )
2017-05-05 21:25:25 -04:00
lethosor
d3c496cc2b
Add getSelectedPlant() and related functions
...
Currently only works with the center tile of multi-tile trees
2017-05-05 14:45:46 -04:00
lethosor
1e469453fc
Add Designations module, currently supporting plant/tree designations
...
This makes it easier for tools to properly handle designating and undesignating
trees for chopping and plants for gathering, which changed significantly in
0.40.20.
Ref #531 (?), #656 , #1014 , #1018 , #1030 , #1076
2017-05-04 21:47:12 -04:00
lethosor
71b553b305
Add a few functions to retrieve unit social activities
2017-04-28 17:25:58 -04:00
David Corbett
acdb369aa8
Avoid non-trivial bitfield constructors
2016-12-09 13:41:14 -05:00
lethosor
8521b830b2
Merge remote-tracking branch 'CannibalVox/job_remove' into develop
2016-12-05 15:24:37 -05:00
Stephen Baynham
595f3857b6
Reverse the param order of these two methods
...
The current way doesn't match other Job module methods
2016-12-01 20:13:49 -08:00
Stephen Baynham
7920f71517
Bad formatting
2016-11-25 00:25:18 -08:00
Stephen Baynham
e490afdf00
Rebuilt slightly to offer bool return val
...
We fail on unknown general ref types now, without modifying the job at
all yet
2016-11-24 22:36:11 -08:00
Stephen Baynham
74f5df99db
Add job remove method
...
Job remove eliminates a job's worker & holder references, if any, puts
the worker on cd, if appropriate, removes the job's postings, eliminates
the job from the global linked list, and then finally deletes it. This
code was tested by incorporating it into autochop and it does make the
plugin work. However, chop jobs don't have holder building references,
and anyway, with DF being 90% edge case by volume, this could use a heck
of a lot more testing.
I saw elsewhere code that prevented worker removal if the job was a
special job, and that made me feel funny so I made the job remove method
not work if the job is a special job.
2016-11-17 19:54:41 -08:00
lethosor
8a138fcc4c
Avoid polluting global namespace in MapCache.h
2016-10-15 14:53:10 -04:00
lethosor
70d3c07cdb
Initial lua getDwarfmodeViewDims rewrite
2016-10-07 23:51:58 -04:00
lethosor
e965f5318f
Replace many includes with forward declarations in modules/Maps.h
2016-08-13 21:44:01 -04:00
lethosor
79377669a1
Merge remote-tracking branch 'NCommander/dwarfvet' into develop
2016-07-29 16:25:53 -04:00
lethosor
2455e36510
Initial 64-bit support
2016-07-03 23:32:43 -04:00
Michael Casadevall
e45fbfc61d
Modified dwaftvet plugin to work with latest DFHack
...
Initial commit of the dwarfvet plugin
Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-08 04:14:59 -04:00
lethosor
52728babd4
Merge branch 'develop' into zone-unassign
2016-04-22 18:41:15 -04:00
lethosor
b97d33ca28
moveToBuilding improvements
...
- Don't set in_building by default when use_mode is 0 (consistent with most vanilla DF items)
- make use_mode optional and default to 0 (including in Lua API)
Resolves #885
2016-04-05 11:43:02 -04:00
lethosor
25507a10f9
Add Units::getKillCount() and expose it to Lua
2016-02-25 15:21:14 -05:00
sv-esk
83c70ccb0f
forbid manipulator editing non-citizens
2016-02-11 13:31:52 +02:00
James Gilles
0a670bb0db
Implement #804 , move some functions to Units, colorize zone output, a
...
little cleanup
2016-02-01 11:12:06 -05:00
lethosor
d0c28d3f50
Prevent plugins with active viewscreens from being unloaded
...
This requires plugins to pass plugin_self to Screen::show(), but
avoids the need to implement special checks in plugin_onstatechange
for the SC_BEGIN_UNLOAD event.
2016-01-01 11:15:29 -05:00
lethosor
2a2ab00ca9
Add "map" parameter to a lot of drawing functions
...
Ref #746
2015-12-22 11:42:51 -05:00
lethosor
5a1e5e1464
Expose Units::casteFlagSet()
2015-12-19 11:07:35 -05:00
lethosor
2aeac718cc
workflow: Account for job postings correctly and fix existing issues
...
Without removing postings correctly, it was possible to end up with
multiple workers assigned to a job that workflow had suspended
multiple times, which caused crashes if more than one worker was
assigned to the same job by DF.
This adds an additional command, fix-job-postings, that runs
automatically when loading a world and fixes:
- Multiple job postings that point to the same job
- Job postings that point to a job where posting_index == -1
(i.e. jobs that should have no posting assigned)
Fixes #741
2015-11-25 20:33:13 -05:00
lethosor
610170b0b0
Add hooks for getDwarfmodeViewDims and getDepthAt (new)
2015-11-15 11:54:34 -05:00
lethosor
fcfffd1cb6
Track state of gui hooks
...
Also fix a bug in drawborder() and expand color-dfhack-text to test
multiple hooks
2015-11-15 11:54:34 -05:00
lethosor
fff9072b07
Add initial support for hooking into Gui-related functions
2015-11-15 11:54:34 -05:00
DoctorVanGogh
e9be1aa657
Fix for construction over existing construction & on top of walls
...
Fix to allow constructions on top of (natural) down stairs
2015-11-06 19:00:43 +01:00
lethosor
ac71fa8070
Add isValidLabor() to Units module
...
Closes #711 and could avoid potential issues when editing units from
other civs with manipulator.
2015-10-30 18:41:09 -04:00
lethosor
8de710f1c1
Add Renderer module - safer way to install custom renderers
2015-10-21 17:18:39 -04:00
lethosor
3f5c002634
Pass virtual_identity by reference
2015-10-03 09:27:24 -04:00
lethosor
d343dfd8a0
Add a function to find viewscreens (or parents) of a given type
...
This makes it possible for some plugins to detect the game state more
reliably - for example, prospector would previously fail when
embarking if the viewscreen_choose_start_sitest instance had any
children.
2015-10-02 21:50:55 -04:00
lethosor
36fde3d7e3
Allow Lua screens to allow OPTIONS to work
2015-06-05 18:45:52 -04:00
lethosor
bbb41078e7
Expose PenArray dimensions and tiles to Lua
2015-03-28 18:35:07 -04:00
lethosor
e2b6ae9beb
Allocate Lua PenArray objects using an existing buffer
2015-03-28 11:27:47 -04:00
lethosor
99f4ea4d2b
Implement a PenArray class for caching parts of rendered screens
2015-03-27 22:56:30 -04:00
lethosor
afca7419dc
Add gametype checks to World.cpp
2015-03-09 20:08:21 -04:00
lethosor
10cfef0553
Fix whitespace issues
2015-02-14 22:53:06 -05:00
expwnent
e9b4fc513a
Merge remote-tracking branch 'cdombroski/zone-plugin-cleanup' into temp
...
Conflicts:
NEWS
plugins/zone.cpp
2015-01-31 21:01:41 -05:00
lethosor
066adfdf95
Implement a function to list directories recursively
2015-01-30 17:29:17 -05:00
Chris Dombroski
f608235b1e
Fix some Lua things
2015-01-29 19:56:50 -05:00
Chris Dombroski
f2eec3198c
Rename findPenPitAtCoord
2015-01-29 15:02:54 -05:00
Chris Dombroski
86495270a6
Remove duplicate isMilkable definition.
2015-01-29 14:40:09 -05:00
Chris Dombroski
48b6cf1beb
Export functions to Buildings.h
2015-01-29 13:57:50 -05:00
lethosor
daf739fcec
Remove FIFO support
2015-01-28 21:39:17 -05:00
Chris Dombroski
c179f5b913
Extract some stuff from zone.cpp to plugins/Units.{h,cpp}
2015-01-28 21:28:32 -05:00
lethosor
f98e2964e6
Fix a few Windows compilation errors
2015-01-28 20:05:24 -05:00
lethosor
bebceffa5f
Add Filesystem::listdir()
2015-01-28 19:15:58 -05:00
lethosor
e8c0482fdc
Add atime()/ctime()/mtime()
2015-01-28 18:18:06 -05:00
lethosor
2e3261565c
Clean up Filesystem.h
2015-01-28 17:15:09 -05:00
Casey Link
7072252902
fix build error on windows
...
with certain #include permutations the lack of this define would
break the build on windows as windows.h pollutes the namespace with min
and max macros that conflict with std::min and std::max.
2014-12-05 12:35:24 +01:00
lethosor
445640f80c
Allow commands invoked through command-prompt to access selected items/units/buildings
...
Fixes #273
2014-11-25 20:25:31 -05:00
expwnent
779ac3fd50
Updated interaction-trigger to work better.
2014-11-09 18:36:21 -05:00
Eric Wald
8631da7e4e
Convenience method to collect a vector from StockpileIterator.
2014-09-07 14:10:27 -06:00
Eric Wald
567397df85
Stockpile iterator.
...
Efficient way to operate on all items stored on a stockpile.
Doesn't currently check whether the items match the stockpile settings,
but does ignore empty containers assigned to the stockpile.
2014-09-07 13:52:07 -06:00
Quietust
deee486b81
Update Maps::SortBlockEvents to include spoors and item spatters
2014-08-20 10:51:58 -05:00
Alexander Gavrilov
2471c4a68e
Add a new API for converting between interface_key and string characters.
...
It's necessary now that the simple linear arrangement is broken.
2014-08-11 14:23:19 +04:00
Quietust
1450298484
assumed_identity -> identity
2014-07-29 16:30:22 -05:00
JapaMala
b598cbb0dd
Merge branch 'develop' of github.com:DFHack/dfhack into develop
2014-07-20 16:43:00 +05:30
JapaMala
a14caa53d0
Fixed mapcache reading plants in for 0.40.01 onwards.
2014-07-20 16:41:20 +05:30
expwnent
2fb8faf3e6
Added Items::createItem function.
2014-07-03 10:39:20 -04:00
expwnent
81c87d0921
EventManager: INTERACTION event for unit interactions.
2014-07-03 04:55:12 -04:00
expwnent
4ac32cfd74
EventManager: made UNIT_ATTACK trigger for severed body parts.
2014-07-01 08:58:48 -04:00
expwnent
961d033ade
EventManager: unload event for convenience.
2014-06-29 10:03:55 -04:00
expwnent
8e7e87ac73
Added UNIT_ATTACK event to EventManager and exposed it to Lua.
2014-06-28 02:31:34 -04:00
expwnent
7313c18a2a
EventManager/eventful: added ON_REPORT event and exposed it to Lua.
2014-06-23 09:15:46 -04:00
expwnent
036aae060b
Merge lethosor stuff. For some reason, git's auto merge message didn't happen because of git-stash shenanigans. Oh well.
2014-06-19 22:58:17 -04:00
lethosor
ef69522d93
Merge branch 'develop' into filesystem-module-pr
2014-06-18 15:45:42 -04:00
lethosor
6fa478de22
Filesystem module
...
Implements a handful of filesystem-related functions (e.g. chdir, mkdir)
in C++ and Lua.
2014-06-15 22:38:17 -04:00
Pierre-David Bélanger
bdcc00f6f7
Util method (in the Units class) to get a unit squad name (the translated name, or alias if set)
2014-06-09 21:51:52 -04:00
Quietust
0f4684f29d
Add Items::getItemBaseValue and Items::getValue, available from Lua
2014-04-25 11:04:21 -05:00
Quietust
c3d45c3a1e
Add Job::getName(job *), also available from Lua
2014-04-23 08:03:10 -05:00
Alexander Gavrilov
c27c38e4c0
Remove tired or hungry siege operators from duty when at peace.
...
The threshold is set at the level when they start to blink - normally
they would continue on with the job until they get a thirsty/hungry
thought, but immediately run off to eat if they lose the job (thus
refusing to load the engine after firing it). The code checks for
active sieges and whether there is a free replacement unit.
2014-04-15 21:52:39 +04:00
Alexander Gavrilov
fc9826389b
Account for meandering movement when predicting unit path in siege engine.
...
The movement is random, but there is an average slowdown coefficient.
2014-04-15 19:50:23 +04:00
Alexander Gavrilov
7844907204
Add new API functions for creating announcements and combat reports.
...
Allow specifying the announcement flags directly, and adding unit
combat reports. Also, make announcement functions write the message
to the game log.
2014-04-15 19:50:23 +04:00