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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								cb27a1d839 
								
							
								 
							
						 
						
							
							
								
								Fix typo in the 1MB constant.  
							
							
							
						 
						
							2012-04-15 11:31:05 +04:00  
				
					
						
							
							
								 
						
							
							
								fc38371b29 
								
							
								 
							
						 
						
							
							
								
								Clean up some chaos in old code.  
							
							
							
						 
						
							2012-04-15 01:15:15 +02:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								fa063e2936 
								
							
								 
							
						 
						
							
							
								
								Track structures, fix trivial problem in zone plugin  
							
							
							
						 
						
							2012-04-15 00:35:59 +02:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								7a34a89f53 
								
							
								 
							
						 
						
							
							
								
								Add burrow subcommands to modify burrow unit and tile sets.  
							
							
							
						 
						
							2012-04-14 14:12:59 +04:00  
				
					
						
							
							
								 
						
							
							
								2f54a48e63 
								
							
								 
							
						 
						
							
							
								
								Add a plugin that makes selected burrows auto-grow on digging.  
							
							
							
						 
						
							2012-04-13 21:41:42 +04:00  
				
					
						
							
							
								 
						
							
							
								37cfb1fdcd 
								
							
								 
							
						 
						
							
							
								
								Add unit position and container api.  
							
							
							
						 
						
							2012-04-13 16:10:19 +04:00  
				
					
						
							
							
								 
						
							
							
								2d8611a480 
								
							
								 
							
						 
						
							
							
								
								Add core api for moving items between ground and containers.  
							
							
							
						 
						
							2012-04-12 18:37:27 +04:00  
				
					
						
							
							
								 
						
							
							
								38a8c43a25 
								
							
								 
							
						 
						
							
							
								
								Reverse-rebase the vtable pointers printed to stderr.log.  
							
							
							
						 
						
							2012-04-12 11:21:25 +04:00  
				
					
						
							
							
								 
						
							
							
								583ccdcc0c 
								
							
								 
							
						 
						
							
							
								
								Support pre-initializing vtable pointers from symbols.xml  
							
							
							
						 
						
							2012-04-12 10:54:53 +04:00  
				
					
						
							
							
								 
						
							
							
								5d5502ae34 
								
							
								 
							
						 
						
							
							
								
								Update the item owner modification api and export it to lua.  
							
							
							
						 
						
							2012-04-11 20:10:31 +04:00  
				
					
						
							
							
								 
						
							
							
								0c2b78b96b 
								
							
								 
							
						 
						
							
							
								
								Add api for manipulating burrows to the core.  
							
							
							
						 
						
							2012-04-11 19:42:05 +04:00  
				
					
						
							
							
								 
						
							
							
								61245711f7 
								
							
								 
							
						 
						
							
							
								
								Export a few maps functions to lua.  
							
							
							
						 
						
							2012-04-11 16:20:16 +04:00  
				
					
						
							
							
								 
						
							
							
								c7b922250b 
								
							
								 
							
						 
						
							
							
								
								More maps api refactoring and renaming.  
							
							... 
							
							
							
							getBlockAbs is a very confusing name; getTileBlock is better. 
							
						 
						
							2012-04-11 12:01:27 +04:00  
				
					
						
							
							
								 
						
							
							
								8c40a27ea0 
								
							
								 
							
						 
						
							
							
								
								Add unit_misc_trait list to BasicUnitInfo protobuf API.  
							
							
							
						 
						
							2012-04-10 20:42:23 -04:00  
				
					
						
							
							
								 
						
							
							
								6cf8220f28 
								
							
								 
							
						 
						
							
							
								
								Add SetUnitLabors protobuf API.  
							
							
							
						 
						
							2012-04-10 20:41:54 -04:00  
				
					
						
							
							
								 
						
							
							
								59ddbfacb7 
								
							
								 
							
						 
						
							
							
								
								Implement item occupancy tracking in MapCache.  
							
							
							
						 
						
							2012-04-10 20:19:41 +04:00  
				
					
						
							
							
								 
						
							
							
								b15d2da819 
								
							
								 
							
						 
						
							
							
								
								Get rid of some obsolete api functions, and restructure MapCache.  
							
							
							
						 
						
							2012-04-10 18:21:19 +04:00  
				
					
						
							
							
								 
						
							
							
								249be0c1a0 
								
							
								 
							
						 
						
							
							
								
								Change SC_MAP_LOADED handling: only NULL/not NULL change is meaningful.  
							
							
							
						 
						
							2012-04-10 12:11:00 +04:00  
				
					
						
							
							
								 
						
							
							
								93c795cfc3 
								
							
								 
							
						 
						
							
							
								
								Job module api tweaks: add a namespace to match others and some funcs.  
							
							
							
						 
						
							2012-04-10 11:43:36 +04:00  
				
					
						
							
							
								 
						
							
							
								0e0740fddf 
								
							
								 
							
						 
						
							
							
								
								Stop printall(df.global) from breaking if there are unknown addresses.  
							
							
							
						 
						
							2012-04-10 10:34:03 +04:00  
				
					
						
							
							
								 
						
							
							
								585de77489 
								
							
								 
							
						 
						
							
							
								
								Track structures  
							
							
							
						 
						
							2012-04-09 00:59:57 +02:00  
				
					
						
							
							
								 
						
							
							
								45ae2ed67f 
								
							
								 
							
						 
						
							
							
								
								Pull a few utility functions into the core and publish to lua.  
							
							
							
						 
						
							2012-04-07 19:08:30 +04:00  
				
					
						
							
							
								 
						
							
							
								e74788cb26 
								
							
								 
							
						 
						
							
							
								
								Add a generic facility for object finalization during stack unwind.  
							
							... 
							
							
							
							Supports two modes of finalization:
