SuperMarioOdysseyOnline/scripts/createActorTable.py

48 lines
1.0 KiB
Python

# createActorTable.py
# Generates an .h file for defining an array of actors and their creation functions.
arr = []
names = []
classes = []
classes_al = []
with open("createActorFuncs.txt", "r") as f:
lines = f.readlines()
for line in lines:
sym = line.split("=")
blah = sym[1].split("<")
names.append(blah[1].strip("al::"))
if "al::" in blah[1]:
classes_al.append(blah[1].strip("al::"))
else:
classes.append(blah[1])
# this line is awful
arr.append("\t\t{ (char*)" + "\"" + blah[1].strip("al::\n") + "\"," + " (void*)al::createActorFunction<" + blah[1].strip("\n") + "> },\n")
with open("funcs.h", "w") as w:
w.write("namespace al\n")
w.write("{\n")
for c in classes_al:
c = c.strip("\n")
w.write(f"\tclass {c};\n")
w.write("};\n\n")
for c in classes:
c = c.strip("\n")
w.write(f"class {c};\n")
w.write("\n")
w.write("ActorEntry entries[NUM_ACTORS] = {\n")
for e in arr:
w.write(e)
w.write("};")