deinit_entity now gets a stub if unused in game

This commit is contained in:
2025-06-22 20:53:09 +02:00
parent 42bad853e7
commit 02b7d1550f

View File

@@ -527,9 +527,11 @@ message_loop :: () {
for typechecked.procedure_headers {
if it.expression.name == "deinit_entity" {
//struct_type := cast(*Type_Info_Struct)it.expression.arguments[0].type_inst.pointer_to;
struct_type := cast(*Type_Info_Struct)it.expression.arguments[0].type_inst.pointer_to.result;
array_add(*deinit_entity_procs, struct_type.name);
if it.expression.arguments.count > 0 {
//struct_type := cast(*Type_Info_Struct)it.expression.arguments[0].type_inst.pointer_to;
struct_type := cast(*Type_Info_Struct)it.expression.arguments[0].type_inst.pointer_to.result;
array_add(*deinit_entity_procs, struct_type.name);
}
} else {
for note: it.expression.notes {
if to_lower_copy(note.text,, temp) == {
@@ -685,14 +687,19 @@ generate_code :: (w: Workspace) {
}
{
builder: String_Builder;
if deinit_entity_procs.count > 0 {
builder: String_Builder;
for deinit_entity_procs {
print_to_builder(*builder, "\tcase %1; deinit_entity(cast(*%1)e);\n", it);
for deinit_entity_procs {
print_to_builder(*builder, "\tcase %1; deinit_entity(cast(*%1)e);\n", it);
}
build_string := sprint(DEINIT_ENTITY, builder_to_string(*builder));
add_build_string(build_string, w);
} else {
add_build_string("call_correct_deinit_entity :: (e: *Entity) {}", w);
add_build_string("deinit_entity :: () {}", w);
}
build_string := sprint(DEINIT_ENTITY, builder_to_string(*builder));
add_build_string(build_string, w);
}
{