- try {...} finally {...}
- try {...} catch { ...; throw }
Argument passing discipline is designed with vararg tail calls in mind. 
							
						 
						
							2012-04-07 14:21:38 +04:00  
				
					
						
							
							
								 
						
							
							
								0daafef690 
								
							
								 
							
						 
						
							
							
								
								Wrap MaterialInfo for lua.  
							
							
							
						 
						
							2012-04-06 19:56:19 +04:00  
				
					
						
							
							
								 
						
							
							
								2640addf49 
								
							
								 
							
						 
						
							
							
								
								Split LuaTools.cpp to separate core utils from general dfhack api.  
							
							
							
						 
						
							2012-04-06 18:00:54 +04:00  
				
					
						
							
							
								 
						
							
							
								903e9ee716 
								
							
								 
							
						 
						
							
							
								
								Export a few more functions to lua.  
							
							
							
						 
						
							2012-04-06 11:21:28 +04:00  
				
					
						
							
							
								 
						
							
							
								9eed9f0d24 
								
							
								 
							
						 
						
							
							
								
								Wrap a few utility functions defined on the c++ side for lua.  
							
							
							
						 
						
							2012-04-05 19:55:59 +04:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								59f411e401 
								
							
								 
							
						 
						
							
							
								
								Oops, forgot return statement.  
							
							
							
						 
						
							2012-04-05 12:32:10 +04:00  
				
					
						
							
							
								 
						
							
							
								3afed43cdb 
								
							
								 
							
						 
						
							
							
								
								Experimental: try wrapping a dfhack api function.  
							
							
							
						 
						
							2012-04-05 11:59:39 +04:00  
				
					
						
							
							
								 
						
							
							
								d1b27418a6 
								
							
								 
							
						 
						
							
							
								
								Add a World::GetPersistentData version that auto-adds if not found.  
							
							
							
						 
						
							2012-04-05 11:32:23 +04:00  
				
					
						
							
							
								 
						
							
							
								a45e83ef14 
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #146  from wjrogers/feature-protobuf-api  
							
							... 
							
							
							
							Add ListJobSkills protobuf API 
							
						 
						
							2012-04-04 16:46:20 -07:00  
				
					
						
							
							
								 
						
							
							
								1b6f5f3f34 
								
							
								 
							
						 
						
							
							
								
								Add additional related data to ListJobSkills.  
							
							... 
							
							
							
							Add the attributes for profession and unit_labor, and (re)name the
