Files
tp/tools/libjaudio/create_id_enums.py
jdflyer ab7d0b88c3 Tools: add libbti and assets_config (#2182)
* Start d_menu_fmap2d

* checkpoint

* checkpoint

* Add libbti and bti packaging, start libjaudio

* Add asset config, move libast, formatting
2024-07-18 09:04:43 -06:00

34 lines
1.2 KiB
Python

from baa import JAUAudioArcInterpreter
from sys import argv
import re
def main():
if len(argv) != 3:
print(f"{argv[0]} Usage: python3 {argv[0]} input.baa output.h")
baa = JAUAudioArcInterpreter(open(argv[1],"rb").read())
if not baa.parse():
return print("BAA Failed to parse!")
outfile = open(argv[2],"w")
header_guard_name = argv[2].upper()
header_guard_name = re.sub(r'[^A-Z0-9]', '_', header_guard_name)
outfile.write(f"#ifndef {header_guard_name}\n#define {header_guard_name}\n\n")
for sectionNum,section in enumerate(baa.nameTable["Sections"]):
for groupNum,group in enumerate(section["Groups"]):
groupname = group["Group Name"]
outfile.write(f"enum {groupname} {{\n")
for nameId,name in enumerate(group["Names"]):
if name == '':
continue
comma = ',' if nameId != len(group["Names"])-1 else ''
outfile.write(f" {name} = 0x{sectionNum:02x}{groupNum:02x}{nameId:04x}{comma}\n")
outfile.write("};\n\n")
outfile.write(f"#endif /* {header_guard_name} */\n")
if __name__ == "__main__":
main()