diff --git a/Memory.xml b/Memory.xml index c7a59ca94..7126413b5 100644 --- a/Memory.xml +++ b/Memory.xml @@ -2263,6 +2263,7 @@
+
diff --git a/plugins/Dfusion/dfusion.cpp b/plugins/Dfusion/dfusion.cpp index 2a013328d..512292777 100644 --- a/plugins/Dfusion/dfusion.cpp +++ b/plugins/Dfusion/dfusion.cpp @@ -77,7 +77,7 @@ DFhackCExport command_result plugin_onupdate ( Core * c ) catch(lua::exception &e) { c->con.printerr("Error OnTick:%s\n",e.what()); - c->con.printerr("%s",lua::DebugDump(lua::glua::Get()).c_str()); + c->con.printerr("%s\n",lua::DebugDump(lua::glua::Get()).c_str()); c->con.msleep(1000); } } @@ -104,7 +104,7 @@ void InterpreterLoop(Core* c) catch(lua::exception &e) { con.printerr("Error:%s\n",e.what()); - c->con.printerr("%s",lua::DebugDump(lua::glua::Get()).c_str()); + c->con.printerr("%s\n",lua::DebugDump(lua::glua::Get()).c_str()); s.settop(0); } con.lineedit(">>",curline); @@ -125,7 +125,7 @@ DFhackCExport command_result lua_run (Core * c, vector & parameters) catch(lua::exception &e) { con.printerr("Error:%s\n",e.what()); - c->con.printerr("%s",lua::DebugDump(lua::glua::Get()).c_str()); + c->con.printerr("%s\n",lua::DebugDump(lua::glua::Get()).c_str()); } } else @@ -150,7 +150,7 @@ DFhackCExport command_result dfusion (Core * c, vector & parameters) catch(lua::exception &e) { con.printerr("Error:%s\n",e.what()); - c->con.printerr("%s",lua::DebugDump(lua::glua::Get()).c_str()); + c->con.printerr("%s\n",lua::DebugDump(lua::glua::Get()).c_str()); } s.settop(0);// clean up mymutex->unlock(); diff --git a/plugins/Dfusion/luafiles/common.lua b/plugins/Dfusion/luafiles/common.lua index 21e89fe20..912862d56 100644 --- a/plugins/Dfusion/luafiles/common.lua +++ b/plugins/Dfusion/luafiles/common.lua @@ -321,7 +321,9 @@ function findVectors() end function GetRaceToken(p) --actually gets token... - local vec=engine.peek(offsets.getEx('CreatureGloss'),ptr_vector) + print(string.format("%x vs %x",offsets.getEx('CreatureGloss'),VersionInfo.getGroup("Materials"):getAddress("creature_type_vector"))) + --local vec=engine.peek(offsets.getEx('CreatureGloss'),ptr_vector) + local vec=engine.peek(VersionInfo.getGroup("Materials"):getAddress("creature_type_vector"),ptr_vector) --print("Vector ok") local off=vec:getval(p) --print("Offset:"..off) diff --git a/plugins/Dfusion/luafiles/friendship/patch.lua b/plugins/Dfusion/luafiles/friendship/patch.lua index b11ad41da..6707e4155 100644 --- a/plugins/Dfusion/luafiles/friendship/patch.lua +++ b/plugins/Dfusion/luafiles/friendship/patch.lua @@ -1,6 +1,6 @@ function friendship_in.patch() pos=GetTextRegion().start - local crace=offsets.getEx("CurrentRace") + local crace=add_race --offsets.getEx("CurrentRace") hits={} i=1 repeat diff --git a/plugins/Dfusion/luafiles/friendship/plugin.lua b/plugins/Dfusion/luafiles/friendship/plugin.lua index 2a317afe0..e820a0ccd 100644 --- a/plugins/Dfusion/luafiles/friendship/plugin.lua +++ b/plugins/Dfusion/luafiles/friendship/plugin.lua @@ -40,10 +40,15 @@ end Two more compares are missing. There are calls instead (same function) ]]-- if not(FILE) then -print("race num:"..engine.peekw(offsets.getEx("CurrentRace"))) -print("Your current race is:"..GetRaceToken(engine.peekw(offsets.getEx('CurrentRace')))) -print("If this is wrong please quit now (by ctrl+c)") -io.stdin:read() +--print("race num:"..engine.peekw(offsets.getEx("CurrentRace"))) +--print(string.format("%x vs %x",offsets.getEx("CurrentRace"),VersionInfo.getGroup("Creatures"):getAddress("current_race"))) +add_race=VersionInfo.getGroup("Creatures"):getAddress("current_race") +print("Race num:"..engine.peekw(add_race)) +print("Your current race is:"..GetRaceToken(engine.peekw(add_race))) +print("If this is wrong please type 'q'") +if(io.stdin:read()=='q') then + return +end end friendship_in={} dofile("dfusion/friendship/install.lua") diff --git a/plugins/Dfusion/src/lua_VersionInfo.cpp b/plugins/Dfusion/src/lua_VersionInfo.cpp index 8f909d686..538de7360 100644 --- a/plugins/Dfusion/src/lua_VersionInfo.cpp +++ b/plugins/Dfusion/src/lua_VersionInfo.cpp @@ -9,35 +9,35 @@ OffsetGroup::OffsetGroup(lua_State *L,int id):tblid(id) int OffsetGroup::getOffset(lua_State *L) { lua::state st(L); - int32_t ret=p->getOffset(st.as(2)); + int32_t ret=p->getOffset(st.as(1)); st.push(ret); return 1; } int OffsetGroup::getAddress(lua_State *L) { lua::state st(L); - uint32_t ret=p->getAddress(st.as(2)); + uint32_t ret=p->getAddress(st.as(1)); st.push(ret); return 1; } int OffsetGroup::getHexValue(lua_State *L) { lua::state st(L); - uint32_t ret=p->getHexValue(st.as(2)); + uint32_t ret=p->getHexValue(st.as(1)); st.push(ret); return 1; } int OffsetGroup::getString(lua_State *L) { lua::state st(L); - std::string ret=p->getString(st.as(2)); + std::string ret=p->getString(st.as(1)); st.push(ret); return 1; } int OffsetGroup::getGroup(lua_State *L) { lua::state st(L); - DFHack::OffsetGroup* t= p->getGroup(st.as(2)); + DFHack::OffsetGroup* t= p->getGroup(st.as(1)); st.getglobal("OffsetGroup"); st.getfield("new"); st.getglobal("OffsetGroup"); @@ -49,7 +49,7 @@ int OffsetGroup::getSafeOffset(lua_State *L) { lua::state st(L); int32_t out; - bool ret=p->getSafeOffset(st.as(2),out); + bool ret=p->getSafeOffset(st.as(1),out); st.push(ret); st.push(out); return 2; @@ -58,7 +58,7 @@ int OffsetGroup::getSafeAddress(lua_State *L) { lua::state st(L); uint32_t out; - bool ret=p->getSafeAddress(st.as(2),out); + bool ret=p->getSafeAddress(st.as(1),out); st.push(ret); st.push(out); return 2; @@ -67,7 +67,7 @@ int OffsetGroup::PrintOffsets(lua_State *L) { lua::state st(L); std::string output; - output=p->PrintOffsets(st.as(2)); + output=p->PrintOffsets(st.as(1)); st.push(output); return 1; }