]> git.lizzy.rs Git - nothing.git/commitdiff
(#1193) Use 'menu' console command instead of 'Esc' key
authorgooddoog <gooddoog@student.su>
Sun, 8 Dec 2019 16:45:10 +0000 (19:45 +0300)
committergooddoog <gooddoog@student.su>
Sun, 8 Dec 2019 16:45:10 +0000 (19:45 +0300)
src/game.c
src/game.h
src/ui/console.c

index 20ac6a0923940e70b29256d2588809dad0b55a21..9c45c05d5c4d28cbd18da051b3d9cacfa5645445 100644 (file)
 #include "game/settings.h"
 #include "game/credits.h"
 
-typedef enum Game_state {
-    GAME_STATE_LEVEL = 0,
-    GAME_STATE_LEVEL_PICKER,
-    GAME_STATE_LEVEL_EDITOR,
-    GAME_STATE_CREDITS,
-    GAME_STATE_SETTINGS,
-    GAME_STATE_QUIT
-} Game_state;
 
 typedef struct Game {
     Lt *lt;
@@ -46,7 +38,6 @@ typedef struct Game {
     int console_enabled;
 } Game;
 
-static
 void game_switch_state(Game *game, Game_state state)
 {
     game->camera = create_camera(game->renderer, game->font);
@@ -368,7 +359,6 @@ static int game_event_level_picker(Game *game, const SDL_Event *event)
                 return -1;
             }
 
-            level_picker_clean_selection(game->level_picker);
             game_switch_state(game, GAME_STATE_LEVEL);
         } break;
 
@@ -462,15 +452,6 @@ int game_event(Game *game, const SDL_Event *event)
             } break;
             }
         } break;
-        case SDL_KEYDOWN: {
-            switch (event->key.keysym.sym) {
-            case SDLK_ESCAPE: {
-                if (game->state == GAME_STATE_LEVEL) {
-                    game_switch_state(game, GAME_STATE_LEVEL_PICKER);
-                }
-            } break;
-            }
-        } break;
         }
     }
 
@@ -594,7 +575,6 @@ int game_load_level(Game *game, const char *level_filename)
         return -1;
     }
 
-    level_picker_clean_selection(game->level_picker);
     game_switch_state(game, GAME_STATE_LEVEL);
 
     return 0;
index 49359823d357d7da88c9db39e4742da11eff92b9..0770dd81162b9d4568324f4e1c04af7400855d3d 100644 (file)
@@ -24,6 +24,16 @@ int game_input(Game *game,
 
 int game_over_check(const Game *game);
 
+typedef enum Game_state {
+    GAME_STATE_LEVEL = 0,
+    GAME_STATE_LEVEL_PICKER,
+    GAME_STATE_LEVEL_EDITOR,
+    GAME_STATE_CREDITS,
+    GAME_STATE_SETTINGS,
+    GAME_STATE_QUIT
+} Game_state;
+
+void game_switch_state(Game *game, Game_state state);
 int game_load_level(Game *game, const char *filepath);
 
 // defined in main.c. is there a better place for this to be declared?
index 7040e313d6eeb03eecc53882ad5cb618ea3c945f..e38027226dd149eb072ab691ca5435d246673ed4 100644 (file)
@@ -170,6 +170,10 @@ static int console_eval_input(Console *console)
         if (game_load_level(console->game, level_name) < 0) {
             console_log_push_line(console->console_log, "Could not load level", NULL, CONSOLE_ERROR);
         }
+    } else if (token_equals_str(command, "menu")) {
+        console_log_push_line(console->console_log, "Loading menu", NULL, CONSOLE_FOREGROUND);
+        level_picker_clean_selection(console->game->level_picker);
+        game_switch_state(console->game, GAME_STATE_LEVEL_PICKER);
     } else {
         console_log_push_line(console->console_log, "Unknown command", NULL, CONSOLE_ERROR);
     }