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
Alexander Gavrilov
cb27a1d839
Fix typo in the 1MB constant.
2012-04-15 11:31:05 +04:00
Petr Mrázek
c69af6ab9e
Fix missing lua linkage in burrows plugin.
2012-04-15 01:58:02 +02:00
Petr Mrázek
a19d25f532
Merge https://github.com/warmist/dfhack
2012-04-15 01:27:09 +02:00
Petr Mrázek
fc38371b29
Clean up some chaos in old code.
2012-04-15 01:15:15 +02:00
Warmist
f235d8f371
Orbital nuking was bit excessive...
2012-04-15 01:27:02 +03:00
Warmist
e686b1c8e2
Orbital nuking of C4819 (code-page warning)
2012-04-15 01:20:59 +03:00
Petr Mrázek
5f1c933b0f
Merge pull request #148 from wjrogers/feature-protobuf-api
...
Add SetUnitLabors and additional optional data to ListUnits
2012-04-14 14:56:19 -07:00
Petr Mrázek
fa063e2936
Track structures, fix trivial problem in zone plugin
2012-04-15 00:35:59 +02:00
Petr Mrázek
45ca8c6ac1
Merge https://github.com/angavrilov/dfhack
2012-04-15 00:13:39 +02:00
Petr Mrázek
c52eb517b0
Merge https://github.com/rh73/dfhack
2012-04-15 00:12:38 +02:00
Petr Mrázek
fa6ecacda9
Merge https://github.com/warmist/dfhack
2012-04-15 00:12:06 +02:00
Petr Mrázek
c6c6c51766
The 'r' in release string is now also tweakable.
2012-04-14 23:38:29 +02:00
Petr Mrázek
610a23252e
Make release string tweakable.
2012-04-14 23:36:45 +02:00
Warmist
451f07ecb4
breakfast build bat...
2012-04-15 00:03:12 +03:00
Robert Heinrich
9f95e67c75
tweak makeown: converts MERCHANT to TRADER (otherwise you can't assign jobs to kidnapped merchants.
...
zone: fixed a bug which could lead to units being assigned to more than one cage and/or accidentally marked for slaughter
2012-04-14 19:06:03 +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
Petr Mrázek
bbf28eb33d
Disable df2minecraft again.
2012-04-14 14:15:46 +02:00
Robert Heinrich
2100a95ad5
zone: fixed major derp (assign commands would accidentally free caged creatures). tweak: added cheat to kidnap caravan escorts (works fine even for other races, does NOT work for traders because they can't be assigned any labors for whatever reason)
2012-04-14 13:36:22 +02:00
Warmist
a2a47c5d63
Fix to init (no need to add " around). Added experimental (crashy as hell) tools.project
2012-04-14 13:30:48 +03: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
Robert Heinrich
fba83bb597
tweak fixmigrant: updated readme.rst
2012-04-12 22:48:46 +02:00
Robert Heinrich
09608467c1
tweak fixmigrant: updated help text
2012-04-12 22:44:53 +02:00
Alexander Gavrilov
2d8611a480
Add core api for moving items between ground and containers.
2012-04-12 18:37:27 +04:00
Robert Heinrich
7331485b46
removed tweak-merchant and tweak-resident, combined both commands into tweak-migrant. added worn items to their uniform so they don't drop their clothes instantly
2012-04-12 14:40:39 +02: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
Robert Heinrich
2caf3fb064
tweak: removed stuff, added new command 'fixmigrants' which will deal with merchants (traders) and other types of bugged migrants. having more than one command for a bug which is basically the same makes no sense.
2012-04-11 22:29:56 +02:00
Petr Mrázek
d874c3b538
Track stonesense
2012-04-11 21:33:45 +02:00
Robert Heinrich
42e4fa79c7
tweak clear-merchant, clear-resident: mark the clothes the migrants wear as "owned" (they still drop them, though. needs more fixes)
2012-04-11 21:07:54 +02:00
Robert Heinrich
09aad951a6
Merge branch 'master' of git://github.com/angavrilov/dfhack
2012-04-11 18:23:01 +02:00
Robert Heinrich
2cf078419b
cprobe: list items worn by unit and checks if they are owned or not
2012-04-11 18:22:39 +02: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
Robert Heinrich
e8e8f29328
regrass: fix
2012-04-11 17:01:20 +02:00
Alexander Gavrilov
61245711f7
Export a few maps functions to lua.
2012-04-11 16:20:16 +04:00
Robert Heinrich
ae7ce9e5d7
zone: fixed assigning to pit/pond. regrass: look for grass events in the map block, increase amount of grass at map position instead of simply changing the tile type
2012-04-11 14:08:47 +02: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
Will Rogers
8c40a27ea0
Add unit_misc_trait list to BasicUnitInfo protobuf API.
2012-04-10 20:42:23 -04:00
Will Rogers
6cf8220f28
Add SetUnitLabors protobuf API.
2012-04-10 20:41:54 -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
Robert Heinrich
7d0cfb7e80
Merge branch 'master' of git://github.com/angavrilov/dfhack
2012-04-10 10:18:38 +02:00
Alexander Gavrilov
249be0c1a0
Change SC_MAP_LOADED handling: only NULL/not NULL change is meaningful.
2012-04-10 12:11:00 +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