X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fgame%2Flevel.c;h=e61d4e31815f6adf5fb6bd036d3f7cf2adc8ad3d;hb=56e308932f300c06da3611a7687de6882da60d6f;hp=860638393202881e4c1fab1d0793017f35e11304;hpb=c6d0abddebe22684be7fd6989c410f56fea419fc;p=nothing.git diff --git a/src/game/level.c b/src/game/level.c index 86063839..e61d4e31 100644 --- a/src/game/level.c +++ b/src/game/level.c @@ -13,13 +13,11 @@ #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); +}