This commit is contained in:
Synthasmagoria 2026-05-28 11:01:19 +02:00
commit 21c96f8abd

View file

@ -1,7 +1,6 @@
package main
import "core:fmt"
import "core:io"
import "core:mem"
import "core:os"
import "core:strings"
@ -159,36 +158,36 @@ gml_extract_enums :: proc(gml, filename: string, enums_out: ^[dynamic]GmlEnum) {
}
}
gml_write_enums :: proc(gml: &strings.Builder, enums: [dynamic]GmlEnum) {
fmt.sbprint(&gml, "/*\n" + TAB + "This file was generated using enum_reflection tool\n*/\n", sep = "")
fmt.sbprint(&gml, "enum " + ENUM_ENUM + " {\n", sep = "")
gml_write_enums :: proc(gml: ^strings.Builder, enums: [dynamic]GmlEnum) {
fmt.sbprint(gml, "/*\n" + TAB + "This file was generated using enum_reflection tool\n*/\n", sep = "")
fmt.sbprint(gml, "enum " + ENUM_ENUM + " {\n", sep = "")
for e in enums {
fmt.sbprint(&gml, TAB, e.name, ",\n", sep = "")
fmt.sbprint(gml, TAB, e.name, ",\n", sep = "")
}
fmt.sbprint(&gml, TAB + "_Count\n}\n\n", sep = "")
fmt.sbprint(&gml, ENUM_NAMES_GLOBAL, " = [\n", sep = "")
fmt.sbprint(gml, TAB + "_Count\n}\n\n", sep = "")
fmt.sbprint(gml, ENUM_NAMES_GLOBAL, " = [\n", sep = "")
for e in enums {
fmt.sbprint(&gml, TAB, "\"", e.name, "\",\n", sep = "")
fmt.sbprint(gml, TAB, "\"", e.name, "\",\n", sep = "")
}
fmt.sbprint(&gml, "];\n\n", sep = "")
fmt.sbprint(gml, "];\n\n", sep = "")
fmt.sbprint(&gml, ENUM_MEMBER_NAMES_GLOBAL, " = [\n", sep = "")
fmt.sbprint(gml, ENUM_MEMBER_NAMES_GLOBAL, " = [\n", sep = "")
for e in enums {
fmt.sbprint(&gml, TAB, "[", sep = "")
fmt.sbprint(gml, TAB, "[", sep = "")
for entry in e.members {
fmt.sbprint(&gml, "\"", entry, "\", ", sep = "")
fmt.sbprint(gml, "\"", entry, "\", ", sep = "")
}
fmt.sbprint(&gml, "],\n", sep = "")
fmt.sbprint(gml, "],\n", sep = "")
}
fmt.sbprint(&gml, "];\n\n", sep = "")
fmt.sbprint(gml, "];\n\n", sep = "")
fmt.sbprint(&gml, "function ", ENUM_GET_NAME_FUNCTION, "(index) {return ", ENUM_NAMES_GLOBAL, "[index];}\n", sep = "")
fmt.sbprint(gml, "function ", ENUM_GET_NAME_FUNCTION, "(index) {return ", ENUM_NAMES_GLOBAL, "[index];}\n", sep = "")
fmt.sbprint(&gml, "function ", ENUM_GET_MEMBER_NAME_FUNCTION, "(index, member) {return ", ENUM_MEMBER_NAMES_GLOBAL, "[index][member];}\n", sep = "")
fmt.sbprint(gml, "function ", ENUM_GET_MEMBER_NAME_FUNCTION, "(index, member) {return ", ENUM_MEMBER_NAMES_GLOBAL, "[index][member];}\n", sep = "")
fmt.sbprint(&gml, "function ", ENUM_GET_MEMBER_NAMES_FUNCTION, "(index) {return ", ENUM_MEMBER_NAMES_GLOBAL, "[index];}", sep = "")
fmt.sbprint(gml, "function ", ENUM_GET_MEMBER_NAMES_FUNCTION, "(index) {return ", ENUM_MEMBER_NAMES_GLOBAL, "[index];}", sep = "")
fmt.sbprint(&gml, "function ", ENUM_GET_MEMBER_NAME_FULL_FUNCTION, "(index, member) {\n", sep = "")
fmt.sbprint(&gml, TAB, "return $\"{", ENUM_NAMES_GLOBAL, "[index]}.{" + ENUM_MEMBER_NAMES_GLOBAL, "[index][member]}\";\n", sep = "")
fmt.sbprint(&gml, "}\n\n", sep = "")
fmt.sbprint(gml, "function ", ENUM_GET_MEMBER_NAME_FULL_FUNCTION, "(index, member) {\n", sep = "")
fmt.sbprint(gml, TAB, "return $\"{", ENUM_NAMES_GLOBAL, "[index]}.{" + ENUM_MEMBER_NAMES_GLOBAL, "[index][member]}\";\n", sep = "")
fmt.sbprint(gml, "}\n\n", sep = "")
}