expwnent
fa78d6ccfc
Merge branch 'recent' into eventManager-unstable
...
Conflicts:
library/modules/Job.cpp
2013-01-02 03:16:45 -05:00
expwnent
4e99841862
EventManager: made Buildings module keep track of buildings so that it
...
can do findAtTile in constant time.
2013-01-01 22:22:31 -05:00
expwnent
7972902c81
stepBetween: named a few things better, and fixed a lot.
2012-12-19 20:30:37 -05:00
expwnent
a93c0223a2
EventManager: unstable. Temp commit.
2012-12-18 20:28:30 -05:00
expwnent
555c754636
EventManager: added construction and building events.
2012-12-18 18:34:38 -05:00
expwnent
01e5e93825
Renamed Maps::canWalkBetween to Maps::canPathBetween and added Maps::canWalkBetween, which does what it says.
2012-12-16 23:26:50 -05:00
expwnent
d4d8e69556
EventManager: Allowed absolute time registration.
2012-12-15 18:08:59 -05:00
expwnent
935058f0a5
EventManager: moved files around, made eventExample not run by default, and got rid of the silly NONE event type.
2012-12-15 17:43:41 -05:00
expwnent
86e002f3ff
EventManager: added item creation event.
2012-12-15 16:49:13 -05:00
expwnent
b0314755e0
EventManager: added unit death event.
2012-12-15 14:40:11 -05:00
expwnent
155a4d044c
EventManager: fiddled with time events. Made it possible to register for time events before a world is loaded. Also added some files I forgot to add to the previous commit.
2012-12-14 23:29:28 -05:00
expwnent
cf619a519e
EventManager: made event handlers unregister when plugins are unloaded. Also changed PluginManager so that plugins can call core.getPluginManager() during plugin_init.
2012-12-14 22:14:38 -05:00
expwnent
747723187f
EventManager: first draft.
2012-12-14 21:05:38 -05:00
jj
ebc2625d97
ditch the unused Vegetation module
2012-12-06 23:47:25 +01:00
jj
3953112eb9
dump Vegetation::t_plant, fix plant.is_burning
2012-12-03 19:03:07 +01:00
Alexander Gavrilov
bfc11cf946
Add persistent history of per-constraint item counts in workflow.
...
This will be needed for properly merging or integrating the status
screen by falconne. The history is maintained as a circular buffer
of up to 28 entries, and persists in save files.
2012-11-28 19:25:01 +04:00
Alexander Gavrilov
e7905a5cff
Add docs for the automaterial plugin, and use the new Painter class.
2012-11-22 19:38:45 +04:00
Kelly Martin
bb3c5c02c1
Adjustments for MSVC compatibility
2012-11-20 09:32:04 -06:00
Alexander Gavrilov
767c1b9368
Duplicate the lua Painter class in C++.
2012-11-19 18:11:26 +04:00
Quietust
3f2e583746
Naming consistency
2012-11-16 15:35:34 -06:00
Quietust
e2b9b703a0
Get rid of tabs
2012-11-16 15:33:36 -06:00
Alexander Gavrilov
2401be1b3b
Add an api function to retrieve unit skill experience.
2012-11-16 22:48:49 +04:00
jj
dd89baf6f8
add raw mmap/mprotect access
2012-11-13 01:41:53 +01:00
Alexander Gavrilov
b4dcc7e7ad
Add more native api functions for finding general and specific refs.
2012-11-12 19:17:32 +04:00
Alexander Gavrilov
f657c20a1d
Add an internal API for converting between file and memory offsets.
2012-11-11 15:56:31 +04:00
Warmist
0e4df55364
Merge branch 'master' of https://github.com/angavrilov/dfhack
2012-11-11 12:46:55 +02:00
Alexander Gavrilov
56ef33ea0e
Support building steam engines on top of brooks without any down stairs.
2012-11-10 17:33:05 +04:00
Alexander Gavrilov
9598316855
Add a native pen object for lua with a more checked behavior.
2012-11-03 20:06:33 +04:00
Warmist
6be65690f7
Merge branch 'master' of https://github.com/angavrilov/dfhack into experimental-dontmerge
2012-11-02 20:29:27 +02:00
Alexander Gavrilov
3ff5d38a5c
Add a few utility functions to the main library.
2012-10-30 12:40:26 +04:00
Alexander Gavrilov
92a3277777
Add a MemoryPatcher class as an optimization of scattered patchMemory.
...
This class can cache the set of memory regions during its lifetime,
and make them writable only once. This avoids e.g. re-reading
/proc/*/maps once for every modified vtable in interpose code.
2012-10-27 21:58:40 +04:00
Alexander Gavrilov
09f8e8e419
Start working on gui for workflow.
2012-10-23 21:42:03 +04:00
jj
cfbdf47f6e
follow rename Carried->Hauled in df-structures unit inventory mode
2012-10-22 19:37:12 +02:00
Alexander Gavrilov
0c9f1e0af4
Check the item type against job_item_vector_id when matching to jobs.
...
This will prevent setting an invalid item type via the job command.
2012-10-20 21:01:22 +04:00
Alexander Gavrilov
2b1d856214
Add a few utility functions to the lua api.
2012-10-20 17:06:33 +04:00
Alexander Gavrilov
2d4935bc17
Add lua API functions for verifying item and material vs job_item flags.
2012-10-17 19:16:18 +04:00
Alexander Gavrilov
2865e1373a
Experimental API for associating tile bitmasks with persistent data.
...
Use block_square_event_world_constructionst objects with the same
bogus negative id as the matching historical figure object.
2012-10-11 17:34:34 +04:00
Alexander Gavrilov
5206236b01
Look through missing intermediate bases when interposing subclasses.
2012-10-11 15:10:19 +04:00
Warmist
923ea3f4b0
Reactionhooks more usefull and gm-editor minor tweaks (e.g. search in containers)
2012-10-07 20:44:18 +03:00
Alexander Gavrilov
459c69046b
Dissolve the World module class into a namespace.
...
It made accessing persistent data way too cumbersome.
2012-10-06 13:46:20 +04:00
Alexander Gavrilov
5396a67465
Some tweaking and edited NEWS.
2012-10-06 12:40:46 +04:00
Alexander Gavrilov
7440e80e6c
Add an API function to retrieve interface key bindings for display.
2012-10-02 13:49:31 +04:00
Petr Mrázek
8812238bf6
Update license, add contributors file, bump release number
2012-09-30 04:03:37 +02:00
Alexander Gavrilov
48da06ec37
Add an API function for reading the nominal skill level.
2012-09-29 15:18:04 +04:00
Alexander Gavrilov
eaddd0e646
Try shutting up a few random warnings.
2012-09-29 12:47:41 +04:00
Alexander Gavrilov
164c61b638
Forbid stuff from bins in siege-engine, if forbid ammo standing order set.
2012-09-27 10:43:42 +04:00
Alexander Gavrilov
038d62367e
Implement explicit hook priority in vmethod interpose.
...
This resolves a getName order conflict between power-meter and rename.
2012-09-22 13:14:06 +04:00
Alexander Gavrilov
c39a337223
Add unit/item/job/building getter hook vmethods to dfhack_viewscreen.
2012-09-20 11:11:20 +04:00
Alexander Gavrilov
7ce772ae0e
Add an API function that returns the selected building.
2012-09-20 10:41:03 +04:00
Alexander Gavrilov
36e44c682c
Add a plugin implementing 'add spatter to item' reactions.
2012-09-17 21:15:51 +04:00
Alexander Gavrilov
c1e20c6f05
Follow changes to structures.
2012-09-17 12:47:18 +04:00
Alexander Gavrilov
24772f4dbc
Add an api function for destroying items.
2012-09-14 18:49:02 +04:00
Quietust
1d8c9a6a5f
Merge https://github.com/danaris/dfhack
2012-09-13 14:30:44 -05:00
Alexander Gavrilov
7c71aeab5f
Add function for making item projectiles.
2012-09-12 18:17:42 +04:00
Alexander Gavrilov
3a075f4bc7
Trivial siege engine aiming at units, with logic in lua.
2012-09-11 19:17:24 +04:00
Timothy Collett
ccefd02ee3
Merge branch 'master' of git://github.com/angavrilov/dfhack
2012-09-10 11:56:23 -04:00
Timothy Collett
96abc903ab
Merge branch 'master' of http://github.com/peterix/dfhack
2012-09-10 11:54:56 -04:00
Timothy Collett
274d6038ad
Merge further changes (???)
2012-09-10 09:19:21 -04:00
Alexander Gavrilov
9679b7729c
Clean up the movement speed calculation function and move into the core.
2012-09-09 17:04:58 +04:00
Alexander Gavrilov
ec3d489bda
Move curse-affected attribute value getters to the core.
2012-09-09 12:51:08 +04:00
Alexander Gavrilov
a36fe25e72
Finish the effective skill computation function, and move to core.
2012-09-09 12:27:40 +04:00
Alexander Gavrilov
e925d8f4d9
Add an API function for reading tiles from the screen buffers.
2012-09-07 11:36:45 +04:00
Alexander Gavrilov
c971a819de
Experimental creation of map blocks in gui/liquids script.
2012-09-06 22:45:19 +04:00
Alexander Gavrilov
57086ac56e
Add stock MessageBox and InputBox dialog screens for lua scripts.
2012-09-05 19:45:45 +04:00
Alexander Gavrilov
3b8e3d1459
Fix wrong assumptions in lua wrapper for BitArray.
2012-09-02 17:18:01 +04:00
Alexander Gavrilov
3713c5ea9e
Add some APIs required by steam engine to the core.
2012-09-02 14:10:58 +04:00
Alexander Gavrilov
e0097d8d43
Fix access to unnamed bits in bitfields, and allow hook.apply(false)
2012-09-01 11:25:24 +04:00
Alexander Gavrilov
f1915915b4
Follow change in xml again.
2012-08-27 23:03:02 +04:00
Alexander Gavrilov
3402a3cd5d
Fix a deadlock problem between suspend in (un)load, and onupdate.
2012-08-26 14:43:14 +04:00
Alexander Gavrilov
7f1e4b46bc
Implement inheritance-aware vmethod interposing.
...
I.e. overwriting the vmethod in all vtables that use it, not only one.
2012-08-26 14:43:14 +04:00
Alexander Gavrilov
41ad42d0fd
Expose the liquids plugin engine to lua, and make a wrapper gui script.
2012-08-25 10:37:03 +04:00
Alexander Gavrilov
8359e80b23
Expose a few API functions to lua, and implement a room browser overlay.
2012-08-24 18:26:18 +04:00
Alexander Gavrilov
e825dc5ddb
Tweak the API for current viewscreen, and dispatch show/dismiss from C++.
2012-08-24 13:20:08 +04:00
Alexander Gavrilov
c6c5ad56c9
Track lua event listener count, and let the C++ host know.
...
This allows completely avoiding the call overhead if there
are none. The downside is that the event object now has to
be a userdata with lots of metamethods.
2012-08-23 19:27:28 +04:00
Quietust
1e28ceff6d
Add getProfessionColor and getCasteProfessionColor to Units module
2012-08-22 16:54:00 -05:00
Alexander Gavrilov
7987ea9a98
Put some compatibility features into the base dfhack viewscreen.
2012-08-22 18:18:19 +04:00
Alexander Gavrilov
8969fc9435
manipulator: Inherit from dfhack_viewscreen, and don't use itoa.
2012-08-22 12:23:56 +04:00
Quietust
51ba252344
Add Screen::drawBorder(string), duplicates DF's interfacest::drawborder()
2012-08-21 15:28:11 -05:00
Alexander Gavrilov
38a07a4ca5
Export the tile finder function to lua, and improve mouse event reporting.
2012-08-19 20:00:10 +04:00
Alexander Gavrilov
30f71ff510
Implement support for lua-backed viewscreens.
2012-08-19 14:27:44 +04:00
Alexander Gavrilov
b8ee52131b
Add a module for painting tiles into the gps global.
2012-08-19 09:31:09 +04:00
Alexander Gavrilov
fd0bf2ef92
Extract the color enum from color_ostream to toplevel.
2012-08-19 09:21:25 +04:00
Alexander Gavrilov
c6694e386f
Add rather inefficient type_identity wrapping for std::set.
...
Accessing an element is O(N), as if it was walking a list.
2012-08-18 14:34:20 +04:00
Alexander Gavrilov
24cc8b5c7a
Expose an API to claim the suspend lock from the Core.
...
Previously it was hard-coded in Core::Update, but interposed
vmethods may need this feature too.
2012-08-18 11:52:38 +04:00
Alexander Gavrilov
01ba2a31fc
Tweak the interpose API, and fix a couple of bugs.
2012-08-18 11:48:07 +04:00
Alexander Gavrilov
236ffd578b
Add experimental support for interposing vmethods of known classes.
...
The hairiest bit is the abuse of compiler-specific pointer-to-member
internals in order to provide more or less transparent API.
2012-08-17 22:40:53 +04:00
Alexander Gavrilov
bcc41c081a
Add a utility function for patching read-only memory.
2012-08-17 15:07:48 +04:00
Petr Mrázek
a5977db443
Merge https://github.com/jjyg/dfhack
2012-07-09 01:13:07 +02:00
jj
8e17ebbefc
add SC_PAUSED / SC_UNPAUSED onStateChange events
2012-07-05 18:03:02 +02:00
jj
a7a25b80a0
ruby: use the color_ostream argument from dfhack to output to dfhack-run
2012-07-03 16:13:15 +02:00
Timothy Collett
c24333515b
Merge branch 'master' of https://github.com/jjyg/dfhack
...
Conflicts:
library/Core.cpp
Starting to merge in Ruby stuffs
2012-07-02 11:07:30 -04:00
Timothy Collett
6f433ff58f
Move back to using interposition to be more portable
2012-06-29 10:15:48 -04:00
jj
552da8417e
ruby: handle .rb files in df/hack/scripts/
2012-06-24 20:24:46 +02:00
Alexander Gavrilov
752da9ced5
Move formatting newly-found globals for symbols.xml to lua code.
2012-06-21 21:26:25 +04:00
Timothy Collett
9b941bcd4d
Merge branch 'master' of https://github.com/angavrilov/dfhack
...
Trying out angavrilov's changes
2012-06-18 09:29:20 -04:00
Alexander Gavrilov
db91850464
Sync to the change in gamemode/gametype globals.
2012-06-16 14:42:56 +04:00
Timothy Collett
c6700585bc
Merge branch 'master' of github.com:peterix/dfhack
2012-06-14 09:59:53 -04:00
Timothy Collett
19595f5225
Disable a whole bunch of no-longer-necessary debug output
2012-06-14 09:55:34 -04:00
Petr Mrázek
316973c463
Re-add fake SDL headers, get rid of real SDL use.
2012-06-14 02:15:43 +02:00
Petr Mrázek
52f9fe4a6a
Merge https://github.com/danaris/dfhack
...
Conflicts:
depends/clsocket
2012-06-14 00:00:36 +02:00
Petr Mrázek
5e011ac217
Merge https://github.com/jjyg/dfhack
2012-06-13 23:56:26 +02:00
Alexander Gavrilov
c50b605dfc
Support casting references and allocating arrays of numbers in lua wrapper.
2012-06-13 22:26:54 +04:00
jj
95606ee3dc
Merge branch 'master' of git://github.com/angavrilov/dfhack
2012-06-11 16:00:00 +02:00
Alexander Gavrilov
b7edbf2076
Support 7-argument vmethods.
2012-06-05 14:00:52 +04:00
jj
b612532348
export openplugin/lookupplugin from plugin manager
2012-06-02 23:35:05 +02:00
Timothy Collett
7ec0fd6fc0
Trying to set up an autorelease pool, but not yet succeeding.
2012-05-26 16:08:15 -04:00
Timothy Collett
1dd4cc5667
More work on getting dfhack building & compiling on Mac OS X
2012-05-25 14:28:59 -04:00
Timothy Collett
44c3afc306
Merge git://github.com/quietust/dfhack
...
Gotta get the changes that prevent DFHack from crashing.
2012-05-24 15:39:11 -04:00
Timothy Collett
24d221052b
Initial changes to get dfhack building on the Mac
2012-05-24 11:31:20 -04:00
Quietust
9a73ea9f14
Cleanup World module to use df::global, and fix crashes when control_mode/game_mode are missing
2012-05-23 12:51:03 -05:00
Alexander Gavrilov
b992b04f0b
Remove stuff that shouldn't be in the core, and expose to lua what's left.
...
Specifically, any "if (verbose) { Core::printerr("blah") }" kind
of stuff definitely doesn't belong in the common API functions.
Also, ref->getUnit() is very expensive.
On the other hand, checks for crash-inducing conflicts with the
ui should be in the core api, and not in client plugins.
2012-05-20 21:57:45 +04:00
Alexander Gavrilov
d28d240dbd
Merge remote-tracking branch 'kmartin/master'
2012-05-20 11:03:41 +04:00
Alexander Gavrilov
1b4a24c827
Support using focus strings to limit keybinding scope.
2012-05-19 21:31:42 +04:00
Petr Mrázek
51f06c78fc
Merge https://github.com/playfordh/dfhack
...
Conflicts:
library/include/modules/Items.h
library/modules/Items.cpp
2012-05-19 19:09:13 +02:00
Alexander Gavrilov
7774f5f2c1
Add a mechanism converting ui focus to a string representation.
...
The idea is to make ui handling more modular, dispensing with
huge functions that switch or if/else on lots of variables.
For now, used to split up functions in the sort plugin.
2012-05-19 19:50:36 +04:00
Petr Mrázek
ed6da7618a
Merge https://github.com/warmist/dfhack
2012-05-18 17:41:09 +02:00
Alexander Gavrilov
3c44e22760
Support trade viewscreens in Items::getSelectedItem.
2012-05-18 17:54:05 +04:00
Warmist
48185568e9
Added df::Items::moveToBuilding. Moved item from ground to building, usefull for museum forts (placing items on tables)
2012-05-18 16:05:29 +03:00
Alexander Gavrilov
e9ef9b87b5
Add central locations for onUpdate and onStateChange handling in core.
2012-05-17 20:04:09 +04:00
harlanplayford
27ca317871
Added new method - Items::moveToInventory(...)
...
Signed-off-by: playfordh <harlanplayford@gmail.com>
2012-05-15 06:01:59 -04:00
Alexander Gavrilov
87ec1de891
Improve lua api for tile biome access.
2012-05-13 13:58:41 +04:00
Alexander Gavrilov
c6b52067bd
Request designation rescan in auto-growing burrows.
...
This improves performance of burrowed miners digging 1-wide tunnels.
2012-05-12 20:54:26 +04:00
Alexander Gavrilov
60bb486aba
Add api for enabling liquid and temperature updates for blocks.
...
Now updates also have to be enabled for the z level to work.
2012-05-12 20:12:09 +04:00
Alexander Gavrilov
9ad8d767b4
Add code for adding abstract buildings and removing constructions.
2012-05-06 19:09:11 +04:00
Alexander Gavrilov
b70130cf36
Add a couple more building api functions.
2012-05-06 11:22:55 +04:00
Alexander Gavrilov
3bd44e5367
Move some things that won't work in dfhack-client to a separate file.
2012-05-05 21:07:18 +04:00
Alexander Gavrilov
81f2240c23
Fix some things that confuse MSVC.
2012-05-05 20:46:28 +04:00
Alexander Gavrilov
7e01b004e9
Implement timeouts in the core lua context, and quicksave script.
2012-05-04 20:59:06 +04:00
Alexander Gavrilov
d4d6349f48
Expose builtin commands to dfhack-run, and add lua script support.
...
Move builtin command implementation to Core methods, and fall
back to hack/scripts/*.lua for otherwise unrecognized commands.
2012-05-04 19:47:18 +04:00
Alexander Gavrilov
5afe2ca002
Update dfhack for specific_ref.
2012-05-03 11:47:04 +04:00
Alexander Gavrilov
28b5068382
Allow both coordinate object and (x,y,z) as arguments to getTileBlock.
2012-05-02 12:50:05 +04:00
Alexander Gavrilov
eadce95940
Add a convenience function for designating constructions.
2012-05-01 19:55:25 +04:00
Alexander Gavrilov
4cffb6428d
Update building creation code with new knowledge, and fix zone.
...
Also, document new lua api, and add a more convenient wrapper.
2012-05-01 18:55:30 +04:00
Alexander Gavrilov
2303a25bde
Implement unconstructed building instance creation and linking into world.
...
For more flexibility, the base api is split into 3 phases:
alloc, setSize, and construct. No support for non-actual
buildings like stockpiles and activity zones at the moment.
2012-04-29 21:07:39 +04:00
Alexander Gavrilov
82a0e52a3e
Add api to check the walkable cache, and update flow_forbid in liquids.
2012-04-26 18:51:39 +04:00
Alexander Gavrilov
16ee049664
Split off the burrows api from Maps and Units.
2012-04-26 12:56:28 +04:00
Alexander Gavrilov
6ab270d129
Retrieve unit noble position info, and use it in getProfessionName.
2012-04-26 12:03:56 +04:00
Alexander Gavrilov
763a301b4f
Add a few more lua api functions, documentation, and unit sort orders.
...
Units::getProfessionName appears to work correctly for
everything except nobles.
2012-04-23 21:30:53 +04:00
Alexander Gavrilov
125cd6622a
Support sorting units in many more ui contexts.
2012-04-22 19:22:00 +04:00
Alexander Gavrilov
3282ac3db2
Add a hotkey command that sorts units in lists using lua comparators.
2012-04-21 15:43:52 +04:00
Alexander Gavrilov
0a6982f404
Enable warnings correctly on linux and fix a lot of them.
2012-04-20 13:30:37 +04:00
Alexander Gavrilov
d95cc3435f
Fix lua wrapper sizeof for static arrays.
...
Since it actually depends on the element type, it is more tricky.
2012-04-20 13:04:03 +04:00
Alexander Gavrilov
0b32d374db
Implement SOIL/STONE substitution logic, and add compat in mapexport.
2012-04-19 23:02:30 +04:00
Alexander Gavrilov
4b87f1bcac
Refactor MapCache: make it parse everything that is known re tiles & mats.
2012-04-19 19:17:07 +04:00
Alexander Gavrilov
f655a0986d
Sync to changes in the data structure definitions.
2012-04-19 11:03:29 +04:00
Alexander Gavrilov
3beb2ebf25
Export the onStateChange event to core lua context & add some docs.
2012-04-17 11:45:09 +04:00
Petr Mrázek
7946cafc86
Merge https://github.com/jaxad0127/dfhack
2012-04-16 22:37:07 +02:00
Alexander Gavrilov
9c25351281
Add a template to make using lua_pcallk a bit more convenient.
2012-04-16 18:01:21 +04:00
Alexander Gavrilov
3e4863bc80
Integrate coroutines with table-based error handling.
...
Properly attach stack traces to errors passing the resume boundary.
Replaces coroutine.resume and coroutine.wrap with appropriately
modified versions, and adds a Lua::SafeResume function for C++.
2012-04-16 14:45:04 +04:00
Alexander Gavrilov
48e4717dd2
Try working around some msvc problems.
2012-04-16 10:59:55 +04:00
Alexander Gavrilov
a1756a864c
Implement a way to do prompts from core context.
...
The trick obviously is doing it without forcing DF to wait suspended.
Fortunately, lua has built-in coroutine support, so the interactive
prompt can simply yield and rely on the external loop to do the job.
To use this however the REPL had to be replaced with lua code.
2012-04-15 21:50:22 +04:00
Alexander Gavrilov
14709e5d45
Add an official core lua context, and allow plugins to send events to it.
...
- This context requires core suspend lock and asserts it in a few places.
- Special 'event' objects are introduced. They can be invoked as
functions, in which case they iterate all their fields and call
them as functions. Errors are printed and consumed.
- When a plugin is opened by the core context, events registered in
a special array are linked to it. The system is organized so as to
avoid even trying to pass the event to lua if the module isn't loaded.
2012-04-15 19:09:25 +04:00
Jared Adams
f3c7a685f5
Make tiletypes more useful
...
* Paint, filter, and brush state is now saved between calls.
* Added 'all' paint option to set material, shape, special, and variant at
the same time.
* Added tiletypes-here (like liquids here, except is uses the saved brush
settings)
* Added tiletypes-here-point (like liquids here, always only the tile under
the cursor)
* Added tiletypes-command: runs tiletypes commands seperated by ';' tokens
(affects saved state)
* Make the internal workings match liquids a bit more
* Give brush objects a descriptor string
* Make Core::cheap_tokenise available
2012-04-15 08:40:19 -06:00
Alexander Gavrilov
cb27a1d839
Fix typo in the 1MB constant.
2012-04-15 11:31:05 +04:00
Petr Mrázek
fc38371b29
Clean up some chaos in old code.
2012-04-15 01:15:15 +02:00
Alexander Gavrilov
cb49c92b99
Allow plugins to export functions to lua with safe reload support.
...
- To ensure reload safety functions have to be wrapped. Every call
checks the loaded state and locks a mutex in Plugin. If the plugin
is unloaded, calling its functions throws a lua error. Therefore,
plugins may not create closures or export yieldable functions.
- The set of function argument and return types supported by
LuaWrapper is severely limited when compared to being compiled
inside the main library.
Currently supported types: numbers, bool, std::string, df::foo,
df::foo*, std::vector<bool>, std::vector<df::foo*>.
- To facilitate postponing initialization until after all plugins
have been loaded, the core sends a SC_CORE_INITIALIZED event.
- As an example, the burrows plugin now exports its functions.
2012-04-14 19:44:07 +04:00
Alexander Gavrilov
7a34a89f53
Add burrow subcommands to modify burrow unit and tile sets.
2012-04-14 14:12:59 +04:00
Alexander Gavrilov
2f54a48e63
Add a plugin that makes selected burrows auto-grow on digging.
2012-04-13 21:41:42 +04:00
Alexander Gavrilov
37cfb1fdcd
Add unit position and container api.
2012-04-13 16:10:19 +04:00
Alexander Gavrilov
2d8611a480
Add core api for moving items between ground and containers.
2012-04-12 18:37:27 +04:00
Alexander Gavrilov
38a8c43a25
Reverse-rebase the vtable pointers printed to stderr.log.
2012-04-12 11:21:25 +04:00
Alexander Gavrilov
583ccdcc0c
Support pre-initializing vtable pointers from symbols.xml
2012-04-12 10:54:53 +04:00
Alexander Gavrilov
5d5502ae34
Update the item owner modification api and export it to lua.
2012-04-11 20:10:31 +04:00
Alexander Gavrilov
0c2b78b96b
Add api for manipulating burrows to the core.
2012-04-11 19:42:05 +04:00
Alexander Gavrilov
c7b922250b
More maps api refactoring and renaming.
...
getBlockAbs is a very confusing name; getTileBlock is better.
2012-04-11 12:01:27 +04:00
Alexander Gavrilov
59ddbfacb7
Implement item occupancy tracking in MapCache.
2012-04-10 20:19:41 +04:00
Alexander Gavrilov
b15d2da819
Get rid of some obsolete api functions, and restructure MapCache.
2012-04-10 18:21:19 +04:00
Alexander Gavrilov
93c795cfc3
Job module api tweaks: add a namespace to match others and some funcs.
2012-04-10 11:43:36 +04:00
Alexander Gavrilov
45ae2ed67f
Pull a few utility functions into the core and publish to lua.
2012-04-07 19:08:30 +04:00
Alexander Gavrilov
0daafef690
Wrap MaterialInfo for lua.
2012-04-06 19:56:19 +04:00
Alexander Gavrilov
903e9ee716
Export a few more functions to lua.
2012-04-06 11:21:28 +04:00
Alexander Gavrilov
9eed9f0d24
Wrap a few utility functions defined on the c++ side for lua.
2012-04-05 19:55:59 +04:00
Alexander Gavrilov
28a741082f
Encode & decode names in utf-8 for transfer in remote messages.
...
That's the encoding required by the protobuf spec.
2012-04-05 18:10:16 +04:00
Alexander Gavrilov
3afed43cdb
Experimental: try wrapping a dfhack api function.
2012-04-05 11:59:39 +04:00
Alexander Gavrilov
d1b27418a6
Add a World::GetPersistentData version that auto-adds if not found.
2012-04-05 11:32:23 +04:00
Alexander Gavrilov
2d4af4ac3e
A few more utility functions for lua.
2012-04-03 20:02:01 +04:00
Alexander Gavrilov
a8fe0eccb4
Add functions for checking validity of lua wrapper objects.
2012-04-02 22:02:04 +04:00
Petr Mrázek
2a998a5b8a
Merge https://github.com/quietust/dfhack
2012-04-02 13:42:18 +02:00
Quietust
06da0f9720
Fix coord/coord2d division/modulo operators to properly handle negative numbers (fixes some glitches with revflood and possibly other utils)
2012-04-01 19:44:35 -05:00
Alexander Gavrilov
e3d50b9b04
Optimize wrapper: use pointers instead of strings as most frequent keys.
2012-04-01 18:34:04 +04:00
Alexander Gavrilov
a3e526abdb
Add df.is_instance(a,b) to check if typeof(b) is subtype of typeof(a).
...
Allows both objects and types as arguments. Also accepts nil and
primitives as b, returning nil.
2012-04-01 17:32:57 +04:00
Alexander Gavrilov
afe4eba957
Improve performance of the persistent data api, and wrap it for lua.
...
Use an stl table for string keys to avoid linear cost of lookup.
This uncovered a bug in the new luaL_getsubtable function.
2012-04-01 16:43:40 +04:00
Petr Mrázek
7ff728b6fc
Track world and map changes separately for plugin_onstatechange
2012-04-01 02:56:54 +02:00
Petr Mrázek
4bac6edd79
Merge https://github.com/rh73/dfhack
2012-04-01 00:29:00 +02:00
Robert Heinrich
39787e9cd5
Renamed digging commands to uniformly start with 'dig*'(vdig -> digv etc). Added command digl, diglx (dig layerstone instead of veins). Updated readme.rst.
2012-03-31 15:41:55 +02:00
Alexander Gavrilov
0f41608ed4
Pull console output support and REPL out of dfusion into core lib.
2012-03-31 15:40:54 +04:00
Quietust
07bb51946f
Fix bug in MapCache - squash veins with the correct priority
2012-03-29 18:59:07 -05:00
Alexander Gavrilov
ec48405f0a
Fix mistake: static initialization code cannot access other static objects.
...
Specifically, the eid->type() call depends on the order of linking.
2012-03-29 22:56:06 +04:00
Alexander Gavrilov
85c91c92d8
Implement __pairs and __ipairs for DF objects.
...
Structs enumerate fields in memory order in pairs().
Containers & biftields enumerate int indexes in ipairs, and
string keys in pairs (i.e. using index-enum for arrays).
2012-03-29 14:39:13 +04:00
Alexander Gavrilov
bc74c5984e
Implement recursive transfer of values from lua to c++ structures.
...
E.g. df.global.cursor = { x = 1, y = 2, z = 3 }. The lua data
must be represented by raw lua tables.
For structs, the entries in the table are assigned to matching fields.
For containers, if a 'resize' field is missing or nil, the table is
treated like 1-based lua array, and the container is resized to match
its # length. Otherwise, the field must be either an explicit number,
true or false. If it is true, the size is selected by the highest index
in the table. After that, entries are copied using 0-based indices.
For pointers, the table must match the target object. If the pointer
is null, the object is auto-allocated; this can be controlled using
the 'new' field, the value of which will be passed to df.new().
2012-03-27 21:47:52 +04:00
Alexander Gavrilov
157f23be5c
Fix warnings.
2012-03-26 12:42:05 +04:00
Alexander Gavrilov
00a5bfcf3e
Work around a msvc issue with spurious specialization ambiguity errors.
2012-03-26 10:46:51 +04:00
Alexander Gavrilov
d0090e9551
Fix lua wrapper: create one function identity instance per method.
...
Otherwise all methods of the same prototype are lumped into one.
2012-03-25 21:12:20 +04:00
Alexander Gavrilov
1d81cb56ba
Make enum attributes accessible through the lua wrapper.
...
TODO: make them completely read-only.
2012-03-25 19:12:59 +04:00
Alexander Gavrilov
0412aaebe4
Add a delete() method to the objects in the lua wrapper.
2012-03-25 15:48:18 +04:00
Alexander Gavrilov
7209e4d3f2
Attach static methods to the type objects in the lua wrapper.
2012-03-25 15:20:58 +04:00
Alexander Gavrilov
8d345be6e7
Expose virtual methods in the lua wrapper.
2012-03-25 14:06:05 +04:00
Quietust
947adeac83
Silence warning 4482
2012-03-24 18:18:29 -05:00
Alexander Gavrilov
517b2ffadb
Merge remote-tracking branch 'peterix/master'
2012-03-24 16:30:07 +04:00
Alexander Gavrilov
0c7fc233bd
Support resize/erase/insert for containers, and allow any index in BitArray.
2012-03-24 16:28:53 +04:00
Petr Mrázek
8a847dbaba
Tweaks and cleanups
...
Removed t_virtual.
Made lua use C++ compiler
Removed many silly exception types from Error.h and renamed the rest.
Removed Brush classes from tiletypes plugin.
2012-03-24 12:13:51 +01:00
Alexander Gavrilov
d865d54a90
Split LuaWrapper.cpp into two files.
2012-03-24 13:25:10 +04:00
Alexander Gavrilov
053bfe345c
Implement allocation and copy for c++ objects in the lua wrapper.
2012-03-24 12:43:53 +04:00
Alexander Gavrilov
2b1f8aa2bb
Add a _field method that returns refs to struct and container items.
...
Hack: allocate ad-hoc pointer identities as full lua userdata.
2012-03-23 12:55:29 +04:00
Alexander Gavrilov
ccc8fac166
Get rid of the write mode field table in metamethods.
...
Two separate tables can be confusing, e.g. if a builtin field
overrides a writable custom one only in the read table.
2012-03-23 10:56:29 +04:00
Alexander Gavrilov
ead28db451
Remove the return type from lua_read, because it always returns 1.
2012-03-23 09:38:49 +04:00
Alexander Gavrilov
27824642d9
Minor refactoring of container indexing and object allocation.
2012-03-22 10:56:32 +04:00
Alexander Gavrilov
ad10303cec
Implement bitfields and add a _kind metadata field to types and objects.
2012-03-21 20:04:37 +04:00
Alexander Gavrilov
9b78fffe92
Support containers in the lua wrapper.
2012-03-21 13:26:53 +04:00
Alexander Gavrilov
73e138c9fd
Support ordinary struct and class fields.
2012-03-20 21:34:27 +04:00
Alexander Gavrilov
6c661bcaa9
Add support for primitive type fields in lua wrapper.
2012-03-20 13:56:29 +04:00
Alexander Gavrilov
dbbd9acfad
Export the type tree with enum keys to lua.
2012-03-19 20:12:27 +04:00
Alexander Gavrilov
296d3a0af3
Skeleton type metadata for future use in lua bindings.
2012-03-19 16:59:11 +04:00
Alexander Gavrilov
d4626f9751
Add unit professions and filtering on status.
2012-03-18 15:35:38 +04:00
Alexander Gavrilov
e33414fa69
Export unit curse, squad, death and burrow info.
2012-03-18 13:52:39 +04:00
Alexander Gavrilov
b9ecd03fe2
Make the server suspend the core around calls unless disabled.
...
I expect the majority of methods will have to suspend the core
first thing anyway, so this will reduce typing and bugs.
Also get rid of the "me->" ugliness by splitting threadFn.
2012-03-18 11:04:15 +04:00
Alexander Gavrilov
aa63493bb8
Add a ListSquads request.
2012-03-17 20:04:15 +04:00
Alexander Gavrilov
368b92f81f
Add a RPC call to retrieve unit info.
...
For performance reasons, material flag arrays are changed to use ints,
with enum item name mappings retrievable via a different RPC call.
2012-03-17 17:41:56 +04:00
Alexander Gavrilov
15ccfbb086
Add a ListMaterials remote call for bulk download of basic material info.
2012-03-17 15:36:42 +04:00
Alexander Gavrilov
58eb199036
Add many new template functions for enums & bitfields.
...
An incompatible change: ENUM_KEY_STR returns std::string now.
The old behavior is available via enum_item_key_str function.
2012-03-17 12:52:22 +04:00
Alexander Gavrilov
14d6a62e1d
Move CoreService to a separate file.
2012-03-17 12:09:30 +04:00
Petr Mrázek
3168a2ef62
Add a tiletype function to get basic shapes from shapes. Track modules.
2012-03-16 20:41:07 +01:00
Alexander Gavrilov
976fa18d72
A number of interface tweaks in RemoteClient.
...
- Associate a default output stream with the whole connection.
If not explicitly specified in the constructor, uses stdout.
- Add methods that use this default stream to RemoteFunction.
- Add easily usable wrappers for CoreSuspend and CoreResume.
2012-03-16 14:11:46 +04:00
Quietust
5464564ef6
Merge branch 'master' of git://github.com/angavrilov/dfhack
...
Conflicts:
library/xml
2012-03-15 20:12:01 -05:00
Quietust
4d66218783
Update bprobe to print civzone subtypes
2012-03-15 20:09:56 -05:00
Petr Mrázek
c72fb76316
MSVC fixage for the new socket API
2012-03-15 22:05:33 +01:00
Quietust
57a41a0deb
Fix indentation
2012-03-15 11:50:38 -05:00
Alexander Gavrilov
f84b1539a8
Change to the traits representation of enum and bitfield properties.
2012-03-15 20:46:08 +04:00
Alexander Gavrilov
4eb4811777
Make the DF suspend lock recursive, and add RPC calls for batch suspend.
...
The idea is that if you have to execute many RPC calls, it is
faster to suspend once. The service class takes care to auto-resume
in the destructor in case the client just disappears.
2012-03-15 15:33:19 +04:00
Alexander Gavrilov
605ee9669a
Plugin-exported functions now actually work.
2012-03-15 14:06:50 +04:00
Alexander Gavrilov
87f925e72e
Add support for exporting functions from plugins, with example in rename.
...
TODO: test by actually calling them remotely.
2012-03-15 13:01:23 +04:00
Alexander Gavrilov
e7851f5abd
Improve support for void RPC functions, dfhack-run, etc.
2012-03-15 11:07:43 +04:00
Alexander Gavrilov
560e977f05
Implement trivial RPC interface for dfhack via TCP & protobufs.
...
Use it to make an executable capable of calling commands remotely.
2012-03-14 19:57:29 +04:00
Alexander Gavrilov
c42e2ff053
Support crafts and add a couple of options in workflow.
2012-03-14 12:09:02 +04:00
Quietust
a4ce1fff13
Update MapCache to allow decoding tiles underneath ice and constructions, and allow revflood to take those into account
2012-03-13 15:40:38 -05:00
Petr Mrázek
75113b715a
Misc fixes for warnings...
2012-03-10 16:03:11 +01:00
Alexander Gavrilov
8cc82d5876
Make plugins accept explicit output stream references.
...
This is an incompatible change to the plugin ABI.
The Console is not thread-safe unless used indirectly
via color_ostream_proxy, so everything should use their
per-thread stream.
2012-03-10 15:55:42 +04:00
Alexander Gavrilov
b2737e2bed
Pull out a colored text output interface out of the Console class.
2012-03-10 13:29:33 +04:00
Clayton Hughes
47bbe1a3ff
Fixed up formatting, debug messages in new Windows Hotkey stuff.
2012-03-09 01:07:47 -08:00
Clayton Hughes
3d1ce32785
Windows now detects hotkeys using the correct keyboard layout.
2012-03-09 00:56:09 -08:00
Alexander Gavrilov
9b071097de
Fix advtools metal-detector
...
Trader items are now inside tables, and thus not in the block
item lists. Thus it is necessary to scan the global item vector
and look up blocks by coords.
2012-03-07 18:10:53 +04:00
Petr Mrázek
f83db86258
Use tile buffers!
2012-03-05 02:24:02 +01:00
Petr Mrázek
a45fc82743
First pass at windowing, track df2mc, stonesense
2012-03-05 01:34:04 +01:00
Petr Mrázek
d33e9a9770
Sort layer materials in prospector by depth.
2012-03-03 23:18:12 +01:00
Petr Mrázek
7fe8762852
Get rid of Simple namespace, Gui module is now a namespace.
2012-03-03 14:38:24 +01:00
Petr Mrázek
2682c54fce
Fix horrible errors and make MSVC shut upt about non-issues.
2012-03-01 01:29:55 +01:00
Petr Mrázek
95ac3db542
Fix normal hooks.
2012-02-28 12:59:02 +01:00
Petr Mrázek
731472a478
Add eggy hooks (linux only for now)
2012-02-28 03:37:56 +01:00
Petr Mrázek
58e3813d56
Fix more MSVC fail, make console recognize 'man' command.
2012-02-22 19:54:07 +01:00
Petr Mrázek
a9c9ac98fe
Silence some MSVC warnings.
2012-02-22 19:28:40 +01:00
Petr Mrázek
15cc08debc
Fix the fail.
2012-02-22 19:02:06 +01:00
Petr Mrázek
0807baf0c0
Merge https://github.com/mikestewart/dfhack
2012-02-22 15:22:19 +01:00
Petr Mrázek
8ee27e182a
Hidden weather command raw value override
2012-02-22 15:21:29 +01:00
Mike Stewart
baea253578
Merge remote-tracking branch 'upstream/master'
2012-02-21 23:31:53 -08:00
Mike Stewart
14b471a459
Add ability menu/area map width reading and writing to the Gui module, and use the new information in follow to properly center the screen regardless of menu configuration. Also general fixing and cleanup in follow.
2012-02-21 23:30:44 -08:00
Petr Mrázek
2cd2ee9b0c
New plugin interface
2012-02-21 18:19:17 +01:00
Quietust
d394dc406b
Update t_building, change subtype into a union of all possible subtypes (depending on type)
2012-02-18 11:34:52 -06:00
Petr Mrázek
448e270421
Merge https://github.com/quietust/dfhack
...
Conflicts:
plugins/mapexport/mapexport.cpp
2012-02-14 09:59:33 +01:00
Petr Mrázek
bdbfbf5988
Fix catsplosion.
2012-02-14 09:37:30 +01:00
Quietust
2fd2e3dce2
Get rid of t_effect_40d and EFFECT_TYPE - they're in the XML now, and they're actually correct too
2012-02-13 21:56:47 -06:00
Quietust
2ddd3df3a8
When searching for tile types, only require candidate tile to match variant or special if it actually has them
2012-02-13 20:32:41 -06:00
Quietust
d15d38d536
Finish conversion, fix compile errors
2012-02-13 19:17:38 -06:00
Quietust
d0a8c2edd8
Move TileTypes to XML, part 1 - a bunch of stuff is now broken
2012-02-13 16:56:33 -06:00
Petr Mrázek
f600928ec1
Move catsplosion, tweak for build targets under MSVC.
2012-02-13 17:43:41 +01:00
Quietust
9f43d61c2c
Fix MapCache crash when in Arena mode
2012-02-13 09:56:35 -06:00
Alexander Gavrilov
e39852ff2e
Make BitArray(unsigned) treat the argument as the number of bytes.
2012-02-12 18:06:00 +04:00
Alexander Gavrilov
1047c2517d
Add size-defining constructors for BitArray.
2012-02-12 17:44:19 +04:00
Alexander Gavrilov
c04a140713
Add a new DfArray class to match generated headers.
...
Also, add working assignment and copy constructor to BitArray, and
change the unsafe conversion to int from an operator to a method.
2012-02-12 16:44:35 +04:00
Petr Mrázek
ed53ee7031
Update to use the new symbols file.
2012-02-11 19:24:44 +01:00
Petr Mrázek
8527547cbe
Merge branch 'master' into purge
...
Conflicts:
library/DataDefs.cpp
2012-02-11 18:48:17 +01:00
Alexander Gavrilov
f469fab1e6
Use globals defined by the latest codegen.
2012-02-11 16:27:12 +04:00
Petr Mrázek
aee5efe7c0
Make it run on Windows, re-added more missing globals to memory.xml
2012-02-10 02:35:51 +01:00
Quietust
952f621ee2
Synchronize with df-structures
2012-02-08 22:35:22 -06:00
Petr Mrázek
8f680dcf94
Make it build and run on linux (no stonesense, df2mc, dfusion)
2012-02-09 03:07:26 +01:00
Petr Mrázek
f7d8635be1
Remove fat from memory.xml, simplify memory.xml loading, break
...
everything.
2012-02-08 13:22:42 +01:00
Quietust
0d11d1b79c
Synch with structures changes
2012-02-07 15:37:21 -06:00
Alexander Gavrilov
878bc3d3a1
Implement pre-embark estimate in prospector.
...
Requires careful tuning of the vein density computation.
2012-02-02 22:14:49 +04:00
Quietust
a82f4c9138
Cleanup code to get rid of MSVC warning C4482
2012-01-31 10:17:27 -06:00
Quietust
8a4740c479
Make all "origin" fields strongly typed, and fix building.origin to actually be meaningful
2012-01-28 14:12:41 -06:00
Quietust
9e40228767
Adjust Maps typedefs a bit
2012-01-28 13:54:59 -06:00
Quietust
ccad6efeb8
Remove UTF-8 BOMs
2012-01-27 09:47:14 -06:00
Petr Mrázek
1d7ed14442
Merge https://github.com/quietust/dfhack
...
Re-add some get* forms of module calls.
Conflicts:
plugins/mapexport/mapexport.cpp
2012-01-27 06:27:57 +01:00
Petr Mrázek
d5d4875532
Make things work properly.
2012-01-27 05:54:26 +01:00
Quietust
fe34e07d2b
Re-add the ability to request simplified copies of Constructions, Engravings, and Plants; also fix the "isValid" checks for those modules to actually be meaningful
2012-01-26 20:29:59 -06:00
Quietust
cfca04f2d2
Cleanup TileTypes
...
* Group tiletypes by 0x10 instead of by 10
* Change tile type parameters to use int16_t consistently
* Various description fixes
2012-01-26 10:38:18 -06:00
Quietust
902e0c4d90
Strip out old offsets from Gui module and use df::global vars where available
2012-01-24 22:18:21 -06:00
Quietust
26730dc6c2
Kill the Constructions module
2012-01-24 16:11:48 -06:00
Quietust
8861e93848
Kill the Vegetation module, replacing it with the same 3 simple methods used in Engravings
2012-01-24 12:02:12 -06:00
Quietust
6d1af090c5
Tweak Engravings.h
2012-01-24 11:57:47 -06:00
Quietust
f8ce959402
Kill the Engravings module
2012-01-24 11:53:49 -06:00
Quietust
cc7c7795a1
Kill the Units module, and add another pair of methods to the Items module to simplify some things
2012-01-24 11:32:34 -06:00
Quietust
02d75e2c94
Building module is gone, so this function doesn't exist anymore
2012-01-24 10:59:26 -06:00
Quietust
466bf89578
Goodbye, Translation module
2012-01-24 10:54:12 -06:00
Alexander Gavrilov
174d9d0739
Tweak showmood, add a few validity checks, commit a dfhack.init example.
2012-01-24 15:36:30 +04:00
Quietust
ccf22bed10
Replace df_plant with df::plant - this leaves the Vegetation module a bit empty, but I'll leave it in case we decide to add something new there
2012-01-21 17:54:57 -06:00
Quietust
d2c78646ea
t_creaturecaste shouldn't be using t_attrib, because those AREN'T actual attribute values, just the PHYS/MENT_ATT_RANGE values from the raws
2012-01-21 13:24:38 -06:00
Quietust
7b2835e2a9
Get rid of df_name
2012-01-21 13:12:40 -06:00
Quietust
8052305c2e
Cleanup the Units module
2012-01-21 13:03:39 -06:00
Quietust
118e5c6617
Major cleanup of Materials modul, precursor to eventually nuking it
2012-01-21 10:12:26 -06:00
Quietust
d504479fc2
Merge https://github.com/angavrilov/dfhack
2012-01-21 09:59:54 -06:00
Quietust
d9c4f259a0
These will become necessary shortly
2012-01-21 08:59:19 -06:00
Alexander Gavrilov
b0cda1526e
Adjust FOR_ENUM_ITEMS to account for ENUM_LAST_ITEM being inclusive now.
2012-01-21 18:50:44 +04:00
Alexander Gavrilov
2449b80010
Update to match the data definitions.
2012-01-21 17:18:53 +04:00
Alexander Gavrilov
cc510a2c4b
Replace DFCoord with df::coord and df::coord2d.
2012-01-20 14:28:00 +04:00
Quietust
e7ecda1434
Kill the Maps module
2012-01-19 21:44:17 -06:00
Quietust
4bb724cd6c
Significant cleanup of Maps module - next step will be to kill it properly
2012-01-19 14:11:52 -06:00
Alexander Gavrilov
e2d7359bdd
Add the gps global to Memory.xml.
2012-01-19 17:26:21 +04:00
Alexander Gavrilov
7db467a740
Update code to accomodate the new coord/coord2d/coord_path structs.
...
Also replicate the methods of DFCoord.
2012-01-19 14:30:22 +04:00
Quietust
fd653a0227
Kill the Items module
2012-01-16 22:12:58 -06:00
Quietust
9d8c67b710
Kill the Kitchen module (which was never really a proper module to begin with)
2012-01-16 21:22:42 -06:00
Quietust
a9eb555b99
Get rid of t_itemimprovement (wasn't even used)
2012-01-16 20:41:09 -06:00
Quietust
7c5835d318
t_itemref -> df::general_ref
2012-01-16 20:40:29 -06:00
Quietust
c18619520d
df_contaminant -> df::contaminant
2012-01-16 20:18:40 -06:00
Quietust
64b55acf37
df_item -> df::item, t_itemflags -> df::item_flags
2012-01-16 20:16:16 -06:00
Quietust
97bae19c13
Update BitArray to automatically grow whenever setting/toggling bits beyond the end
2012-01-15 18:08:35 -06:00
Petr Mrázek
d972b07d57
Merge https://github.com/quietust/dfhack
...
Conflicts:
plugins/autodump.cpp
plugins/cleaners.cpp
2012-01-15 19:51:34 +01:00
Alexander Gavrilov
bcb51d8ff7
Use the announcement API to report starting and stopping workflow jobs.
2012-01-15 15:39:20 +04:00
Alexander Gavrilov
0f56611edc
Support showing announcements, as suggested by Q.
2012-01-15 15:19:20 +04:00
Alexander Gavrilov
a31542862a
Add utility functions to retrieve the selected job/unit/item.
...
Units can be selected via 'u', 'j', 'v' and 'k'; full-screen
unit details view not supported.
Items can be selected via 't', 'k', 'v'->inventory.
Also, when viewing a container item full-screen, the selected
contained item or unit is returned; never the container itself.
The api is used in rename to allow setting nicknames for
arbitrary units, including animals and enemies.
2012-01-14 19:31:43 +04:00
Quietust
24576ffe19
Silence annoying warning in MSVC
2012-01-11 08:54:54 -06:00
Alexander Gavrilov
7f5aa4de62
Support the most important job types in workflow.
2012-01-10 17:23:37 +04:00
Petr Mrázek
571498ea21
Vermin tweaks.
2012-01-10 00:45:43 +01:00
Alexander Gavrilov
50386f66a3
Update structures and implement modifying the job_item item type.
2012-01-09 16:20:17 +04:00
Alexander Gavrilov
ea790f1346
Move a few functions into the core, and add some more.
2012-01-08 20:02:12 +04:00
Alexander Gavrilov
64a9a49ec0
Merge remote-tracking branch 'origin/master'
2012-01-08 16:19:58 +04:00
Petr Mrázek
8a46386502
Dissolve vermin module.
2012-01-08 06:59:52 +01:00
Petr Mrázek
72016d9188
Buildings aren't a module anymore, fix probe segfaults.
2012-01-08 02:22:13 +01:00
Alexander Gavrilov
87009c0535
Add a plugin that protects specific repeat jobs from disappearing.
...
If they do disappear, they are re-added in a suspended state.
2012-01-07 21:47:23 +04:00
Alexander Gavrilov
07ad9ad972
Add persistent data storage in fake historical figure names.
2012-01-07 19:21:31 +04:00
Alexander Gavrilov
f5e121a196
Move a bunch of stuff from the jobutils plugin into the core.
2012-01-07 19:21:07 +04:00
Alexander Gavrilov
0e90e6b78e
Support multi-valued enum attributes.
2012-01-06 22:08:09 +04:00
Petr Mrázek
a2cad00dbb
Remove GetCustomWorkshopType, custom workshop types are now saner.
2012-01-06 01:08:30 +01:00
Petr Mrázek
72a4698968
Merge https://github.com/angavrilov/dfhack
2012-01-05 23:54:33 +01:00
Petr Mrázek
78a98de37e
Fix MSVC builds, break buildings :D
2012-01-05 23:39:14 +01:00
Alexander Gavrilov
687245abd9
Allow setting job item materials.
2012-01-05 22:04:05 +04:00
Alexander Gavrilov
284009e873
Add a hotkey command to duplicate jobs in workshops.
2012-01-04 19:39:38 +04:00
Alexander Gavrilov
99dda069de
Update data definitions.
2012-01-04 18:46:39 +04:00
Petr Mrázek
86464b99cc
Remove DfVector, break MSVC builds until further notice.
2012-01-04 01:45:11 +01:00
Alexander Gavrilov
1d1cd63800
Implement printing job details.
2012-01-03 22:56:05 +04:00
Alexander Gavrilov
f8814909a9
Move the MaterialInfo class to the main library.
2012-01-03 19:25:55 +04:00
Alexander Gavrilov
fb736a8556
Support more ways to binsearch in a vector.
2012-01-03 13:07:49 +04:00
Alexander Gavrilov
326c58f793
Add a plugin to tweak inorganic materials in jobs.
...
It also auto-seeks in the build item list if used in that context.
2012-01-02 18:46:24 +04:00
Alexander Gavrilov
bfcaca9266
Update xml defs with more ui info.
2012-01-02 15:18:23 +04:00
Alexander Gavrilov
6476d61e59
Update structure definitions & add the fixwagons plugin from Q.
2012-01-01 23:05:45 +04:00
Petr Mrázek
f35cdb84cd
Merge https://github.com/angavrilov/dfhack
...
Conflicts:
library/Core.cpp
library/PluginManager.cpp
library/include/Core.h
library/include/PluginManager.h
library/modules/Gui.cpp
plugins/stockpiles.cpp
2011-12-31 13:09:12 +01:00
Petr Mrázek
9db20bd84d
Header changes/cleanup.
2011-12-31 12:48:42 +01:00
Alexander Gavrilov
b652ec4132
Implement context-sensitive keybinding support.
...
Allow defining commands with guard conditions, and binding
one or more commands to alphabetic and function keys. When
the relevant key is pressed, the first listed command with
successfully evaluated guard is chosen.
For consistency, the guard is also checked when the command
is invoked from the console; this requires suspending the
core inside PluginManager, before invoking plugin code.
2011-12-31 13:25:46 +04:00
Petr Mrázek
1284b30f79
Merge https://github.com/angavrilov/dfhack
2011-12-31 01:40:08 +01:00
Alexander Gavrilov
2222757e77
Implement context-sensitive keybinding support.
...
Allow defining commands with guard conditions, and binding
one or more commands to alphabetic and function keys. When
the relevant key is pressed, the first listed command with
successfully evaluated guard is chosen.
For consistency, the guard is also checked when the command
is invoked from the console; this requires suspending the
core inside PluginManager, before invoking plugin code.
2011-12-30 23:25:50 +04:00
Alexander Gavrilov
53346328e8
Notify plugins about game being loaded or unloaded.
...
As a test, make seadwatch deactivate on these events.
2011-12-30 18:12:15 +04:00
Petr Mrázek
e6ff6b04fc
Merge https://github.com/warmist/dfhack
2011-12-30 03:12:29 +01:00
Alexander Gavrilov
d513e75365
Use the updated code generator with support for vtables & constructors.
2011-12-29 16:46:01 +04:00
Warmist
2643e0c5a7
Merge branch 'master' of git://github.com/peterix/dfhack
2011-12-28 22:49:31 +02:00
Petr Mrázek
51dae5a5dc
Fix for minor MSVC error.
2011-12-24 14:34:10 +01:00
Petr Mrázek
e9f9f9b92e
Merge https://github.com/angavrilov/dfhack
2011-12-24 14:27:58 +01:00
Petr Mrázek
59c32b1ee9
Some changes required on windows.
2011-12-24 14:27:35 +01:00
Alexander Gavrilov
2eb56d0480
Make strongly-typed 'any virtual class' pointers optional.
...
It seems they might not work properly on msvc.
2011-12-24 17:17:01 +04:00
Alexander Gavrilov
81ad287c06
Generate very simple static functions to find objects in global vectors.
2011-12-24 16:22:10 +04:00
Warmist
dc78e99f75
Added getKeys to OffsetGroup (for easy lua access to all things that memory.xml has)
2011-12-24 13:53:59 +02:00
Alexander Gavrilov
79ac2a781a
Add infrastructure necessary to use the generated headers.
...
As a usage example, allow toggling water level display and idlers,
and implement a ui tweak for easily copying stockpiles.
Also disable df2mc by default - default options shouldn't
require anything not in the base package.
2011-12-24 14:51:58 +04:00
Petr Mrázek
b36e5ac248
Add missing files.
2011-12-07 20:50:37 +01:00
Petr Mrázek
647916e109
Graphic module
2011-12-07 20:37:09 +01:00
Petr Mrázek
f7d78539d3
Renaming Creatures to Units
2011-12-02 10:56:40 +01:00
Petr Mrázek
9dba6003bc
Small Items tweak.
2011-11-30 07:42:59 +01:00
Petr Mrázek
57b5ed8fa7
Made invalid tile types really invalid, license and unused depends cleanup.
2011-11-25 18:54:50 +01:00
Petr Mrázek
9be4092c7f
creature thoughts
2011-11-06 01:22:11 +01:00
Petr Mrázek
da21fa1d79
MATERIAL_SOIL tweak
2011-11-04 18:51:52 +01:00
Petr Mrázek
af46b262b5
More init hardening.
2011-11-04 09:08:29 +01:00
Petr Mrázek
0f42dee97a
More material changes.
2011-11-03 05:01:25 +01:00
Petr Mrázek
4f0695a6d5
Messing with materials.
2011-11-03 04:30:59 +01:00
Petr Mrázek
7f6fa2a008
Add an enum for base material types.
2011-10-30 21:32:43 +01:00
Petr Mrázek
063894276c
Tiny type fixes for spatter veins, updated df2mc.
2011-10-30 15:25:29 +01:00
Petr Mrázek
dc12c41d86
Fix kitchen exclusion class not being exported.
2011-10-30 03:26:50 +01:00
Petr Mrázek
a29bb4578f
Move kitchen exclusion module methods to a source file.
2011-10-30 03:20:54 +01:00
Petr Mrázek
a3a1629521
Fix seedwatch some more.
2011-10-30 02:52:25 +01:00
Petr Mrázek
4688f6557e
Fix problem with magic numbers in fastdwarf.
2011-10-28 06:22:07 +02:00
Petr Mrázek
e74aae6f3e
Rename some plant material variables
2011-10-28 05:25:49 +02:00
Petr Mrázek
bfc8df3005
Added plant raw struct
2011-10-28 04:40:35 +02:00
Petr Mrázek
61be3413e3
Make seedwatch work on linux, still with ugly hacks.
2011-10-27 03:31:13 +02:00
Petr Mrázek
335ad28fe5
Add item contaminants vector to df_item, fixed up cleanitems plugin to use it.
2011-10-27 01:08:59 +02:00
Petr Mrázek
c8cd307bcf
Added missing method stubs to df_item.
2011-10-26 23:47:45 +02:00
Petr Mrázek
1f0e91c3d0
Add enum for item types.
2011-10-26 23:12:20 +02:00
Petr Mrázek
b545de7f43
Items refactor. readItem turned into copyItem, most Items methods now accept plain df_item * instead of the copies.
2011-10-26 22:18:13 +02:00
Petr Mrázek
866b63f567
More of the items overhaul
2011-10-25 13:30:41 +02:00
Petr Mrázek
2adf1d22eb
Item description method found!
2011-10-25 05:31:37 +02:00
Petr Mrázek
04495a304c
Kill item variable accessors. YES.
2011-10-25 04:48:06 +02:00
Petr Mrázek
998d85919f
Windows offset for save name, some tweaks, updated stonesense submodule to current.
2011-10-23 22:23:54 +02:00
Petr Mrázek
a83d9fa944
Added mouse position and designation coord, along with a 'trackpos' command for kittens plugin.
2011-09-26 03:39:27 +02:00
Petr Mrázek
83ae8d6c12
Creature likes (at least the structures are back), malloc wrapper that sets memory to 0xCC.
2011-09-25 01:29:55 +02:00
Petr Mrázek
dc81367a68
Gems are now properly detected in prospector. Nuked some legacy garbage.
2011-09-24 06:48:06 +02:00
Petr Mrázek
71de950919
Possible creature variables
2011-09-21 21:48:54 +02:00
Petr Mrázek
1df71d2b7a
More tweaks related to creatures, murder implication flag for items/corpse pieces.
2011-09-21 13:47:12 +02:00
Petr Mrázek
dca4c43b0b
Creatures module rewrite
2011-09-18 13:49:10 +02:00
Petr Mrázek
e48f8af9a8
Remove stray include.
2011-08-31 14:41:46 +02:00
Petr Mrázek
e5f0c7637e
Fixes to help/readme entries related to digcircle.
2011-08-27 15:12:03 +02:00
gsvslto
b173a59a42
Change < to " for dfhack/BitArray.h include
...
Unchanged, I got and error when building in MSVC++ 2010 Express
Not sure if line endings are UNIX as online edit from Windows machine
2011-08-23 10:57:37 +02:00
gsvslto
90163c4be5
Added includes for <maps> and <vector>
...
Without, I got errors when building in MSVC++ 2010 Express
Not sure if line endings are UNIX as online edit from Windows machine
2011-08-23 10:48:28 +02:00
Petr Mrázek
4922be0a75
Circle dig designation tool.
2011-08-22 15:18:35 +02:00
Petr Mrázek
b1868f802c
Make autodump fix the block-local item ID vectors.
2011-08-21 23:02:05 +02:00
Petr Mrázek
81e6bce92c
Command history separated from Console.
2011-08-13 14:42:09 +02:00
Petr Mrázek
fedb6150f4
Merge https://github.com/warmist/dfhack
2011-08-06 21:00:54 +02:00
Petr Mrázek
cb93b5542e
Fix problem with running interactive commands from hotkeys.
2011-08-06 04:37:29 +02:00
Petr Mrázek
be358ec1de
Ported deramp, cleanowned and cleartask tools.
2011-08-05 00:41:31 +02:00
Warmist
4b9786f8af
Thread safety for void* sharing part of DFHack::Core
2011-08-04 22:33:54 +03:00
Warmist
9985b5de0f
DFHack::Core modification: added a way to share void* between plugins and/or plugin unloads.
2011-08-04 22:00:21 +03:00
Petr Mrázek
fa970fc8fa
Hotkey commands work with TEXT mode (limited).
2011-08-01 04:40:23 +02:00
Petr Mrázek
331ada8f91
Don't take over console in TEXT mode.
2011-08-01 03:31:52 +02:00
Petr Mrázek
a36d8b0619
Merge https://github.com/warmist/dfhack
2011-07-31 23:29:34 +02:00
Petr Mrázek
9cf69164ed
BitArray implementation, now used in Maps for the flags.
2011-07-30 16:47:49 +02:00
Petr Mrázek
a9a3a3ff5f
Merge branch 'topic_tools'
2011-07-28 02:36:25 +02:00
Warmist
bc23cc9eca
Made Process::setPermisions functions, to set memory page's permisions
2011-07-28 01:00:12 +03:00
Petr Mrázek
2470e564a9
Linux-side of threading function rewrite. Windows=broken.
2011-07-27 05:59:09 +02:00
Petr Mrázek
d65f5596cb
Ported mode, probe. Some changes required for that.
2011-07-25 10:14:58 +02:00
Petr Mrázek
a8ff3d9d48
Merge pull request #116 from matthew-cline/TOPIC-items
...
Improved Items module and itemhacks plugin
2011-07-25 01:10:07 -07:00
Matthew Cline
109f34cd6e
Improved Items module and itemhacks plugin
...
Items module:
* Identified flags for "owned by hostile" and "owned by trader".
* Identified an unknown uint32_t field as being the item age.
* Added and documented ClassNameCheck for more item ref types, though
they aren't used yet (other than to mark that item ref class as a
"known" class).
* Added method to get list of an item's unknown item ref classes.
* Made all unknown flags have name 'unk#', instead of some also having
the name 'u_ngrd#'.
Itemhacks plugin:
* Folded second command into "dumpitems unknown", which will list
any items which have the unknown vector field non-empty (which seems
to be associated with tasked items).
* "dumpitems unknown" will also dump any item with a set unknown flag
or with item refs of an unknown class.
2011-07-24 21:35:50 -07:00
Matthew Cline
41130cb613
ClassNameCheck tracks class names used
...
Each time the ClassNameCheck constructor is called it adds to the list
of class names given to it, which can later be retrieved by a class
static method.
2011-07-24 21:24:34 -07:00
Petr Mrázek
bd9643c8cc
Merge branch 'dfapi'
...
Conflicts:
CMakeLists.txt
library/DFProcess-linux.cpp
library/include/dfhack-c/modules/Creatures_C.h
library/include/dfhack/modules/Maps.h
library/modules/Creatures_C.cpp
2011-07-23 17:29:05 +02:00
Petr Mrázek
6b6eed34cc
Merge https://github.com/zilpin/dfhack
2011-07-23 17:08:15 +02:00
Petr Mrázek
caf6f881df
Minimize notes module.
2011-07-23 03:25:42 +02:00
Petr Mrázek
35cf108040
Fix up material color names and basic flag array type in Materials.
2011-07-22 03:54:09 +02:00
Petr Mrázek
e00a4e8888
Fix ore/gem sorting.
2011-07-22 03:00:56 +02:00
Petr Mrázek
7325808c98
Fixes to materials.
2011-07-22 02:44:36 +02:00
Petr Mrázek
131c32494a
Added DF material structs reversed by Quietust
2011-07-21 22:37:02 +02:00
Matthew Cline
86577d4f8a
Notes module
...
Gets a vector of pointers to note structs
2011-07-20 18:26:52 -07:00
Matthew Cline
6631f97a6a
More info on inorganic materials
...
Get value, wall tile, boulder tile, smelting info and strand extraction
info for inorganic materials. Prospector uses this to separete out vein
materials into ores, gems and other.
Offsets provided for both Linux and Windows, but only tested on Linux.
2011-07-20 06:18:50 -07:00
Petr Mrázek
0defcc9889
Making Items a bit more sane. It's still using Accessors though.
2011-07-20 10:41:13 +02:00
zilpin
4eb13800cd
-WriteVein(), and some convenience functions for the vein bitmaps.
2011-07-18 15:55:41 -04:00
Petr Mrázek
00cf7bc39e
Merge branch 'dfapi' of github.com:peterix/dfhack into dfapi
2011-07-18 16:28:06 +02:00
Petr Mrázek
84f74bc091
Added plugin loading/unloading/reloading. Many locks. Too many damn locks.
2011-07-18 16:22:49 +02:00
Petr Mrázek
e021199178
Merge pull request #106 from matthew-cline/TOPIC-folder
...
Get game's current world save folder
2011-07-17 02:26:06 -07:00
Petr Mrázek
fdb5397a1d
Safer console shutdown.
2011-07-17 11:06:45 +02:00
Matthew Cline
a923d19f76
Get game's current world save folder
...
Use World::ReadWorldFolder() to get "region1" (or whatever it currently
is). Only have offset for Linux.
2011-07-16 16:00:50 -07:00
Petr Mrázek
9f822af45a
Process: added a method for getting the main module base (windows). Returns 0 on linux.
2011-07-16 23:00:28 +02:00
Petr Mrázek
d6d108dd34
Qt plugin fixes for windows, renamed interface to df_interface in Gui.
2011-07-16 18:10:08 +02:00
Petr Mrázek
fd418cd2dc
cmake cleanup in library/
2011-07-16 07:59:36 +02:00
Petr Mrázek
459d48d75a
Made the linux console super awesome. The dfhack script won't LD_PRELOAD dfhack for gdb.
2011-07-15 15:55:01 +02:00
Petr Mrázek
d21b196766
Error printing call for Console, the NYAN CAT!
2011-07-14 11:15:23 +02:00
Petr Mrázek
96153a7b05
Merge branch 'dfapi' of github.com:peterix/dfhack into dfapi
2011-07-14 04:06:12 +02:00
Petr Mrázek
792d272fbf
Windows side of the Console rewrite
2011-07-14 04:05:27 +02:00
Petr Mrázek
a40153a8e1
Merge pull request #98 from matthew-cline/TOPIC-vermin
...
Vermin module and colonies plugin
2011-07-13 04:24:38 -07:00
Petr Mrázek
630b746cfe
Integrate linenoise into Console - Linux part
2011-07-13 11:45:30 +02:00
Matthew Cline
d1170d54c3
Vermin module and colonies plugin
...
This is the start of the vermin module. Right now it just gets a list
of the positions at which vermin are created (spawn points). Most
spawn points are invisible and transient, but colonies (ant hills and
such) are permanent and visible. The address of the spawn points vector
is only provided for Linux 0.31.25
The colonies plugin uses the vermin module to list the location and
species of colonies, and can either wipe them all out or turn them all
into honey bee colonies.
2011-07-12 23:17:51 -07:00
Petr Mrázek
4015586d89
Eliminated the core suspend latency, possibly added a heap of race conditions. Added vdig.
2011-07-11 22:23:13 +02:00
Matthew Cline
5c1526d6d9
creatures: read and write pregnancy counter
...
Also change creaturemanger to print out the ticks-until-birth for
pregnant creatures.
2011-07-11 02:48:10 -07:00
Petr Mrázek
3850954449
Hotkey input works on windows/under wine. Added skeleton for the veindigger plugin.
2011-07-10 21:07:14 +02:00
Matthew Cline
cb9c9aae7c
Deal with third flag group in creatures
...
Added support for reading and writing the third creature flag group,
t_creaturflags3 (the offest already exists in Memory.xml). So far I've
only figured out three of the flags (out of an apparent 13):
1) announce_titan, which causes the creature to be announced as if
it was a titan or FB which had just arrived.
2) scuttle, which causes the creature to be die like it had been
killed in the game. That is, it leaves behind a corpse, and
will generate unhappy thoughts in dwarves if approriate.
3) ghostly, for creatures which are the ghosts of dead dwarves.
I updated creaturemanager to use scuttle for --kill, and added the
action --erase to kill in the old way which doesn't leave a corpse or
creatre unhappy thoughts.
2011-07-10 04:00:52 -07:00
Petr Mrázek
07c11c704d
Fix Windows build (untested, expect explosions).
2011-07-09 16:05:40 +02:00
Petr Mrázek
d894ef0ffa
Hotkey UI for linux.
2011-07-09 11:33:58 +02:00
Petr Mrázek
65d7278f53
Added a bunch of butchered SDL headers, catching SDL events on linux.
2011-07-08 03:55:37 +02:00
Petr Mrázek
367d79bcfa
Weather plugin to mirror the weather tool.
2011-07-07 10:57:57 +02:00