From 42e5caf695d750a422bc13d7ec6163d5ad145788 Mon Sep 17 00:00:00 2001 From: En Yi Date: Fri, 18 Aug 2023 23:10:48 +0800 Subject: [PATCH] Implement quit function in main menu Will need to revise this in the future --- main.c | 5 +++++ scenes/menu_scene.c | 25 ++++++++++++++----------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/main.c b/main.c index 5b7dd8c..63240bc 100644 --- a/main.c +++ b/main.c @@ -99,6 +99,11 @@ int main(void) { sc_queue_clear(&key_buffer); } + + if (curr_scene->state == SCENE_ENDED && engine.curr_scene == 0) + { + break; + } } free_sandbox_scene(&sandbox_scene); free_game_scene(&level_scene); diff --git a/scenes/menu_scene.c b/scenes/menu_scene.c index c15e6f1..dbe255b 100644 --- a/scenes/menu_scene.c +++ b/scenes/menu_scene.c @@ -18,17 +18,20 @@ static void menu_scene_render_func(Scene_t* scene) static void exec_component_function(Scene_t* scene, int sel) { - switch(sel) - { - case 0: - change_scene(scene->engine, 1); - break; - case 1: - change_scene(scene->engine, 2); - break; - default: - break; - } + switch(sel) + { + case 0: + change_scene(scene->engine, 1); + break; + case 1: + change_scene(scene->engine, 2); + break; + case 3: + scene->state = SCENE_ENDED; + break; + default: + break; + } } static void menu_do_action(Scene_t* scene, ActionType_t action, bool pressed)