]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/level_editor.c
Destroy level editor layers in destroy_level_editor
[nothing.git] / src / game / level / level_editor.c
index 5ee2379355b963ba8f9b7b2b0d56ca31495a3223..1c19018dbb4ac3839a70f7b86a1746abbb59b896 100644 (file)
@@ -57,15 +57,7 @@ LevelEditor *create_level_editor(Cursor *cursor)
     level_editor->lava_layer = create_rect_layer("lava", cursor);
     level_editor->back_platforms_layer = create_rect_layer("back_platform", cursor);
     level_editor->boxes_layer = create_rect_layer("box", cursor);
-
-    level_editor->label_layer = PUSH_LT(
-        lt,
-        create_label_layer("label"),
-        destroy_label_layer);
-    if (level_editor->label_layer == NULL) {
-        RETURN_LT(lt, NULL);
-    }
-
+    level_editor->label_layer = create_label_layer("label");
     level_editor->regions_layer = create_rect_layer("region", cursor),
 
     level_editor->layers[LAYER_PICKER_BOXES] = rect_layer_as_layer(&level_editor->boxes_layer);
@@ -76,7 +68,7 @@ LevelEditor *create_level_editor(Cursor *cursor)
     level_editor->layers[LAYER_PICKER_LAVA] = rect_layer_as_layer(&level_editor->lava_layer);
     level_editor->layers[LAYER_PICKER_REGIONS] = rect_layer_as_layer(&level_editor->regions_layer);
     level_editor->layers[LAYER_PICKER_BACKGROUND] = background_layer_as_layer(&level_editor->background_layer);
-    level_editor->layers[LAYER_PICKER_LABELS] = label_layer_as_layer(level_editor->label_layer);
+    level_editor->layers[LAYER_PICKER_LABELS] = label_layer_as_layer(&level_editor->label_layer);
 
     level_editor->notice = (FadingWigglyText) {
         .wiggly_text = {
@@ -157,7 +149,7 @@ LevelEditor *create_level_editor_from_file(const char *file_name, Cursor *cursor
     level_editor->layers[LAYER_PICKER_LAVA] = rect_layer_as_layer(&level_editor->lava_layer);
     level_editor->layers[LAYER_PICKER_REGIONS] = rect_layer_as_layer(&level_editor->regions_layer);
     level_editor->layers[LAYER_PICKER_BACKGROUND] = background_layer_as_layer(&level_editor->background_layer);
-    level_editor->layers[LAYER_PICKER_LABELS] = label_layer_as_layer(level_editor->label_layer);
+    level_editor->layers[LAYER_PICKER_LABELS] = label_layer_as_layer(&level_editor->label_layer);
 
     level_editor->drag = false;
 
@@ -183,7 +175,13 @@ void destroy_level_editor(LevelEditor *level_editor)
 {
     trace_assert(level_editor);
     destroy_undo_history(level_editor->undo_history);
-    RETURN_LT0(level_editor->lt);
+    destroy_rect_layer(level_editor->boxes_layer);
+    destroy_rect_layer(level_editor->platforms_layer);
+    destroy_rect_layer(level_editor->back_platforms_layer);
+    destroy_point_layer(level_editor->goals_layer);
+    destroy_rect_layer(level_editor->lava_layer);
+    destroy_rect_layer(level_editor->regions_layer);
+    destroy_label_layer(level_editor->label_layer);
 }
 
 int level_editor_render(const LevelEditor *level_editor,