summaryrefslogtreecommitdiff
path: root/plugins/Dfusion
diff options
context:
space:
mode:
authorWarmist2012-03-24 14:47:51 +0200
committerWarmist2012-03-24 14:47:51 +0200
commit99da37ae4619aa3b0aff1fb1457025a873d4896c (patch)
tree8b698aaf8d70bad53db1dbdbbbeb142968c528ae /plugins/Dfusion
parent7fe5fc9a906710bc603bf93b3e282872990a3361 (diff)
downloaddfhack-99da37ae4619aa3b0aff1fb1457025a873d4896c.tar.gz
dfhack-99da37ae4619aa3b0aff1fb1457025a873d4896c.tar.bz2
dfhack-99da37ae4619aa3b0aff1fb1457025a873d4896c.tar.xz
Moving to new LuaWrapper.
Diffstat (limited to 'plugins/Dfusion')
-rw-r--r--plugins/Dfusion/dfusion.cpp3
-rw-r--r--plugins/Dfusion/luafiles/common.lua26
-rw-r--r--plugins/Dfusion/luafiles/embark/init.lua2
-rw-r--r--plugins/Dfusion/luafiles/friendship/patch.lua2
-rw-r--r--plugins/Dfusion/luafiles/init.lua2
-rw-r--r--plugins/Dfusion/luafiles/tools/init.lua14
6 files changed, 26 insertions, 23 deletions
diff --git a/plugins/Dfusion/dfusion.cpp b/plugins/Dfusion/dfusion.cpp
index 66e36a83..b7ff4747 100644
--- a/plugins/Dfusion/dfusion.cpp
+++ b/plugins/Dfusion/dfusion.cpp
@@ -20,6 +20,7 @@
#include "functioncall.h"
#include "lua_FunctionCall.h"
#include "lua_Offsets.h"
+#include "DataDefs.h"
using std::vector;
using std::string;
@@ -45,6 +46,8 @@ DFhackCExport command_result plugin_init ( Core * c, std::vector <PluginCommand>
{
lua::state st=lua::glua::Get();
//maybe remake it to run automaticaly
+ DFHack::AttachDFGlobals(st);
+
lua::RegisterConsole(st);
lua::RegisterProcess(st);
lua::RegisterHexsearch(st);
diff --git a/plugins/Dfusion/luafiles/common.lua b/plugins/Dfusion/luafiles/common.lua
index ecb5b502..04a0a9b9 100644
--- a/plugins/Dfusion/luafiles/common.lua
+++ b/plugins/Dfusion/luafiles/common.lua
@@ -371,12 +371,12 @@ function GetRaceToken(p) --actually gets token...
end
function BuildNameTable()
local rtbl={}
- local vec=df.world.raws.creatures.all
+ local vec=df.global.world.raws.creatures.all
--print(string.format("Vector start:%x",vec.st))
--print(string.format("Vector end:%x",vec.en))
--print("Creature count:"..vec.size)
- for k,v in iter(vec) do
- local name=v:deref().creature_id
+ for k=0,#vec-1 do
+ local name=vec[k].creature_id
--print(k.." "..tostring(name))
rtbl[name]=k
end
@@ -468,29 +468,29 @@ function ParseNames(path)
return ret
end
function getSelectedUnit()
- local unit_indx=df.ui_selected_unit
- if unit_indx<df.world.units.other[0].size then
- return df.world.units.other[0][unit_indx]:deref()
+ local unit_indx=df.global.ui_selected_unit
+ if unit_indx<#df.global.world.units.other[0]-1 then
+ return df.global.world.units.other[0][unit_indx]
else
return nil
end
end
function getxyz() -- this will return pointers x,y and z coordinates.
- local x=df.cursor.x
- local y=df.cursor.y
- local z=df.cursor.z
+ local x=df.global.cursor.x
+ local y=df.global.cursor.y
+ local z=df.global.cursor.z
return x,y,z -- return the coords
end
function getCreatureAtPos(x,y,z) -- gets the creature index @ x,y,z coord
--local x,y,z=getxyz() --get 'X' coords
- local vector=df.world.units.all -- load all creatures
- for i = 0, vector.size-1 do -- look into all creatures offsets
- local curpos=vector[i]:deref().pos --get its coordinates
+ local vector=df.global.world.units.all -- load all creatures
+ for i = 0, #vector-1 do -- look into all creatures offsets
+ local curpos=vector[i].pos --get its coordinates
local cx=curpos.x
local cy=curpos.y
local cz=curpos.z
if cx==x and cy==y and cz==z then --compare them
- return vector[i]:deref() --return index
+ return vector[i] --return index
end
end
print("Creature not found!")
diff --git a/plugins/Dfusion/luafiles/embark/init.lua b/plugins/Dfusion/luafiles/embark/init.lua
index 704cfc49..35d27e54 100644
--- a/plugins/Dfusion/luafiles/embark/init.lua
+++ b/plugins/Dfusion/luafiles/embark/init.lua
@@ -42,7 +42,7 @@ function embark(names)
count=MakeTable(modpos,modsize,names) --just remake tables
else
- tofind=addressOf(df.ui,"race_id")
+ _,tofind=df.sizeof(df.global.ui:_field("race_id"))
loc=offsets.find(stoff,0x0f,0xb7,0x0d,DWORD_,tofind) --MOVZX ECX,WORD PTR[]
diff --git a/plugins/Dfusion/luafiles/friendship/patch.lua b/plugins/Dfusion/luafiles/friendship/patch.lua
index c57c6474..413b98aa 100644
--- a/plugins/Dfusion/luafiles/friendship/patch.lua
+++ b/plugins/Dfusion/luafiles/friendship/patch.lua
@@ -1,7 +1,7 @@
function friendship_in.patch()
UpdateRanges()
pos=GetTextRegion().start
- local crace=addressOf(df.ui,"race_id")--VersionInfo.getGroup("Creatures"):getAddress("current_race")
+ local _,crace=df.sizeof(df.global.ui:_field("race_id"))
hits={}
i=1
repeat
diff --git a/plugins/Dfusion/luafiles/init.lua b/plugins/Dfusion/luafiles/init.lua
index 97766a97..10242c7e 100644
--- a/plugins/Dfusion/luafiles/init.lua
+++ b/plugins/Dfusion/luafiles/init.lua
@@ -57,7 +57,7 @@ dofile("dfusion/common.lua")
dofile("dfusion/utils.lua")
dofile("dfusion/offsets_misc.lua")
dofile("dfusion/editor.lua")
-dofile("dfusion/xml_struct.lua")
+--dofile("dfusion/xml_struct.lua")
unlockDF()
plugins={}
table.insert(plugins,{"simple_embark","A simple embark dwarf count editor"})
diff --git a/plugins/Dfusion/luafiles/tools/init.lua b/plugins/Dfusion/luafiles/tools/init.lua
index 43747aba..1268a59f 100644
--- a/plugins/Dfusion/luafiles/tools/init.lua
+++ b/plugins/Dfusion/luafiles/tools/init.lua
@@ -2,7 +2,7 @@ tools={}
tools.menu=MakeMenu()
function tools.setrace()
RaceTable=BuildNameTable()
- print("Your current race is:"..GetRaceToken(df.ui.race_id))
+ print("Your current race is:"..GetRaceToken(df.global.ui.race_id))
print("Type new race's token name in full caps (q to quit):")
repeat
entry=getline()
@@ -11,7 +11,7 @@ function tools.setrace()
end
id=RaceTable[entry]
until id~=nil
- df.ui.race_id=id
+ df.global.ui.race_id=id
end
tools.menu:add("Set current race",tools.setrace)
function tools.GiveSentience(names) --TODO make pattern...
@@ -32,15 +32,15 @@ function tools.GiveSentience(names) --TODO make pattern...
end
end
for _,id in pairs(ids) do
- local races=df.world.raws.creatures.all
+ local races=df.global.world.raws.creatures.all
- local castes=races[id]:deref().caste
+ local castes=races[id].caste
print(string.format("Caste count:%i",castes.size))
- for i =0,castes.size-1 do
+ for i =0,#castes-1 do
- print("Caste name:"..castes[i]:deref().caste_id.."...")
+ print("Caste name:"..castes[i].caste_id.."...")
- local flags=castes[i]:deref().flags
+ local flags=castes[i].flags
--print(string.format("%x",flagoffset))
if flags.CAN_SPEAK then
print("\tis sentient.")