Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								ed4acbdedb 
								
							
								 
							
						 
						
							
							
								
								Add a searcher for current_weather, using a prepared save.  
							
							 
							
							
							
						 
						
							2012-06-20 10:12:26 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								bd5b675fa5 
								
							
								 
							
						 
						
							
							
								
								Add ui_menu_width finder, tweak instructions, and add a case for win exe.  
							
							 
							
							
							
						 
						
							2012-06-18 21:11:54 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								dc6cb61979 
								
							
								 
							
						 
						
							
							
								
								Add more offset finders to the script.  
							
							 
							
							
							
						 
						
							2012-06-17 18:44:59 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								67536da2fe 
								
							
								 
							
						 
						
							
							
								
								Add an interactive script finding a limited subset of linux offsets.  
							
							 
							
							
							
						 
						
							2012-06-16 19:51:15 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								7eb4fc19de 
								
							
								 
							
						 
						
							
							
								
								Make dfhack.run_script usable from other scripts, and document it.  
							
							 
							
							
							
						 
						
							2012-06-14 12:46:12 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								efdb709284 
								
							
								 
							
						 
						
							
							
								
								Support creating rollers and stops with dfhack.buildings.constructBuilding.  
							
							 
							
							
							
						 
						
							2012-05-17 00:19:29 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								642a625586 
								
							
								 
							
						 
						
							
							
								
								Support custom buildings in dfhack.buildings.getFiltersByType.  
							
							 
							
							... 
							
							
							
							Also document it and constructBuilding in Lua API docs. 
							
						 
						
							2012-05-13 18:39:00 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								87ec1de891 
								
							
								 
							
						 
						
							
							
								
								Improve lua api for tile biome access.  
							
							 
							
							
							
						 
						
							2012-05-13 13:58:41 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								d6813c7690 
								
							
								 
							
						 
						
							
							
								
								Change xml submodule pointer.  
							
							 
							
							
							
						 
						
							2012-05-08 19:08:34 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								191071beb6 
								
							
								 
							
						 
						
							
							
								
								Add more lua scripts.  
							
							 
							
							
							
						 
						
							2012-05-08 12:55:06 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								fca618ff1b 
								
							
								 
							
						 
						
							
							
								
								Support default building inputs in dfhack.buildings.constructBuilding.  
							
							 
							
							
							
						 
						
							2012-05-06 19:11:29 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								9ad8d767b4 
								
							
								 
							
						 
						
							
							
								
								Add code for adding abstract buildings and removing constructions.  
							
							 
							
							
							
						 
						
							2012-05-06 19:09:11 +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
							
						 
						
							 
							
							
							
								
							
								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
							
						 
						
							 
							
							
							
								
							
								16ee049664 
								
							
								 
							
						 
						
							
							
								
								Split off the burrows api from Maps and Units.  
							
							 
							
							
							
						 
						
							2012-04-26 12:56:28 +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
							
						 
						
							 
							
							
							
								
							
								2ef321a208 
								
							
								 
							
						 
						
							
							
								
								Preserve the original lua global environment for modules.  
							
							 
							
							... 
							
							
							
							The intent is to prevent accidental pollution of module namespaces
by globals defined from careless scripts running in the _G environment. 
							
						 
						
							2012-04-21 20:15:57 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								4af051bab3 
								
							
								 
							
						 
						
							
							
								
								Add a few more unit orderings, and a way to reverse direction.  
							
							 
							
							
							
						 
						
							2012-04-21 16:53:17 +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
							
						 
						
							 
							
							
							
								
							
								3beb2ebf25 
								
							
								 
							
						 
						
							
							
								
								Export the onStateChange event to core lua context & add some docs.  
							
							 
							
							
							
						 
						
							2012-04-17 11:45:09 +04:00  
						
					 
				
					
						
							
							
								 
								Warmist
							
						 
						
							 
							
							
							
								
							
								17d5b2de04 
								
							
								 
							
						 
						
							
							
								
								Multiline interpreter.  
							
							 
							
							... 
							
							
							
							To test try writing for k,v in pairs(table) do <enter> print(k) <enter> end
Also prompt could be changed (couldn't think of anything better). 
							
						 
						
							2012-04-16 18:46:20 +03: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
							
						 
						
							 
							
							
							
								
							
								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
							
						 
						
							 
							
							
							
								
							
								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
							
						 
						
							 
							
							
							
								
							
								2d8611a480 
								
							
								 
							
						 
						
							
							
								
								Add core api for moving items between ground and containers.  
							
							 
							
							
							
						 
						
							2012-04-12 18:37:27 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								0c2b78b96b 
								
							
								 
							
						 
						
							
							
								
								Add api for manipulating burrows to the core.  
							
							 
							
							
							
						 
						
							2012-04-11 19:42:05 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								61245711f7 
								
							
								 
							
						 
						
							
							
								
								Export a few maps functions to lua.  
							
							 
							
							
							
						 
						
							2012-04-11 16:20:16 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								2d4af4ac3e 
								
							
								 
							
						 
						
							
							
								
								A few more utility functions for lua.  
							
							 
							
							
							
						 
						
							2012-04-03 20:02:01 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								edd63080b5 
								
							
								 
							
						 
						
							
							
								
								Only print the shortcut help once in the lua interactive mode.  
							
							 
							
							
							
						 
						
							2012-04-01 17:00:25 +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  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								a9a6fbd8b5 
								
							
								 
							
						 
						
							
							
								
								Lua tweaks: a couple of functions, dfusion tweak, backtrace metadata.  
							
							 
							
							
							
						 
						
							2012-04-01 12:50:56 +04:00  
						
					 
				
					
						
							
							
								 
								Alexander Gavrilov
							
						 
						
							 
							
							
							
								
							
								0f41608ed4 
								
							
								 
							
						 
						
							
							
								
								Pull console output support and REPL out of dfusion into core lib.  
							
							 
							
							
							
						 
						
							2012-03-31 15:40:54 +04:00