Commit Graph

11658 Commits (a260e6992e55046905cffc2d7c1c5506afc3f11a)
 

Author SHA1 Message Date
Alexander Gavrilov ee7100216e Fix lua interpreter bug: the C call counter is already unwound by yield.
Decrementing it causes underflow and subsequent spurious stack overflow.
2012-04-16 18:32:12 +04:00
Robert Heinrich 9560fc641c zone: mass-assign nicknames, assign units to multiple cages inside a pasture. autobutcher: some fixes regarding autowatch and butchering caged units. 2012-04-16 16:31:12 +02:00
Alexander Gavrilov 1e64a6a2f6 Make dfhack.lineedit automatically interact with RunCoreQueryLoop.
It still falls back to the original waiting mode if yield fails.
2012-04-16 18:05:42 +04: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
Robert Heinrich e6ed81508d autobutcher: only ignore built cages which are defined as rooms/zoos.
zone: allow mass-assigning of nicknames (to protect a pasture/cage from autobutcher)
2012-04-16 10:15:37 +02:00
Alexander Gavrilov 48e4717dd2 Try working around some msvc problems. 2012-04-16 10:59:55 +04:00
Robert Heinrich 9c67250729 regrass: pick random grass event if tile is soil instead of always using the first one found 2012-04-16 07:03:27 +02:00
Robert Heinrich e58a46b42b zone: fixed filter 'trained' so it now finds war/hunting creatures (who strangely don't have a training level) 2012-04-16 03:31:49 +02:00
Robert Heinrich 6287ee59d8 updated readme.rst 2012-04-16 00:52:25 +02:00
Robert Heinrich 4b3c8d46c1 zone: don't assign owned pets to a cage. the owner will release them, resulting into infinite hauling (df bug) 2012-04-15 23:21:36 +02:00
Robert Heinrich 7aefae17d1 autonestbox: don't assign to nestboxes which are already claimed or contain eggs.
bprobe: look a bit closer at nestboxes
2012-04-15 21:45:15 +02:00
Warmist ea4c1e4928 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-04-15 20:56:49 +03: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
Robert Heinrich 6197c4e739 zone: added keyword 'not' which negates the filter followed by it (e.g. 'not grazer') 2012-04-15 19:49:50 +02:00
Robert Heinrich 8bbd43f2c9 zone: added filters to search for creatures who can be trained for war/hunting 2012-04-15 17:40:39 +02:00
Warmist 35981e8146 Merge branch 'master' of https://github.com/angavrilov/dfhack 2012-04-15 18:17:00 +03:00
Warmist 92bc28bb81 Autobuild script update... Edit if you want different zip names. 2012-04-15 18:16:45 +03: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
Robert Heinrich be580592ce Merge branch 'master' of git://github.com/ab9rf/dfhack 2012-04-15 16:07:43 +02:00
Kelly Martin 005658a9cd Add noegglayer zone filter 2012-04-15 09:04:19 -05:00
Robert Heinrich 98df7d99d4 fixed library/xml pointing to wrong commit (I hope) 2012-04-15 15:26:08 +02:00
Robert Heinrich 401461ed49 Merge branch 'master' of git://github.com/peterix/dfhack
Conflicts:
	library/DataDefs.cpp
2012-04-15 12:36:47 +02:00
Robert Heinrich cf0d45be78 merged stuff from peterix 2012-04-15 12:32:25 +02:00
Alexander Gavrilov cb27a1d839 Fix typo in the 1MB constant. 2012-04-15 11:31:05 +04:00
Kelly Martin e9542fb239 Merge remote-tracking branch 'upstream/master' 2012-04-14 20:38:16 -05: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 15248aa465 Propogate errors from bat files. 2012-04-15 01:49:37 +03: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
Kelly Martin 0b200b44d5 Merge remote-tracking branch 'angavrilov/master' 2012-04-14 10:35:37 -05:00
Kelly Martin ebd3e9c9cf Merge remote-tracking branch 'rh73/master' 2012-04-14 10:35:29 -05:00
Kelly Martin 9f057c41af Merge remote-tracking branch 'upstream/master' 2012-04-14 10:35:22 -05: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