Problem is how do I specify in need a signed 2 bytes value (typecast pointer chain ? what do I google for ? ) from this address [EC_address + EC_row_size * (3 - 1) + 0xE] and NOT a 4 bytes type one?
/////////
More context EE and EC structures (fixed length rows ) are linked not by pointer, EC has a field with an index of a record from structure EE.
Also I don't dare to imagine what fallowing 5 level of such structure links/chains would look like code wise .. (better way to do it ?)
EC (battle union stats , targeting info) -> EE ( unit battle stats and battle XP) -> F5 (attr XP ; links to skill tables) -> 104 (base stats and growth formulas)
if sym_lookup_xptr then
unregisterSymbolLookupCallback(sym_lookup_xptr)
sym_lookup_xptr = nil
end
sym_lookup_xptr = registerSymbolLookupCallback(function(str)
local vt, addr = str:match('^(%a-)[_%s]?[pP][tT][rR]%s?(%b[])$')
if not (vt and addr) then return 0 end
vt = string.upper(vt)
addr = getAddressSafe(addr:sub(2,-2))
if not addr then return 0 end
if vt == 'BYTE' then
return readBytes(addr, 1, false)
elseif vt == 'WORD' then
return readSmallInteger(addr)
elseif vt == 'DWORD' then
return readInteger(addr)
elseif vt == 'QWORD' then
return readQword(addr)
elseif vt == 'FLOAT' then
return math.floor(readFloat(addr))
elseif vt == 'DOUBLE' then
return math.floor(readDouble(addr))
else
return 0
end
end, slNotSymbol)
Then you can use stuff like "word_ptr[...]" in the address string. _________________
I don't know where I'm going, but I'll figure it out when I get there.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum