deinit_entity now gets a stub if unused in game
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user