This commit is contained in:
MonsterDruide1 2024-09-27 17:55:52 +02:00
parent d46726f7dd
commit 87dd049a78
3 changed files with 64 additions and 0 deletions

19
tools/functions.txt Normal file
View File

@ -0,0 +1,19 @@
_ZN17PlayerAreaCheckerC2EPKN2al9LiveActorEPK17PlayerModelHolder .text 000000710042D268 00000008 R . . . . . T .
_ZNK17PlayerAreaChecker9isInWaterERKN4sead7Vector3IfEE .text 000000710042D270 00000008 R . . . . . T .
_ZNK17PlayerAreaChecker15isInWaterDoubleERKN4sead7Vector3IfEEf .text 000000710042D278 00000090 00000040 R . . . . B T .
_ZNK17PlayerAreaChecker18isInWaterWallCatchERKN4sead7Vector3IfEEf .text 000000710042D308 000000AC 00000060 R . . . . B T .
_ZNK17PlayerAreaChecker12isInWaterIceERKN4sead7Vector3IfEE .text 000000710042D3B4 00000008 R . . . . . T .
_ZNK17PlayerAreaChecker18isInWaterIceDoubleERKN4sead7Vector3IfEEf .text 000000710042D3BC 00000094 00000040 R . . . . B T .
_ZNK17PlayerAreaChecker7isInWetERKN4sead7Vector3IfEE .text 000000710042D450 00000024 R . . . . . T .
_ZNK17PlayerAreaChecker8isInRiseERKN4sead7Vector3IfEE .text 000000710042D474 00000024 R . . . . . T .
_ZNK17PlayerAreaChecker14isInHackCancelERKN4sead7Vector3IfEE .text 000000710042D498 00000024 R . . . . . T .
_ZNK17PlayerAreaChecker12isInRecoveryEPPKN2al7AreaObjERKN4sead7Vector3IfEE .text 000000710042D4BC 00000044 00000020 R . . . . B T .
_ZNK17PlayerAreaChecker15isInRecoveryBanERKN4sead7Vector3IfEE .text 000000710042D500 00000024 R . . . . . T .
_ZNK17PlayerAreaChecker16isInWallClimbBanERKN4sead7Vector3IfEE .text 000000710042D524 00000024 R . . . . . T .
_ZNK17PlayerAreaChecker17isInForceRecoveryEPN4sead7Vector3IfEES3_PPKN2al7AreaObjERKS2_ .text 000000710042D548 00000080 00000040 R . . . . B T .
_ZNK17PlayerAreaChecker16isInShadowLengthEPfRKN4sead7Vector3IfEE .text 000000710042D5C8 00000060 00000020 R . . . . B T .
_ZNK17PlayerAreaChecker12isInCarryBanERKN4sead7Vector3IfEE .text 000000710042D628 00000024 R . . . . . T .
_ZNK17PlayerAreaChecker16tryFindStainAreaERKN4sead7Vector3IfEE .text 000000710042D64C 00000024 R . . . . . T .
_ZNK17PlayerAreaChecker26tryFindInvalidateInputFallERKN4sead7Vector3IfEE .text 000000710042D670 00000024 R . . . . . T .
#VTABLE

42
tools/generate-header.py Executable file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python3
import os
import re
CURRENT_FOLDER = os.path.dirname(os.path.abspath(__file__))
with open(os.path.join(CURRENT_FOLDER, 'functions.txt')) as f:
file = f.read()
functions_block = file.split("#VTABLE")[0]
vtable_block = file.split("#VTABLE")[1]
functions = functions_block.split('\n')
functions = [x.split("\t")[0] for x in functions if x]
functions_demangled = []
for f in functions:
demangled = os.popen(f"c++filt {f}").read().strip()
demangled = re.sub(r"(^|([\(,]))\s*([^\s\(,]+) const([&*])", r"\g<1>const \g<3>\g<4>", demangled)
demangled = demangled.replace("<float>", "f")
demangled = re.sub(r"([^\w])float", r"\g<1>f32", demangled)
demangled = re.sub(r"([^\w])unsigned int", r"\g<1>u32", demangled)
demangled = re.sub(r"([^\w])int", r"\g<1>s32", demangled)
demangled = re.sub(r"([^\w])unsigned short", r"\g<1>u16", demangled)
demangled = re.sub(r"([^\w])short", r"\g<1>s16", demangled)
demangled = re.sub(r"([^\w])unsigned char", r"\g<1>u8", demangled)
demangled = re.sub(r"([^\w])unsigned long", r"\g<1>u64", demangled)
demangled = re.sub(r"([^\w])long", r"\g<1>s64", demangled)
demangled = demangled[demangled.find("::")+2:]
functions_demangled.append(demangled)
vtable_functions = [x.split(" ")[-1] for x in vtable_block.split('\n') if x]
for f in vtable_functions:
if f in functions:
index = functions.index(f)
functions_demangled[index] = functions_demangled[index] + " override"
functions_demangled = ["UNK_RET "+f+";" for f in functions_demangled]
print("\n".join(functions_demangled))

3
tools/notes-headergen.md Normal file
View File

@ -0,0 +1,3 @@
For replacing `T const&` and `T const*` with `const T&*`:
SEARCH `(^|([\(,]))\s*([^\s]+) const([&*])`
REPLACE `$1const $3$4`