protobuf messages JobSkillAttr, ProfessionAttr, and UnitLaborAttr to
better reflect their content and distinguish them from e.g. the
SkillInfo message included in BasicUnitInfo. 
							
						 
						
							2012-04-04 11:53:47 -04:00  
				
					
						
							
							
								 
						
							
							
								7efbd798ce 
								
							
								 
							
						 
						
							
							
								
								Upgrade lua errors to structures when attaching stack trace.  
							
							... 
							
							
							
							This allows detecting when it's re-thrown and avoiding attaching the
stack twice, and so on. Would also be useful if debugging is added. 
							
						 
						
							2012-04-04 13:34:07 +04:00  
				
					
						
							
							
								 
						
							
							
								81fb57a853 
								
							
								 
							
						 
						
							
							
								
								Add color output and input prompt support to core lua api.  
							
							
							
						 
						
							2012-04-04 10:40:33 +04:00  
				
					
						
							
							
								 
						
							
							
								7e896277ec 
								
							
								 
							
						 
						
							
							
								
								Don't export describeJobSkills.  
							
							
							
						 
						
							2012-04-03 14:22:46 -04:00  
				
					
						
							
							
								 
						
							
							
								59d7b6faab 
								
							
								 
							
						 
						
							
							
								
								Add ListJobSkills.  
							
							
							
						 
						
							2012-04-03 14:03:06 -04:00  
				
					
						
							
							
								 
						
							
							
								2d4af4ac3e 
								
							
								 
							
						 
						
							
							
								
								A few more utility functions for lua.  
							
							
							
						 
						
							2012-04-03 20:02:01 +04:00  
				
					
						
							
							
								 
						
							
							
								42a9b0a592 
								
							
								 
							
						 
						
							
							
								
								Make Core::Suspend safe in plugin_onupdate by pretending to hold the lock.  
							
							... 
							
							
							
							It is in essence true that OnUpdate owns the suspend lock, so
expose it officially to the recursive suspend lock mechanics. 
							
						 
						
							2012-04-03 13:29:59 +04:00  
				
					
						
							
							
								 
						
							
							
								444377f9db 
								
							
								 
							
						 
						
							
							
								
								Finish documenting the DFHack core lua api existing so far.  
							
							
							
						 
						
							2012-04-03 13:13:44 +04:00  
				
					
						
							
							
								 
						
							
							
								a8fe0eccb4 
								
							
								 
							
						 
						
							
							
								
								Add functions for checking validity of lua wrapper objects.  
							
							
							
						 
						
							2012-04-02 22:02:04 +04:00  
				
					
						
							
							
								 
						
							
							
								467f4108ae 
								
							
								 
							
						 
						
							
							
								
								Track structures  
							
							
							
						 
						
							2012-04-02 13:42:56 +02:00  
				
					
						
							
							
								 
						
							
							
								2a998a5b8a 
								
							
								 
							
						 
						
							
							
								
								Merge  https://github.com/quietust/dfhack  
							
							
							
						 
						
							2012-04-02 13:42:18 +02:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								d109b6570b 
								
							
								 
							
						 
						
							
							
								
								Add dfhack.with_suspend(f[, args...]) that calls f with core suspended.  
							
							... 
							
							
							
							The lock is properly removed in case of error, which is then propagated.
Just for fun, it also can be yielded from within in a coroutine. 
							
						 
						
							2012-04-01 19:38:42 +04:00  
				
					
						
							
							
								 
						
							
							
								e3d50b9b04 
								
							
								 
							
						 
						
							
							
								
								Optimize wrapper: use pointers instead of strings as most frequent keys.  
							
							
							
						 
						
							2012-04-01 18:34:04 +04:00