Add size detection
This commit is contained in:
@@ -98,10 +98,49 @@ indent_level += indent_offset
|
|||||||
|
|
||||||
# trie would be much better
|
# trie would be much better
|
||||||
for type in types:
|
for type in types:
|
||||||
print(f"{indent()}if (strncmp(\"{type}\", str, {len(type)})) return {enum_string(type)};")
|
print(f"{indent()}if (strncmp(\"{type}\", str, {len(type)}) == 0) return {enum_string(type)};")
|
||||||
print(f"{indent()}else return {enum_string('none')};")
|
print(f"{indent()}else return {enum_string('none')};")
|
||||||
|
|
||||||
indent_level -= indent_offset
|
indent_level -= indent_offset
|
||||||
print(f"{indent()}}}")
|
print(f"{indent()}}}")
|
||||||
|
|
||||||
|
# ============================
|
||||||
|
|
||||||
|
print(f"{indent()}static void getBuildingSize({enum_name} type, BzTile *outWidth, BzTile *outHeight) {{")
|
||||||
|
indent_level += indent_offset
|
||||||
|
print(f"{indent()} switch (type) {{")
|
||||||
|
indent_level += indent_offset
|
||||||
|
for enum, ids in types.items():
|
||||||
|
print(f"{indent()}case {enum_string(enum)}:")
|
||||||
|
indent_level += indent_offset
|
||||||
|
w = 1
|
||||||
|
h = 1
|
||||||
|
for curr, next in zip(ids, ids[1:]):
|
||||||
|
if next > curr + 1:
|
||||||
|
h += 1
|
||||||
|
elif h == 1:
|
||||||
|
w += 1
|
||||||
|
print(f"{indent()}if (outWidth) *outWidth = {w};")
|
||||||
|
print(f"{indent()}if (outHeight) *outHeight = {h};")
|
||||||
|
print(f"{indent()}break;")
|
||||||
|
indent_level -= indent_offset
|
||||||
|
|
||||||
|
print(f"{indent()}default:")
|
||||||
|
indent_level += indent_offset
|
||||||
|
print(f"{indent()}if (outWidth) *outWidth = 0;")
|
||||||
|
print(f"{indent()}if (outHeight) *outHeight = 0;")
|
||||||
|
print(f"{indent()}break;")
|
||||||
|
indent_level -= indent_offset
|
||||||
|
indent_level -= indent_offset
|
||||||
|
print(f"{indent()}}}")
|
||||||
|
|
||||||
|
|
||||||
|
indent_level -= indent_offset
|
||||||
|
indent_level -= indent_offset
|
||||||
|
|
||||||
|
indent_level -= indent_offset
|
||||||
|
print(f"{indent()}}}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
# ============================
|
# ============================
|
||||||
|
|||||||
Reference in New Issue
Block a user