papermario/tools/get_variable.py
HailSanta 70d3b7b3a8
msg names and more map data prep (#768)
* minor NPC fixup

* most var type renames

* rest of var names

* remove deprecated

* var types cleanup

* fixed -> float 1

* fixed -> float 2

* fixed -> float 3

* fixed -> float 4

* evt fixed removed

* localvar shorthand

* missing byte names

* missing flag names

* evt var cleanup

* local var shorthand redux

* minor cleanup

* mario anim name

* item ranges cleanup

* player anim names

* all message names

* renames for existing

* remove unused enum

* squash msg ids

* again

* all message refs replaced

* area headers

* idk

* also merged

* remove superfluous parens

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
2022-09-12 01:23:47 +09:00

34 lines
1.2 KiB
Python
Executable File

#!/usr/bin/python3
import sys
def get_variable(arg):
v = arg - 2**32 # convert to s32
if v > -250000000:
if v <= -220000000: return f"EVT_FLOAT({(v + 230000000) / 1024})"
elif v <= -200000000: return f"ArrayFlag({v + 210000000})"
elif v <= -180000000: return f"ArrayVar({v + 190000000})"
elif v <= -160000000: return f"GameByte({v + 170000000})"
elif v <= -140000000: return f"AreaByte({v + 150000000})"
elif v <= -120000000: return f"GameFlag({v + 130000000})"
elif v <= -100000000: return f"AreaFlag({v + 110000000})"
elif v <= -80000000: return f"MapFlag({v + 90000000})"
elif v <= -60000000: return f"LocalFlag({v + 70000000})"
elif v <= -40000000: return f"MapVar({v + 50000000})"
elif v <= -20000000: return f"LocalVar({v + 30000000})"
if arg == 0xFFFFFFFF:
return "-1"
elif (arg & 0xFF000000) == 0x80000000:
return f"0x{arg:X}"
elif arg >= 0x80000000:
return f"{arg - 0x100000000}"
else:
return f"{arg}"
if __name__ == "__main__":
try:
print(get_variable(int(sys.argv[1], 0)))
except:
print("Invalid literal for numeric operation. Please input a hex/dec number.")