23 lines
649 B
Python
23 lines
649 B
Python
from hydroparse import HydroEnum, HydroEnumEntry
|
|
import os
|
|
|
|
|
|
def generate_enums_h(dir, enums: list[HydroEnum]):
|
|
with open(os.path.join(dir, "hydrolink_enums.h"), "w") as f:
|
|
for enum in enums:
|
|
f.write(f"""#pragma once
|
|
typedef enum {enum.name} {{
|
|
{enum_entries(enum)}
|
|
}}{enum.name};
|
|
""")
|
|
|
|
|
|
def enum_entries(enum: HydroEnum):
|
|
array = []
|
|
entry: HydroEnumEntry
|
|
for entry in enum.entries:
|
|
array.append(
|
|
f"{enum.name}_{entry.name} = {entry.value}, /// {entry.description}"
|
|
)
|
|
array.append(f"{enum.name}_ENUM_END = {enum.highest_value + 1}")
|
|
return "\n".join(array)
|