summaryrefslogtreecommitdiff
path: root/plugins/Dfusion
diff options
context:
space:
mode:
authorWarmist2012-03-18 16:23:31 +0200
committerWarmist2012-03-18 16:23:31 +0200
commitfe211acb71c02b2ac40272c7d7e49f82a5465d98 (patch)
tree6d3be7f590a880b09e34dae393a66f0b126e75c7 /plugins/Dfusion
parent3383aa7f6dda8ecbcdb69d1dbe0e1292f9da7185 (diff)
downloaddfhack-fe211acb71c02b2ac40272c7d7e49f82a5465d98.tar.gz
dfhack-fe211acb71c02b2ac40272c7d7e49f82a5465d98.tar.bz2
dfhack-fe211acb71c02b2ac40272c7d7e49f82a5465d98.tar.xz
Small bug fixes
Diffstat (limited to 'plugins/Dfusion')
-rw-r--r--plugins/Dfusion/luafiles/common.lua8
-rw-r--r--plugins/Dfusion/luafiles/init.lua17
-rw-r--r--plugins/Dfusion/luafiles/xml_types.lua3
3 files changed, 20 insertions, 8 deletions
diff --git a/plugins/Dfusion/luafiles/common.lua b/plugins/Dfusion/luafiles/common.lua
index 9a800467..bf41d710 100644
--- a/plugins/Dfusion/luafiles/common.lua
+++ b/plugins/Dfusion/luafiles/common.lua
@@ -512,6 +512,14 @@ function Allocate(size)
engine.poked(ptr,curptr)
return curptr-size+ptr
end
+function initType(object,...)
+ local m=getmetatable(object)
+ if m~=nil and m.__setup~=nil then
+ m.__setup(object,...)
+ else
+ error("This object does not have __setup function")
+ end
+end
dofile("dfusion/patterns.lua")
dofile("dfusion/patterns2.lua")
dofile("dfusion/itempatterns.lua")
diff --git a/plugins/Dfusion/luafiles/init.lua b/plugins/Dfusion/luafiles/init.lua
index 20075278..ccb51f57 100644
--- a/plugins/Dfusion/luafiles/init.lua
+++ b/plugins/Dfusion/luafiles/init.lua
@@ -45,6 +45,14 @@ function mainmenu(t1)
end
end
end
+function RunSaved()
+ print("Locating saves...")
+ local str=df.world.cur_savegame.save_dir
+ print("Current region:"..str)
+ str="data/save/"..str.."/dfusion/init.lua"
+ print("Trying to run:"..str)
+ dofile_silent(str)
+end
dofile("dfusion/common.lua")
dofile("dfusion/utils.lua")
dofile("dfusion/offsets_misc.lua")
@@ -70,14 +78,7 @@ table.insert(plugins,{"saves","run current worlds's init.lua",RunSaved})
loadall(plugins)
dofile_silent("dfusion/initcustom.lua")
-function RunSaved()
- print("Locating saves...")
- local str=df.world.cur_savegame.save_dir
- print("Current region:"..str)
- str="data/save/"..str.."/dfusion/init.lua"
- print("Trying to run:"..str)
- dofile_silent(str)
-end
+
if not INIT then
mainmenu(plugins)
end
diff --git a/plugins/Dfusion/luafiles/xml_types.lua b/plugins/Dfusion/luafiles/xml_types.lua
index eff9b20a..cced4be2 100644
--- a/plugins/Dfusion/luafiles/xml_types.lua
+++ b/plugins/Dfusion/luafiles/xml_types.lua
@@ -1,3 +1,6 @@
+--<angavrilov> otherwise you just maintain alignment granularity in addition to size for all fields,
+-- round up current offset to field alignment,
+-- assign structs the max alignment of any field, and round up struct size to its alignment
function type_read(valtype,address)
if valtype.issimple then
--print("Simple read:"..tostring(valtype.ctype))