]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level.c
Merge pull request #1121 from tsoding/411
[nothing.git] / src / game / level.c
index e922674dcfe16ab48d2fccf9557e2a06c539675f..47da3c9f2f0e26da1b1c18595f6a540204599ccd 100644 (file)
@@ -41,7 +41,7 @@ struct Level
 
     LevelState state;
     LevelMetadata *metadata;
-    Background *background;
+    Background background;
     RigidBodies *rigid_bodies;
     Player *player;
     Platforms *platforms;
@@ -51,8 +51,6 @@ struct Level
     Boxes *boxes;
     Labels *labels;
     Regions *regions;
-    Console *console;
-    int console_enabled;
 };
 
 Level *create_level_from_level_editor(const LevelEditor *level_editor)
@@ -70,15 +68,9 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
     }
     level->lt = lt;
 
-    level->background = PUSH_LT(
-        lt,
-        create_background(
-            color_picker_rgba(
-                &level_editor->background_layer.color_picker)),
-        destroy_background);
-    if (level->background == NULL) {
-        RETURN_LT(lt, NULL);
-    }
+    level->background = create_background(
+        color_picker_rgba(
+            &level_editor->background_layer.color_picker));
 
     level->rigid_bodies = PUSH_LT(lt, create_rigid_bodies(1024), destroy_rigid_bodies);
     if (level->rigid_bodies == NULL) {
@@ -145,20 +137,15 @@ Level *create_level_from_level_editor(const LevelEditor *level_editor)
 
     level->regions = PUSH_LT(
         lt,
-        create_regions_from_rect_layer(level_editor->regions_layer),
+        create_regions_from_rect_layer(
+            level_editor->regions_layer,
+            level->labels,
+            level->goals),
         destroy_regions);
     if (level->regions == NULL) {
         RETURN_LT(lt, NULL);
     }
 
-    level->console = PUSH_LT(
-        lt,
-        create_console(),
-        destroy_console);
-    if (level->console == NULL) {
-        RETURN_LT(lt, NULL);
-    }
-
     return level;
 }
 
@@ -172,7 +159,7 @@ int level_render(const Level *level, const Camera *camera)
 {
     trace_assert(level);
 
-    if (background_render(level->background, camera) < 0) {
+    if (background_render(&level->background, camera) < 0) {
         return -1;
     }
 
@@ -208,12 +195,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;
 }
 
@@ -222,12 +203,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;
     }
@@ -240,7 +215,6 @@ int level_update(Level *level, float delta_time)
 
     rigid_bodies_collide(level->rigid_bodies, level->platforms);
 
-    player_hide_goals(level->player, level->goals);
     player_die_from_lava(level->player, level->lava);
     regions_player_enter(level->regions, level->player);
     regions_player_leave(level->regions, level->player);
@@ -275,7 +249,6 @@ int level_event_idle(Level *level, const SDL_Event *event,
 
         case SDLK_l: {
             camera_toggle_debug_mode(camera);
-            background_toggle_debug_mode(level->background);
         } break;
         }
         break;
@@ -311,56 +284,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);
@@ -381,10 +310,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;
     }