]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level.c
Remove Lt from PointLayer
[nothing.git] / src / game / level.c
index 860638393202881e4c1fab1d0793017f35e11304..e61d4e31815f6adf5fb6bd036d3f7cf2adc8ad3d 100644 (file)
 #include "game/level/player.h"
 #include "game/level/regions.h"
 #include "game/level/rigid_bodies.h"
-#include "game/level_metadata.h"
 #include "game/level/level_editor/rect_layer.h"
 #include "game/level/level_editor/point_layer.h"
 #include "game/level/level_editor/player_layer.h"
 #include "game/level/level_editor/label_layer.h"
 #include "game/level/level_editor/background_layer.h"
-#include "system/line_stream.h"
 #include "system/log.h"
 #include "system/lt.h"
 #include "system/nth_alloc.h"
@@ -40,7 +38,6 @@ struct Level
     Lt *lt;
 
     LevelState state;
-    LevelMetadata *metadata;
     Background background;
     RigidBodies *rigid_bodies;
     Player *player;
@@ -51,8 +48,6 @@ struct Level
     Boxes *boxes;
     Labels *labels;
     Regions *regions;
-    Console *console;
-    int console_enabled;
 };
 
 Level *create_level_from_level_editor(const LevelEditor *level_editor)
@@ -91,7 +86,7 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
 
     level->platforms = PUSH_LT(
         lt,
-        create_platforms_from_rect_layer(level_editor->platforms_layer),
+        create_platforms_from_rect_layer(&level_editor->platforms_layer),
         destroy_platforms);
     if (level->platforms == NULL) {
         RETURN_LT(lt, NULL);
@@ -99,7 +94,7 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
 
     level->goals = PUSH_LT(
         lt,
-        create_goals_from_point_layer(level_editor->goals_layer),
+        create_goals_from_point_layer(&level_editor->goals_layer),
         destroy_goals);
     if (level->goals == NULL) {
         RETURN_LT(lt, NULL);
@@ -107,7 +102,7 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
 
     level->lava = PUSH_LT(
         lt,
-        create_lava_from_rect_layer(level_editor->lava_layer),
+        create_lava_from_rect_layer(&level_editor->lava_layer),
         destroy_lava);
     if (level->lava == NULL) {
         RETURN_LT(lt, NULL);
@@ -115,7 +110,7 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
 
     level->back_platforms = PUSH_LT(
         lt,
-        create_platforms_from_rect_layer(level_editor->back_platforms_layer),
+        create_platforms_from_rect_layer(&level_editor->back_platforms_layer),
         destroy_platforms);
     if (level->back_platforms == NULL) {
         RETURN_LT(lt, NULL);
@@ -123,7 +118,7 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
 
     level->boxes = PUSH_LT(
         lt,
-        create_boxes_from_rect_layer(level_editor->boxes_layer, level->rigid_bodies),
+        create_boxes_from_rect_layer(&level_editor->boxes_layer, level->rigid_bodies),
         destroy_boxes);
     if (level->boxes == NULL) {
         RETURN_LT(lt, NULL);
@@ -140,7 +135,7 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
     level->regions = PUSH_LT(
         lt,
         create_regions_from_rect_layer(
-            level_editor->regions_layer,
+            &level_editor->regions_layer,
             level->labels,
             level->goals),
         destroy_regions);
@@ -148,14 +143,6 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
         RETURN_LT(lt, NULL);
     }
 
-    level->console = PUSH_LT(
-        lt,
-        create_console(),
-        destroy_console);
-    if (level->console == NULL) {
-        RETURN_LT(lt, NULL);
-    }
-
     return level;
 }
 
@@ -205,12 +192,6 @@ int level_render(const Level *level, const Camera *camera)
         return -1;
     }
 
-    if (level->console_enabled) {
-        if (console_render(level->console, camera) < 0) {
-            return -1;
-        }
-    }
-
     return 0;
 }
 
@@ -219,12 +200,6 @@ int level_update(Level *level, float delta_time)
     trace_assert(level);
     trace_assert(delta_time > 0);
 
-    if (level->console_enabled) {
-        if (console_update(level->console, delta_time) < 0) {
-            return -1;
-        }
-    }
-
     if (level->state == LEVEL_STATE_PAUSE) {
         return 0;
     }
@@ -306,56 +281,12 @@ int level_event_pause(Level *level, const SDL_Event *event,
     return 0;
 }
 
-static
-int level_event_console(Level *level, const SDL_Event *event)
-{
-    trace_assert(level);
-    trace_assert(event);
-
-    if (level->console_enabled) {
-        switch (event->type) {
-        case SDL_KEYDOWN:
-            switch (event->key.keysym.sym) {
-            case SDLK_ESCAPE:
-                SDL_StopTextInput();
-                level->console_enabled = 0;
-                return 0;
-
-            default: {}
-            }
-
-        default: {}
-        }
-    } else {
-        switch (event->type) {
-        case SDL_KEYUP: {
-            switch (event->key.keysym.sym) {
-            case SDLK_BACKQUOTE:
-            case SDLK_c: {
-                SDL_StartTextInput();
-                level->console_enabled = 1;
-                console_slide_down(level->console);
-            } break;
-            }
-        } break;
-        }
-    }
-
-    return console_handle_event(level->console, event);
-}
-
 int level_event(Level *level, const SDL_Event *event,
                 Camera *camera, Sound_samples *sound_samples)
 {
     trace_assert(level);
     trace_assert(event);
 
-    level_event_console(level, event);
-
-    if (level->console_enabled) {
-        return 0;
-    }
-
     switch (level->state) {
     case LEVEL_STATE_IDLE: {
         return level_event_idle(level, event, camera, sound_samples);
@@ -376,10 +307,6 @@ int level_input(Level *level,
     trace_assert(level);
     trace_assert(keyboard_state);
 
-    if (level->console_enabled) {
-        return 0;
-    }
-
     if (level->state == LEVEL_STATE_PAUSE) {
         return 0;
     }
@@ -430,3 +357,14 @@ int level_enter_camera_event(Level *level, Camera *camera)
     labels_enter_camera_event(level->labels, camera);
     return 0;
 }
+
+void level_disable_pause_mode(Level *level, Camera *camera,
+                              Sound_samples *sound_samples)
+{
+    trace_assert(level);
+    trace_assert(camera);
+    trace_assert(sound_samples);
+    level->state = LEVEL_STATE_IDLE;
+    camera->blackwhite_mode = false;
+    sound_samples_toggle_pause(sound_samples);
+}