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
Tachytaenius
1cf9688349
Implement/change/expose constructions findAtTile & insert (not building)
2022-10-12 21:10:22 +01: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
Myk Taylor
dbc5001bd8
fail if mouse cursor isn't over the map area
2022-09-18 13:27:13 -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
lethosor
f021dd0e0a
Gui::getAnyItem(): add support for viewscreen_treasurelistst
2022-07-12 11:25:16 -04:00
lethosor
4cdb0ff138
Merge branch 'rm-old-modules' into develop
2022-07-12 11:23:10 -04:00
Myk
e0d37a31ae
Make the manager orders library available by default ( #2233 )
...
* move orders out of examples directory
* install orders into library dir
* read orders from new library dir
* update documentation
* update dreamfort references to orders import
* update changelog
* ignore json files in pre-commit
2022-07-06 07:03:29 -07:00
lethosor
1147add520
Constructions module: remove some old/unused functions/types
2022-06-29 23:35:14 -04:00
lethosor
4c7caa2658
Remove unneeded dependencies on modules/Graphic.h
2022-06-29 23:35:13 -04:00
lethosor
8bb047fcc6
Remove Notes module
...
Only used in a devel plugin that prints notes, and can be easily replaced
with `ui.waypoints.points`
2022-06-29 23:35:13 -04:00
Myk
ba629b8e0a
manually handle DestroyBuilding jobs ( #2209 )
...
* don't delete general refs from jobs that we cancel
though we still disconnect the refs if we can
* get job remove working in all cases
we apparently need to manually handle DestroyBuilding jobs
everything else we should let cancel_job handle
* update changelog
2022-06-21 16:38:04 -07:00
Josh Cooper
d38ab1d152
Fix UNIT_NEW_ACTIVE events ( #2197 )
...
* Updates eventful.lua to use UNIT_NEW_ACTIVE
* Fixes bug #2189
* Revises activeUnits declaration/initialization
* Fixes build error
* Update changelog.txt
* reword changelog entry
* add changelog entry for event name change
Co-authored-by: Myk <myk002@yahoo.com>
2022-06-17 09:34:41 -07:00
Myk
85d7489b3c
ensure refs are cleaned up when we remove a job ( #2184 )
...
* ensure job items are disassociated from the job
when the job is removed. the new df-provided ``cancel_job()`` doesn't do
this for us whereas the old custom implementation did.
ref: #2028
* remove trailing whitespace
* Clean up general refs before removing job
Because the game method doesn't do it itself
* Fix typo in var name
* clean up code
* update changelog
2022-06-11 07:38:22 -07:00
Ryan Williams
a7267e3c4e
Optimize report deletion
2022-06-07 04:21:48 -07:00
Ryan Williams
5d08e5ae67
More constants; remove extra "using" statements
2022-06-06 01:56:11 -07:00
Ryan Williams
ce36abce47
Fixes
2022-06-04 15:46:02 -07:00
Ryan Williams
ae4446610b
Update Gui.cpp
2022-06-04 15:36:50 -07:00
Ryan Williams
16b5cade00
Add constants, update old fns
...
Add MAX_REPORTS_SIZE, RECENT_REPORT_TICKS
Remove redundant "using df::global::world" inside fns
Update `makeAnnouncement`:
Use `word_wrap`, `pauseRecenter`, and utility fn `delete_old_reports`
Handle repeat announcements
Insert sorted into ``world->status.announcements``
Update `addCombatReportAuto`: Use utility fn `recent_report`
Update `showPopupAnnouncement`: Delete old popups at end of fn
Update `getDwarfmodeViewDims_default`: Check for ui_sidebar_mode::Default and ArenaWeather
2022-06-04 15:23:57 -07:00
Ryan Williams
23e85a0d24
Fetch and merge
2022-06-04 12:17:28 -07:00
Ryan Williams
b0b601cf0f
Remove recenterViewscreen, update revealInDwarfmodeMap
2022-06-04 11:59:04 -07:00
Ryan Williams
b1e118384e
Update Maps.cpp
2022-05-30 16:26:30 -07:00
Ryan Williams
574728ac5c
Move add_proper_report up with other utility fns
2022-05-30 15:04:43 -07:00
Ryan Williams
0ff0d272b5
use static instead of anon namespace; suggested changes
2022-05-30 13:51:24 -07:00
Ryan Williams
1c3ea000e1
Trim trailing whitespace
2022-05-28 15:56:49 -07:00
Ryan Williams
249ed2888f
Fix scope issue
2022-05-28 13:28:10 -07:00
Ryan Williams
e613085b0e
remove whitespace
2022-05-28 12:39:49 -07:00
Ryan Williams
2b29431806
More fixes
...
* Use word_wrap()
* add_proper_report utility fn; have addCombatReportAuto use this
* Update Lua API.rst
* Update Gui.cpp
2022-05-28 12:35:49 -07:00
Ryan Williams
4b21e7afb4
Remove parseReportString from API (now utility fn)
...
Implementations using `word_wrap()` are commented out pending changes to that function.
2022-05-24 03:52:33 -07:00
Ryan Williams
ce34ac8f33
Use debugfilter; remove redundant changelog entries
2022-05-16 18:41:47 -07:00
Ryan Williams
74499ad64a
Use to_string on integer
2022-05-03 00:09:34 -07:00
Ryan Williams
f565de88e8
Fix stuff ( #4 )
...
* Update Lua API.rst
* Update Gui.h
* Update Gui.cpp
* Update LuaApi.cpp
2022-05-01 22:53:53 -07:00
Ryan Williams
b56d9520e9
Fix trailing whitespace
2022-04-25 00:39:05 -07:00
Ryan Williams
c7be54dac0
Update Gui.cpp
...
Add reverse engineered functions: parseReportString, autoDFAnnouncement, recenterViewscreen, and pauseRecenter.
Add versions of autoDFAnnouncement that don't take a report_init struct and that log unprinted announcements.
Add utility functions: recent_report, recent_report_any, delete_old_reports, and check_repeat_report.
2022-04-24 22:45:26 -07:00
Josh Cooper
9c9a7ef99a
Adds consistent interface signatures for Maps module
2022-04-21 19:40:58 -07:00
Josh Cooper
ff2bd8d953
Retypes the EventManager's constructions container
2022-04-18 23:53:23 -07:00
Josh Cooper
d6b2629cfc
Adds hash functions and operator overloads for event data structures
2022-04-18 23:53:23 -07:00
Josh Cooper
64b7de0339
Revises getVerb signature
2022-04-18 22:46:38 -07:00
Josh Cooper
018d189494
Simplifies report index safety
2022-04-18 22:46:38 -07:00
Josh Cooper
1f972d6c1c
Implements clang-tidy suggestions
2022-04-18 22:46:38 -07:00
Josh Cooper
9bf9a79a11
EventManager/Eventful - Generate event arrays ( #2097 )
...
* Replaces EventManager.cpp's event array with an auto-gen one
* Replaces eventful.cpp's event array with auto-gen one
2022-04-14 21:47:25 -07:00
lethosor
d1f0edd33b
Apply initial pre-commit config
2022-04-12 14:48:19 -04:00
Josh Cooper
b18eff9ce2
Revert EventManager to previous behavior, but keep new events
...
Fixes #2031
2022-03-29 09:42:24 -07:00
Ryan Williams
88b403ec7a
Add functions reverse-engineered from ambushing unit code ( #1992 )
...
* Add functions reverse-engineered from ambushing unit code
* Fix whitespace
* Fix debug_showambush check
* Remove getOuterContainerRef from Lua API
Don't think this works properly without allocating a new specific_ref. More trouble that it's worth.
* Fixed tile visibility check
* I don't think gamemode or gametype are ever NULL
* Minor tweaks to documentation
* Reimplement getOuterContainerRef for Lua; fix some comments
* Update Units.cpp and changelog
* Update Units.cpp
* Update changelog.txt
2022-03-13 17:19:35 -07:00
Kelly Kinkade
3d4c96de56
update Job.cpp to use the DF-provided job cancel method
...
use DF's provided job cancel function instead of the hackadoo workaround we used to use
2022-03-12 15:37:33 -08:00
Quietust
aa1bc3fe52
Cleanup Kitchen module (and the seedwatch plugin which uses it)
2022-03-12 12:04:34 -08:00
Josh Cooper
3f05859780
Revises manageJobStartedEvent, and adds comments
2022-03-12 11:33:27 -08:00
Josh Cooper
c8e7869375
Fixes some build errors
2022-03-12 11:33:27 -08:00
Josh Cooper
524f1670ed
Fixes missing namespace
2022-03-12 11:33:27 -08:00
Josh Cooper
ba5710f263
Adds new event type NEW_UNIT_ACTIVE
2022-03-12 11:33:27 -08:00
Josh Cooper
6ace4b2cf8
Fixes mistake in EventManager::manageTickEvent
2022-03-12 11:33:27 -08:00
Josh Cooper
b8ad0131ea
Modifies EventManager::registerTick to retain old behaviour of re-registering tick events
2022-03-12 11:33:27 -08:00
Josh Cooper
1107c03b86
Modifies EventManager unit loops
2022-03-12 11:33:27 -08:00
Josh Cooper
c550a6caf0
Updates EventManager job loops
2022-03-12 11:33:27 -08:00
Josh Cooper
07ffa0b8da
Fixes bug in manageJobStartedEvent
2022-03-12 11:33:27 -08:00
Josh Cooper
24255d3195
Adds event type JOB_STARTED
2022-03-12 11:33:27 -08:00
Josh Cooper
48444afbd5
Fixes issue in manageJobCompletedEvent
2022-03-12 11:33:27 -08:00
Josh Cooper
3e72d549d1
Switches iterators to pre-increment instead of post for EventManager
...
My understanding is that iterators (.begin()/end()) are slightly faster with
pre-increment instead of post. Something about avoiding a copy if I recall correctly.
I replaced all `([:alpha:]+)\+\+` with `++$1` so non-iterators were switched as well - luckily there is no impact to pre/post aside from with iterators.
2022-03-12 11:33:27 -08:00
Josh Cooper
f5ced46608
Refactors EventManager
...
- handler freq now works on an individual handler basis (set to 0 to fire as frequently as possible)
- tick events no longer need to be re-registered after every eventful tick
2022-03-12 11:33:27 -08:00
myk002
31397af99b
cache civzones so lookup is O(1) instead of O(N)
2022-02-26 15:32:25 -08:00
lethosor
e7754ea890
Enable -Wunused-variable and fix most errors
2021-09-07 01:16:21 -04:00
myk002
e9eef31344
refactor list item removal into a library fn
2021-08-19 19:51:25 -07:00
Myk
8b824244ac
Update library/modules/Items.cpp
...
Co-authored-by: Alan <lethosor@users.noreply.github.com>
2021-08-19 19:21:27 -07:00
myk002
06a85d6f0d
handle projectiles in the Items module
2021-08-19 17:44:13 -07:00
myk002
5b960b97bc
fix comment for Maps::getSize(); add getTileSize()
2021-07-30 13:09:12 -07:00
lethosor
f33db33c8f
Merge remote-tracking branch 'myk002/myk_force_extents' into develop + add extra changelog note
...
Conflicts:
docs/changelog.txt
2021-07-05 15:52:03 -04:00
lethosor
96dd249be0
getAnyPlant: use Maps::getPlantAtTile
...
Followup to #1882
2021-06-25 01:08:58 -04:00
Ryan Williams
c5e7a54d97
Rename to getPlantAtTile; remove extra variables
2021-06-23 23:03:22 -07:00
Ryan Williams
b64e28253f
Update Maps.cpp
2021-06-22 20:03:18 -07:00
myk002
1a016a0ff3
force creation of extents for abstract buildings
2021-06-07 07:02:46 -07:00
myk002
fc860478e4
move fastdwarf's teleport code to Units module
...
and expose in Lua API
2021-06-06 08:48:32 -07:00
myk002
aff5c9bf35
add getCursorCoords overload for df::coord
...
and factor out active cursor detection
2021-05-15 12:05:00 -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
myk002
9e17bc938c
only set labor validity for the player civ
2021-02-17 09:16:49 -08:00
myk002
6819ee9928
make alchemist flag valid for controllable civs
2021-02-05 16:45:39 -08:00
myk002
32a0363f31
move identity check up a bit to avoid useless work
2021-01-24 08:57:56 -08:00
myk002
03719f58df
avoid infinite parentage when linking rooms
2021-01-24 08:52:34 -08:00
myk002
3ba984c22c
only reset extents if they are unusable
...
this allows callers of Buildings::setSize() to "pre-initialize" the
extents to declare non-rectangular structures. this allows quickfort to
create non-rectangular stockpiles, farm plots, zones, etc. the extents
are still reset as before if the size of the building doesn't match the
caller's expectations.
this commit also fixes a memory leak when setSize() allocates memory for
extents, but the memory is not deallocated if the building is ultimately
invalid for some reason.
2020-12-16 11:10:47 -08:00
lethosor
8cb38ecf5b
Merge remote-tracking branch 'myk002/myk_metalhead_mario' into develop
2020-11-13 14:04:30 -05:00
myk002
76e8c495fe
revert skip_vector=true for now
2020-11-13 10:45:53 -08:00
myk002
fa126af1fd
undo unnecessary edits
2020-11-12 22:49:06 -08:00
myk002
10616a387f
cleaner mask-based implementation
2020-11-12 22:44:38 -08:00
myk002
02a86d761a
identify bars as non_economic items
...
allows Job::isSuitableMaterial() to match metal bars as a building
material
2020-11-12 19:10:06 -08:00
lethosor
913d860ae4
Use initial working directory as process path on Linux, and expose to Lua
2020-11-12 19:07:51 -05:00
lethosor
23b230495e
Merge branch 'develop' into cwd-handling
2020-11-12 18:44:05 -05:00
lethosor
1d0e2dc6bc
Update extents handling to use building_extents_type
2020-11-03 14:56:16 -05:00
Myk Taylor
09fbaba726
buildingplan: support all building types
...
Allow buildingplan to handle all building types, update the docs, and add in little extra fixes to ensure all the new types work correctly.
2020-10-16 14:23:35 -07:00
Myk Taylor
82013c0c5e
prep buildingplan for core algorithm changes
...
Lots of refactoring and reorganizing, with only cosmetic player-visible changes.
- show quickfort mode hotlkey label regardless of whether the current building type has buildingplan enabled. before, it was only shown after the user enabled buildingplan for the current building. this eliminates the extra step when enabling quickfort mode, which force-enables all building types.
- changed signature of lua-exported isPlannableBuilding to take subtype
and custom type in addition to building type. this is only used by
quickfort, and it already sends all three params in preparation for
this change
- added lua-exported scheduleCycle(), which is like doCycle(), but only
takes effect on the next non-paused frame. this lets quickfort
run only one buildingplan cycle regardless of how many #build
blueprints were run
- declared a few dfhack library methods and params const so buildingplan
could call them from const methods
- converted buildingplan internal debug logging fn to have a printf api
- reshaped buildingplan-planner API and refactored implementation in
preparation for upcoming core algorithm changes for supporing all
building types (no externally-visible functionality changes)
- changed df::building_type params to type, subtype, custom tuple keys
- introduced capability to return multiple filters per building type
(though the current buildings all only have one filter per)
- split monolith hook functions in buildingplan.cpp into one per scope.
this significantly cleans up the code and preps the hooks to handle
iterating through multiple item filters.
- got rid of send_key function and replaced with better reporting of
whether keys have been handled
2020-10-16 13:52:23 -07:00
lethosor
ce7772a1c2
Add Filesystem::restorecwd()
...
This allows restoring the working directory to its original value, which may not actually be the DF root. See #1671 , dfhack/scripts#152
2020-10-14 21:22:53 -04:00
lethosor
c9609ad590
Make `createitem inspect` consistent for PLANT_GROWTH items
2020-10-09 12:45:49 -04:00
Myk Taylor
c73b1f03af
buckets can be lye- and milk-free
...
otherwise the bucket for wells can never be matched
2020-09-29 00:23:44 -07:00
Myk Taylor
e546d3eec3
rename is_civzone to the more general allow_wall
2020-08-15 20:13:48 -07:00
Myk Taylor
ae872e812f
properly detect valid tiles for civzones
2020-08-15 17:24:12 -07:00
lethosor
8c5b21b7ee
Fix a couple warnings in the Units module ( #1615 )
2020-08-08 14:35:12 -04:00
Ryan Bennitt
23c22b3b9d
Merge branch 'develop' of https://github.com/DFHack/dfhack into feature/manipulator_goal
2020-08-07 22:17:32 +01:00
Ryan Bennitt
a85b77e6f1
Retrieve goal string values from enum attributes and add new Units methods to Lua API and docs
2020-08-07 22:07:48 +01:00
lethosor
d3fc691858
Merge remote-tracking branch 'PatrikLundell/Units' into develop
2020-08-06 00:12:54 -04:00
Ryan Bennitt
9510dd52e1
Add Goal to Manipulator Detail Modes
2020-08-04 23:01:28 +01:00
Myk Taylor
16cfd34678
recurs-ify default config copying logic
...
I refactored Filesystem::listdir_recursive to support removing the path
prefix from the returned files list. There are no current calls that
make use of the prefix parameter, so I converted it into a boolean.
Current usages will use the new default parameter and will not see any
changed behavior.
2020-07-18 22:22:37 -07:00
Myk Taylor
0afbe9d931
include algorithm on windows for std::replace
2020-07-16 08:42:39 -07:00
Myk Taylor
bb1fcff410
use FILENAME_MAX instead of PATH_MAX for compat
2020-07-16 08:33:23 -07:00
Myk Taylor
1ae341b637
Check that we created a dir before we return true
2020-07-15 22:02:12 -07:00
Myk Taylor
c19fc1f349
gcc-4.8 compatibility
2020-07-15 21:35:21 -07:00
Ben Lubar
72ce52e004
update structures
2020-07-01 23:10:34 -05:00
Ben Lubar
a9f219baf9
update for DFHack/df-structures#7dfea1f1d4e453b97d5529785701db46360596ce
2020-06-29 16:16:44 -05:00
PatrikLundell
5570a5743b
Merge branch 'develop' of https://github.com/DFHack/dfhack into Units
2020-06-26 09:53:41 +02:00
Quietust
e2301ecae7
Update structures, fix reaction_productst::produce() parms
2020-06-23 13:31:27 -06:00
PatrikLundell
d5b5b81450
changes
2020-06-02 15:03:59 +02:00
Ben Lubar
5d05cfc7cc
Fix several functions in the Units module ignoring unit caste.
...
Fixes #1583 .
2020-06-02 01:18:57 -05:00
PatrikLundell
ec7f97bb7a
adapted to enum value name change
2020-05-02 17:37:10 +02:00
lethosor
7c1d1c43e5
Merge remote-tracking branch 'PatrikLundell/stocks' into develop
...
Conflicts:
docs/changelog.txt
2020-04-25 21:12:27 -04:00
PatrikLundell
21be5cf061
adapted to structures
2020-04-22 15:32:49 +02:00
PatrikLundell
f371ae6da8
adapted to histfig_nemesis_id->union
2020-04-22 12:38:37 +02:00
PatrikLundell
f4f2aa0d5e
removed underscores, adapted to structure (re)naming
2020-04-15 10:18:37 +02:00
PatrikLundell
b0d184e2f9
Merge branch 'develop' of https://github.com/DFHack/dfhack into Units
2020-04-15 09:45:54 +02:00
PatrikLundell
55988e3fc4
adapted to updated structures, remote Using units for age
2020-04-08 08:45:40 +02:00
PatrikLundell
a0e2abe20a
Units update need coordination with structure identity
2020-04-04 14:00:26 +02:00
PatrikLundell
63a26b987d
Fix issue #1528
2020-04-01 11:16:24 +02:00
Ben Lubar
ffb3c29cfc
simplify Graphic module. update structures.
...
it appears that all this added complexity including an extra pointer dereference was to avoid including the vector header.
2020-03-08 00:12:48 -06:00
Ben Lubar
635e709d95
name ui_look_list union
...
update scripts and structures
2020-03-06 16:06:27 -06:00
Ben Lubar
e356925795
update structures
2020-03-02 23:12:03 -06:00
Ben Lubar
66ded03bc1
update structures
2020-03-02 20:41:13 -06:00
Ben Lubar
0d36e62d81
fix some weird uses of the part of speech enum
2020-02-18 16:39:39 -06:00
Clément Vuchener
c2584d615c
Define MapExtras::BiomeInfo::MAX_LAYERS ( #1496 )
...
Definition is required even for constexpr variables in some compilation
setups (e.g. debug builds).
2020-02-15 01:22:58 -06:00
Ben Lubar
0243e422e5
Allow plugins to define subclasses of dfhack_viewscreen that have their own virtual_identity.
2020-02-07 16:00:14 -06:00
Ben Lubar
5db7d518ee
update structures; fix some minor compile warnings
2020-02-05 12:35:43 -06:00
PatrikLundell
876ac6c056
Renamed to getBookTitle, cut down on virtual_cast
2020-01-25 21:46:10 +01:00
PatrikLundell
c6bbf39c6c
Issue #1262 . Added Items::getTitle and used in stocks
2020-01-25 12:43:02 +01:00
lethosor
5eca50476e
Merge remote-tracking branch 'nornagon/unit-description' into develop
2020-01-13 23:31:23 -05:00
Ben Lubar
be5dc2d4a4
Make Units::isGay act consistently when called on an asexual unit.
...
The function appears to be used to determine whether heterosexual relationships are possible, so asexual units will always return true for isGay.
Old behavior was to treat asexual units as male.
2020-01-09 14:48:30 -06:00
Jeremy Apthorp
5de368a1ed
unit_{=> get_}physical_description
2020-01-04 22:17:03 +11:00
Jeremy Apthorp
7644dde9e4
default to empty description if symbol unavailable
2019-12-14 12:01:13 -08:00
Jeremy Apthorp
50e696acf6
getDescription => getPhysicalDescription
2019-12-14 09:36:47 -08:00
Jeremy Apthorp
7fce6fe0b0
move THISCALL define to header, clean up code a little
2019-12-13 23:54:27 -08:00
Jeremy Apthorp
dfab521a71
specify __thiscall
...
According to https://docs.microsoft.com/en-us/cpp/cpp/thiscall?view=vs-2019 , "on ARM and x64 machines, __thiscall is accepted and ignored by the compiler.". So it should be OK to specify this for all win32
2019-12-12 17:51:41 -08:00
Jeremy Apthorp
9a37849603
use symbols.xml
2019-12-07 22:41:55 -08:00
Jeremy Apthorp
910f965838
wip
2019-12-07 22:17:59 -08:00
lethosor
08aeb6faeb
Fix EventManager building ID type
...
The pointer to the building ID was sometimes not dereferenced properly.
Addressed by switching to an ID cast to a pointer type for consistency with
other types of events.
Fixes #1434
Ref #1003 (19695b4ee7
)
Broken in #1253 (a7dfacd1c5
)
2019-10-05 20:26:31 -04:00
lethosor
07575095fd
Merge branch 'develop' into persist
2019-08-22 22:00:50 -04:00
lethosor
99038c395a
Merge remote-tracking branch 'ab9rf/biometype' into develop
2019-07-20 16:32:46 -04:00
lethosor
ceebef5fe2
Merge branch 'develop' into persist
2019-05-28 21:08:16 -04:00
lethosor
13c6bfc1b2
Merge remote-tracking branch 'sgayda2/memory_fixes' into develop
2018-12-22 11:54:31 -05:00
Kelly Kinkade
02f047e9f1
a pox on whitespace
2018-09-11 18:41:32 -05:00
Kelly Kinkade
3817773b5a
eliminate stray whitespace
2018-09-11 17:32:33 -05:00
Ben Lubar
4e690df96a
Add Persistence module.
...
Alter World to use Persistence instead of storing data in historical figures.
Fake historical figures will be converted to the new format when a world is loaded.
Added plugin_save and plugin_load functions to the plugin API.
Made the weird int7/int28 code that was in the old persistence API slightly safer.
2018-08-26 18:27:58 -05:00
Kelly Kinkade
338572d270
resolve uninitialized variable warning
2018-08-16 12:15:56 -05:00
Kelly Kinkade
59d70d6687
Add function to infer biome type to Maps module
...
This moves code intended to infer biome type currently living in a
couple of plugins into the Maps module, so that this code can be shared
more easily by multiple plugins, as discussed in #1392 .
2018-08-15 20:28:18 -05:00
Ben Lubar
4837e65322
Add an identity to dfhack_viewscreen and dfhack_lua_viewscreen.
2018-07-22 17:31:39 -05:00
Stoyan Gaydarov
38cccdb0f4
Update the module create calls to return unique_ptrs
2018-07-14 19:55:25 -07:00
lethosor
9ee368d456
Merge remote-tracking branch 'suokko/MapCache_reduce_latency_from_designation_to_jobs' into develop
2018-07-11 11:51:24 -04:00
Pauli
ca5c11603f
Support dlsym loading from libgraphics vtables
2018-07-10 17:08:23 +03:00
lethosor
2dac3c53c7
Add stress cutoffs to Units module, fix dwarfmonitor/manipulator
...
Fixes #1292
2018-07-09 15:59:12 -04:00
lethosor
037e7e4901
Merge remote-tracking branch 'suokko/spotclean_ui_state_fix_1194' into develop
...
Moved/adjusted changelog entry
2018-07-07 18:08:53 -04:00
lethosor
54cf8b7dc3
Fix getVisibleName for units with identities
...
As of 0.44.11 (possibly 0.44.01), identity names take precedence over the
associated histfig names. Tested with:
https://drive.google.com/file/d/1bX5CQMqNsb_mjJOEOS4wBm4mGDLLs_cZ/view (#1279 )
http://dffd.bay12games.com/file.php?id=13428 (from http://www.bay12games.com/dwarves/mantisbt/view.php?id=10530 )
Fixes #1279
2018-07-06 11:06:04 -04:00
lethosor
616675f0ce
Merge remote-tracking branch 'suokko/kittens_data_race_fix' into develop
2018-07-03 00:30:36 -04:00
lethosor
81a7ddcf92
Merge remote-tracking branch 'suokko/screen_show_memory_leak' into develop
2018-07-02 22:58:11 -04:00
Pauli
0727403ac1
Fix devel plugins linking in linux
2018-06-30 21:12:42 +03:00
Pauli
c39a882b57
Add missing Unit::isDiplomat
...
Fixes #1324
2018-06-29 16:19:18 +03:00
Pauli
20bd03ab6d
Reset dsgn_check_cooldown in Block::write
...
To make sure that DF generates jobjs from desgination as soon as
possible the dsgn_check_cooldown should be reset when designations
change.
2018-06-24 17:06:32 +03:00
Pauli
123de7fdf7
Use constexpr to prevent attempts of linking static variable
2018-06-24 17:06:32 +03:00
lethosor
854f467f56
Merge remote-tracking branch 'suokko/check_jobs_on_mapcache_commit_1229' into develop
2018-06-21 15:03:51 -04:00
lethosor
7a5e7c7c86
Rename unit_flags1.dead to killed, update submodules/changelog
...
Follow-up for dfhack/df-structures#247
2018-06-21 11:17:09 -04: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
lethosor
6077a8ce4c
Merge remote-tracking branch 'suokko/printf_warnings' into develop
2018-06-20 11:25:14 -04: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
bcf9387ce9
Only remove jobs that were created from a designation
2018-06-18 19:57:00 +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
aac892c560
Adapted to changed Units functions
...
Squashed version of #1307
Closes #1307
2018-06-14 10:30:35 -04:00
PatrikLundell
51584c2d9e
Corrected isGhost
2018-06-13 15:37:45 -04:00
PatrikLundell
f329774059
dead & killed flag separation
...
squashed 4 commits from #1297
2018-06-13 15:37:45 -04:00
Pauli
8f2cf3ad26
Fix printf format warnings
2018-06-11 19:57:06 +03:00
lethosor
7a04fefb0b
Remove Vermin module (unused and obsolete)
2018-06-01 00:22:10 -04:00
lethosor
50a863a48e
Fix Kitchen.h include (case-sensitive)
2018-05-17 20:11:46 -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
Dan Amlund
759df34fce
fix potential segfault
2018-05-11 17:51:32 +02:00
lethosor
ceaa518be9
Fix a potential segfault in getAnyUnit
...
See #1218
2018-05-11 10:04:10 -04:00
lethosor
10abece564
Fix duplicate condition in Gui::getAnyUnit()
2018-05-11 09:58:40 -04:00
lethosor
2a52582c1f
Add Gui::inRenameBuilding
2018-05-09 10:23:05 -04:00
Ben Lubar
51661d7355
Fix -Wswitch warning about UNDERWORLD_GATE in MapCache.
2018-04-05 16:50:04 -05:00
Ben Lubar
565c1e1260
Fix uninitialized pointer being returned from Gui::getAnyUnit when on the pet list with no selection.
2018-04-05 16:49:30 -05:00
Ben Lubar
0a2ec30199
Remove or comment out unused code.
2018-04-05 16:48:11 -05:00
Ben Lubar
2eec5ee78d
Fix signed/unsigned comparison warnings in core.
2018-04-05 16:47:47 -05:00
Ben Lubar
a44b3b8f98
Move null pointer check from Job module to LuaApi, where it does not invoke undefined behavior.
2018-04-05 16:01:26 -05:00
lethosor
db95796d4c
Many build fixes
2018-03-10 16:53:45 -05:00
Dan Amlund
38491b4be8
add checks to avoid potential segfaults. use more dfhack idiomatic code
2018-01-31 20:10:40 +01:00
Dan Amlund
537e94d75a
fix segfault when splatter did not have historical figure
2018-01-31 20:10:34 +01:00
Dan Amlund
2deeda11d2
add many new cases for Gui::getSelectedUnit: report list, combat log list, military screen, unit health, unit custumize, assigning to cage, viewing cage, pitting, penning, burrows, look at corpse, look at corpse piece, look at named spatter
2018-01-28 13:04:52 +01:00
lethosor
1ba5477b63
Add designation priority support to MapCache and dig plugin
...
Fixes #481
2018-01-21 19:27:16 -05:00
lethosor
fde1e284f4
Gui::getAnyItem: support viewscreen_assign_display_itemst
2017-12-28 16:19:45 -05:00
lethosor
4d5c7c5927
getKeyDisplay: use enabler::GetKeyDisplay()
2017-12-25 20:14:11 -05:00
Quietust
88c7e493b8
Merge ui_area_map_width into ui_menu_width, now a 2-byte array
2017-12-03 20:34:59 -06:00
Quietust
c72ae8d8a7
Merge "announcements" global into d_init where it belongs
2017-12-03 20:05:08 -06:00
lethosor
2c95ac411e
Update xml and all uses of job_handler
2017-11-25 00:59:59 -05:00
Quietust
33a43c5bfd
update structures
2017-11-04 07:50:47 -06:00
lethosor
5c33fcccbd
Merge remote-tracking branch 'BenLubar/win64-warnings' into develop
2017-08-07 13:51:18 -04:00
lethosor
16fb230ef6
getAnyItem: support viewscreen_textviewerst
2017-08-05 21:38:18 -04:00
Ben Lubar
17a7885ef2
Fix a bunch of 64-bit Windows warnings
2017-07-21 13:30:05 -05:00
Vitaly Pronkin
6af5f3b299
fixing getItemBaseValue() for cheese, sheets and instruments
2017-06-26 09:17:23 +12: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
cda5cedacf
Fix Gui::refreshSidebar() on topmost z-level
2017-06-23 10:30:16 -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
0ed7e60522
getAnyUnit: support viewscreen_layer_unit_relationshipst
2017-06-10 19:06:43 -04:00
lethosor
1321a64613
Remove lots of old/unused functions from the Units module
2017-06-10 17:21:34 -04:00
lethosor
047a66030b
getAnyUnit: add support for viewscreen_unitst, viewscreen_textviewerst
2017-06-07 20:51:40 -04:00
lethosor
92c2e52e45
Fix MSVC error
2017-06-02 21:22:19 -04:00
lethosor
9df35dd844
revealInDwarfmodeMap: use map y dimensions
2017-06-02 00:40:59 -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
f59be2a9a0
Expand focus strings for jobmanagement and workquota_condition viewscreens
2017-05-27 00:57:16 -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
adb14491d0
Fix loop in Designations::unmarkPlant()
2017-05-05 17:24:51 -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
lethosor
19695b4ee7
EventManager/eventful: Pass building ID pointers to event handlers
...
Previously, there was some disagreement over whether event handlers such as
Buildings::updateBuildings() took building pointers or building IDs shoved
into pointers. It turned out to be the latter, which, unfortunately, did not
compile on x64. Passing building IDs isn't possible in all cases, because
building event handlers can be called for recently-deleted buildings too.
Pointers to building IDs do work reliably, though.
Fixes #1003
2017-02-17 22:53:48 -05: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
de0e211e07
Figured I could like test my code.
2016-11-24 23:35:03 -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
8b964ca2dc
Wipe job_items vector
2016-11-21 06:51:21 -08:00
Stephen Baynham
fba32f2e2f
Also disconnect the job from its items.
2016-11-17 23:25:48 -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
70d3c07cdb
Initial lua getDwarfmodeViewDims rewrite
2016-10-07 23:51:58 -04:00
lethosor
70ac99cbfa
Fix Buildings::setOwner() persistence
...
Needed to set bld->owner_id for changes to persist across save/load
Fixes #983 , thanks to Quietust
2016-08-21 20:58:40 -04:00
lethosor
de731b0299
Move save_dir back into cur_savegame and update submodules
2016-08-14 12:41:09 -04:00
lethosor
e965f5318f
Replace many includes with forward declarations in modules/Maps.h
2016-08-13 21:44:01 -04:00
lethosor
215afa34f3
Update for 64-bit unit changes
...
Includes xml, stonesense, scripts
Ref DFHack/df-structures@25cb373
2016-08-10 23:50:00 -04:00
lethosor
79377669a1
Merge remote-tracking branch 'NCommander/dwarfvet' into develop
2016-07-29 16:25:53 -04:00
lethosor
41a81f9021
Fix some more warnings (GCC 4.8)
2016-07-28 11:00:52 -04:00
Vitaly Pronkin
fe18f176f7
More 64-bit fixes
...
Cherry-picked from 7eb3ba6
- Lua update already done in e2c6350
, 4dd411e
- Excluded library/modules/Buildings.cpp
2016-07-26 23:47:53 -04:00
lethosor
2455e36510
Initial 64-bit support
2016-07-03 23:32:43 -04:00
Michael Casadevall
a03b32846a
Modify DFHack to handle new produce() prototype. Major thanks to lethosor, and ragundo for their help in this
...
Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-13 16:57:45 -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
a89251cdf8
Find job in job screen
2016-05-14 16:07:27 -04:00
lethosor
55e58e5f06
Update handling of viewscreen_workshop_profilest in Gui module, search/sort plugins
2016-05-14 11:43:37 -04:00
lethosor
fee6e57b40
Disable viewscreen_layer_workshop_profilest focus handler for now
2016-05-11 17:52:56 -04:00
lethosor
402a96b0e6
Expose new unit functions to lua and add some basic safety checks
2016-04-23 21:52:50 -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
expwnent
f8ff447cb5
Add a check to the histfig fix and tweak NEWS.
2016-03-10 08:50:03 -05:00
expwnent
fd132d3fe7
Fix persistent histfig crashbug.
2016-03-10 08:38:55 -05:00
sv-esk
9da79544de
fix Units::isCitizen
...
fixes a lot of issues where plugins ignore non-dwarf citizens and work
with dwarf mercenaries and bards, where it shouldnot
2016-03-04 22:48:33 +02:00
sv-esk
d508028bcc
fix job-duplicate (do not clone posting_index)
...
if job cannot be done right now, game puts it in df.global.world.job_postings
when job finally can be done, game removes job from postings and clears posting_index
that index should not be cloned by job-duplicate(new jobs(added by vanilla way) have that value -1 always anyway)
cloning posting_index into the new job causes that job to be ignored
2016-03-03 21:32:16 +02:00
lethosor
5bb19a230f
getKillCount: also search kills->events
2016-02-25 15:34:56 -05:00
lethosor
25507a10f9
Add Units::getKillCount() and expose it to Lua
2016-02-25 15:21:14 -05:00
lethosor
3e44aabf12
Expose Units::getSquadName to lua
2016-02-25 15:19:35 -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
248331a196
buildingplan: Support floodgates, grates, bars
...
See #808
2016-01-31 14:50:07 -05:00
Ben Lubar
a316dfa074
set floodgate flags correctly when allocating it in lua or c++
...
https://github.com/DFHack/dfhack/blob/0.42.04-alpha2/plugins/ruby/building.rb#L63
2016-01-29 14:50:50 -06:00
Ben Lubar
675d173266
set civzone number when constructing a civzone
2016-01-18 14:46:39 -06:00
lethosor
0bcc8dc443
exportlegends: fix day/month issues more reliably
...
Fixes #783 , #791
2016-01-09 19:28:12 -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
fabff1ddfb
Fix df::occupation usage
2015-12-26 19:59:54 -05:00
lethosor
64d861bf6b
Add support for viewscreen_locationsst to various gui functions
2015-12-25 11:09:13 -05:00
lethosor
2a2ab00ca9
Add "map" parameter to a lot of drawing functions
...
Ref #746
2015-12-22 11:42:51 -05:00
lethosor
10c72a3d5d
Fix produce() call in modules/Items.cpp
2015-12-22 09:46:01 -05:00
lethosor
5a1e5e1464
Expose Units::casteFlagSet()
2015-12-19 11:07:35 -05:00
lethosor
55d5706a21
Update structures and fix various issues with plugins producing items
...
reaction_product::produce() takes a new unidentified vector<void*>*.
Passing a reference to an empty vector appears to work.
2015-12-18 18:40:11 -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
lethosor
051244c8d6
Fix GCC compile error
2015-11-06 20:05:14 -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
6e5d9c23e5
Merge pull request #715 from DoctorVanGogh/webfix
...
Add 'undisturbed' flag to job item checks
2015-10-31 11:28:25 -04: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
DoctorVanGogh
ba53f3c035
Add 'undisturbed' flag to job item checks
2015-10-26 02:19:41 +01: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
a56a427d12
Make Filesystem::is* functions handle nonexistent paths properly
...
If stat() failed, these functions could read from an uninitialized
stat struct and return "true" for paths that didn't exist.
2015-09-19 17:34:58 -04:00
lethosor
d663784707
Detect null unit pointer in Items::createItem()
2015-06-09 14:02:42 -04:00
lethosor
36fde3d7e3
Allow Lua screens to allow OPTIONS to work
2015-06-05 18:45:52 -04:00
lethosor
a8f5e683f7
Merge remote-tracking branches 'RossM/autolabor-changes', 'RossM/workflow-changes' and 'lethosor/plugin-exports' into develop
2015-05-09 09:39:55 -04:00
Ross Morgan-Linial
51d61d91cb
Change tabs to spaces.
2015-05-07 20:50:19 -07:00
Ross Morgan-Linial
7aac9a8fb8
Improve workflow handling of plant reactions
...
Makes workflow understand "seeds of any plant", "thread of any plant",
"drink of any plant", "powder of any plant", and "liquid of any plant"
when counting items.
Changes workflow's handling of the built-in plant reactions to
understand that they always produce plant products, and that they also
produce seeds.
This means that you can set a target for, for example, "powder of any
plant", and workflow will use a milling job to produce that.
2015-05-07 20:49:29 -07: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
92bd6349a7
Fix listdir_recursive on Windows.
2015-01-31 22:28:17 -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
48b6cf1beb
Export functions to Buildings.h
2015-01-29 13:57:50 -05:00
Chris Dombroski
1514233aaa
Add missing null checks to Units.cpp
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
expwnent
8f4b766107
EventManager: Fix a crash bug with EQUIPMENT_CHANGE event.
2015-01-15 18:13:19 -05:00
lethosor
d932c76242
Fix MapCache compiling error on Windows
2015-01-05 17:28:42 -05:00
lethosor
06029c92c2
Merge remote-tracking branches 'lethosor/export-dt-ini-0.40.21' and 'lethosor/patch-9'
2015-01-05 16:40:44 -05:00
lethosor
983f096a60
Merge remote-tracking branch 'quipyowert/define-maxlayers' into 0.40.23-r1
2015-01-05 16:04:37 -05:00
Lethosor
3c0ac70615
Remove output from filetype()
...
Not sure how this made it in, but it's causing problems with PRINT_MODE:TEXT (not to mention filling up stdout.log)
2014-12-27 15:05:43 -05:00
quipyowert
f4e8fa2f30
Define a static variable to fix debug mode crash.
...
Fixes #404
2014-12-01 17:19:20 -08:00
expwnent
83d3785735
Update xml.
2014-11-30 14:03:00 -05: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
5e3bf9a494
Make it compile for OSX.
2014-11-14 22:21:03 -05:00
expwnent
4464d7318d
EventManager: make REPORT events only trigger for new reports, not ones that already exist in the save.
2014-11-14 22:07:48 -05:00
expwnent
428fe6a400
interaction-trigger tweaks
2014-11-14 18:50:19 -05:00
expwnent
779ac3fd50
Updated interaction-trigger to work better.
2014-11-09 18:36:21 -05:00
expwnent
fa401f8637
EventManager tweak.
2014-11-07 14:16:10 -05:00
expwnent
dcdb6aae1b
EventManager: properly deal with frame_counter getting reset.
2014-11-06 23:44:13 -05:00
Alexander Gavrilov
04ec2c9932
Update version to v0.40.14 and hack things so they compile.
...
Also make the find-offsets script less likely to crash if the
unit structure is misaligned and add more integrity checks.
2014-10-26 16:40:39 +03:00
Eric Wald
8631da7e4e
Convenience method to collect a vector from StockpileIterator.
2014-09-07 14:10:27 -06:00
Quietust
deee486b81
Update Maps::SortBlockEvents to include spoors and item spatters
2014-08-20 10:51:58 -05:00
Quietust
5e434721ff
Remove stray BOM
2014-08-19 13:47:05 -05:00
Quietust
4da333fca1
Fix Buildings module to work with ui.tax_collection.rooms change
2014-08-18 16:33:12 -05:00
JapaMala
5add8c433d
Merge branch 'develop' of github.com:DFHack/dfhack into remote_reader
...
Conflicts:
plugins/remotefortressreader.cpp
2014-08-15 19:15:00 +05:30
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
JapaMala
36435ca8cf
Merge branch 'develop' of https://github.com/quietust/dfhack into remote_reader
...
Conflicts:
library/modules/Items.cpp
library/modules/MapCache.cpp
library/modules/Maps.cpp
library/modules/Materials.cpp
library/modules/Translation.cpp
plugins/CMakeLists.txt
2014-08-08 20:54:44 +05:30
JapaMala
08da62392e
Fixed a mistake where MapCache was using the wrong range for root depth.
2014-08-02 17:09:59 +05:30
Quietust
1450298484
assumed_identity -> identity
2014-07-29 16:30:22 -05:00
Alexander Gavrilov
4902c577b3
Fix some crashes when running without globals and update structures.
2014-07-24 23:10:37 +04:00
JapaMala
bc5e0f6ad6
Made DFHack buildable. Also added plant proto definitions
2014-07-23 19:57:47 +05:30
Quietust
9435d8f4d9
Fix crashes caused by missing globals
2014-07-21 19:14:43 -05:00
Quietust
38cdb37433
Update plant_tree_info field names
2014-07-21 14:46:51 -05:00
Quietust
e711605413
Some minor corrections
2014-07-21 13:26:34 -05:00
Quietust
97de21357c
First pass for 0.40 compatibility; still lots left to do, but this will at least build
2014-07-21 13:18:29 -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
0a16bc2e12
Merge remote-tracking branch 'origin/perSaveScripts' into scriptOrganization
...
Conflicts:
plugins/CMakeLists.txt
2014-07-07 09:01:07 -04:00
expwnent
649dcd1413
EventManager tweak: make it report the correct invasion id.
2014-07-03 14:37:13 -04:00
expwnent
2fb8faf3e6
Added Items::createItem function.
2014-07-03 10:39:20 -04:00
expwnent
d8c3a05f42
Made EQUIPMENT_CHANGE event trigger for new units.
2014-07-03 08:10:12 -04:00
expwnent
81c87d0921
EventManager: INTERACTION event for unit interactions.
2014-07-03 04:55:12 -04:00
JapaMala
516121d4f8
Fixed the getprofession behavior in adventure mode. Now it checks for the current adventurer's race instead of the fortress race.
2014-07-02 23:07:24 +05:30
expwnent
8f43b97284
EventManager tweaks.
2014-07-01 09:02:20 -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
ceae634954
Squashed EventManager commented out thing I don't need anymore.
2014-06-28 02:41:00 -04:00
expwnent
8e7e87ac73
Added UNIT_ATTACK event to EventManager and exposed it to Lua.
2014-06-28 02:31:34 -04:00
expwnent
c635632ae7
EventManager.cpp: fix indentation.
2014-06-27 22:09:01 -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
ec64a787c6
Use _getcwd on Windows
2014-06-19 22:34:40 -04:00
Lethosor
73fdb8b125
Fix Windows compile-time error
2014-06-19 21:24:16 -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
e0808c8c96
Use squad::find instead of indexing the vector
2014-06-10 22:38:32 -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
e483e7439f
Fix problems with NONE for item types and subtypes
2014-05-22 08:18:01 -05:00
Alexander Gavrilov
415cdad489
Make using new for allocating DF objects with vtables a compile-time error.
...
When done from plugins, it doesn't correctly initialize the vtable
because of some weird things MSVC does, so the only safe way is to
use df::allocate<df::foo>(). For consistency, it is also enforced
for code in the main library. It reveals the issue in the digging
invaders plugin, first found by warmist.
This change is linked to a modification in df-structures codegen.
2014-04-30 21:28:02 +04:00
Alexander Gavrilov
98325757e2
Fix signed-unsigned mismatch warnings in the new item value code.
...
Unsigned comparison allows catching negatives in the same check too.
Also, it didn't check the values in getValue.
2014-04-30 20:44:22 +04:00
Quietust
0f4684f29d
Add Items::getItemBaseValue and Items::getValue, available from Lua
2014-04-25 11:04:21 -05:00
Quietust
57fbb1004b
Assorted cleanup
2014-04-23 08:23:34 -05:00
Quietust
c3d45c3a1e
Add Job::getName(job *), also available from Lua
2014-04-23 08:03:10 -05:00
Alexander Gavrilov
6bef167f83
Add a couple of useful scripts and fix two missing NULL checks.
...
- A script to unstick jobs trying to build walls from the same tile.
- A devel script for viewing the path a unit is currently following.
2014-04-21 09:24:05 +04: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
Alexander Gavrilov
b56c3a95a6
Fix some signed/unsigned mismatch warnings and whitespace in Job module.
2014-04-15 19:50:23 +04:00
Alexander Gavrilov
7aecffe0cd
Update structures and fix broken things.
2014-04-04 22:34:39 +04:00
Quietust
e620ae765c
Add missing import/export info for MersenneRNG::unitvector<>
2014-03-25 13:30:21 -05:00
jj
387cc983f9
Merge branch 'osx_shenanigans' of git://github.com/tareqak/dfhack
2014-02-02 23:50:21 +01:00
Tareq A Khandaker
f0eeba93ce
DFHack compiles under OS X now.
2014-01-25 03:21:56 -05:00
jj
ce33973f0f
Merge branch 'master' of github.com/quietust/dfhack
2013-12-24 14:07:08 +01:00
Alexander Gavrilov
53bd112515
Hide fake historical figures from legends xml export.
2013-11-07 12:27:53 +04:00
jj
04dce1aa7f
MaterialInfo: fix decoding for COAL subtypes
2013-11-05 00:31:32 +01:00
expwnent
329741f235
EventManager: added EQUIPMENT_CHANGE event and exposed it to lua.
2013-10-24 19:32:52 -04:00
expwnent
4dbcee9560
EventManager: be smarter about removing things while iterating.
2013-10-20 23:16:21 -04:00
expwnent
c409289ee4
EventManager: TICK events should unregister correctly when requested and after they fire, other tweaks.
...
- fixed unregister to allow unregistering individual TICK events
- make registerTick return the resulting freq you have to put back in to the handler in order for it to be unregisterable
- when TICK events fire, they now automatically remove themselves from handlers[TICK], as they should
- make sure manageTickEvent fires once per tick
2013-10-20 22:54:25 -04:00
expwnent
3594dc2eb8
EventManager: fixed the TICK event, and a few tweaks.
...
- redo tick event management to work with world->frame_counter
- the freq of a TICK EventHandler is now ignored
- unregistering for an individual TICK event is still broken
- you would have to know the modified freq to even begin removing it
- it is only removed from handleres[TICK], not from tickQueue
- redo unregisterAll to be more efficient
- use the map loaded/unloaded events instead of world loaded/unloaded for initializing/clearing event monitoring data
- get rid of silly unsigned variables
2013-10-20 21:48:28 -04:00
expwnent
9bf004d07f
Several EventManager fixes and improvements.
...
- handle loading and unloading of saves better
- made sure it never triggers bogus events on loading a save
- plugins should now handle loading themselves with onStateChange
- special case to make Buildings module keep track of all buildings correctly on load
- fixed syndrome detection
- was broken because of the switch from ticks-since-the-dawn-of-time to world->frame_counter
- added lastSyndromeTime global
- fixed possible off by one error when looking for new created items
- got rid of the unread lastTick global
- const'ed the function pointer array of eventManagers
2013-10-20 20:12:42 -04:00
expwnent
f69fd1d528
EventManager: prevent eventspam just after loading a save.
2013-10-20 17:39:54 -04:00
expwnent
d78a111f02
EventManager: Fixed the death event, fixed another problem with construction event, and made EventManager use world->frame_counter for scheduling event checking in order to make it work in arena mode.
2013-10-20 14:41:39 -04:00
expwnent
39553cfb6d
EventManager: fixed a problem with constructionHandler.
2013-10-20 14:14:02 -04:00
expwnent
ee056f4422
Merge remote-tracking branch 'angavrilov/master' into 0.34.11-r4
...
Conflicts:
NEWS
2013-10-20 11:09:40 -04:00
expwnent
9d3ee11349
Merge branch 'diggingInvaders' into 0.34.11-r4
...
Conflicts:
scripts/devel/invasion-now.lua
2013-10-19 21:26:50 -04:00
expwnent
57fc0f3e89
Merge remote-tracking branch 'angavrilov/master' into 0.34.11-r4
...
Conflicts:
NEWS
library/xml
plugins/CMakeLists.txt
plugins/autoSyndrome.cpp
2013-10-19 20:19:29 -04:00
Alexander Gavrilov
78de739d75
Update aquifers when generating 3D vein layout.
2013-10-11 19:23:32 +04:00
Alexander Gavrilov
63d8267606
Decode ice under constructions if possible, but never write it out.
2013-10-10 12:15:50 +04:00
Alexander Gavrilov
f36041f6bd
Implement a MapCache api for writing base layer tiles of arbitrary stone.
...
Precompute some tables in TileTypes for extremely efficient
conversion between tiles of most important material types.
2013-10-10 12:15:50 +04:00
Alexander Gavrilov
68b6e10b2c
Implement writing veins tile by tile through MapCache.
...
Unlike changevein, which changes the material in an existing vein
object, with this feature you can set the material for individual
tiles, and the cache will write it out as vein objects.
The array inside the cache data is changed from layer material to
vein material, because layer material is easy to compute.
2013-10-08 18:17:36 +04:00
Alexander Gavrilov
9442e8ea1f
Make biome information more explicit in MapCache.
2013-10-07 16:58:10 +04:00
Alexander Gavrilov
ea36233dff
Split MapCache code from Maps.cpp
2013-10-07 16:58:10 +04:00
Alexander Gavrilov
e175efa689
Implement a template-based classical Perlin noise generator.
...
The mask argument of the Impl template is there because apparently
an inner template cannot be fully specialized, so there needs to be
some argument besides i.
2013-10-01 18:58:04 +04:00
Alexander Gavrilov
599af0a4d9
Fix linux and windows build issues.
...
- Linux makefile overrides and removes the optimization flags.
- Old linux gcc doesn't understand lambdas.
- MSVC doesn't like extern and explicit instantiation in same file.
2013-09-30 22:51:29 +04:00
Alexander Gavrilov
9e81d27cd1
Implement the same random generator as DF uses for DFHack.
2013-09-30 19:46:39 +04:00
Alexander Gavrilov
df2e04db26
Update xml definitions.
2013-08-16 18:25:16 +04:00
expwnent
ba73de5e35
EventManager: use units.all instead of units.active.
2013-06-20 21:34:32 -04:00
Alexander Gavrilov
49409d4630
Follow xml changes.
2013-06-11 16:10:42 +04:00