diff --git a/sdlpp.hpp b/sdlpp.hpp index 79155ac..a17596d 100644 --- a/sdlpp.hpp +++ b/sdlpp.hpp @@ -1,4 +1,5 @@ // TODO mutex guard instead of lock/unlock +// TODO virtual destructors #ifndef SDLPP_HPP #define SDLPP_HPP diff --git a/tetris/functions.cpp b/tetris/functions.cpp index 4e20dc1..68db0a8 100644 --- a/tetris/functions.cpp +++ b/tetris/functions.cpp @@ -120,7 +120,6 @@ void resetGame() { g_main_scene->resetScene(); g_main_scene->setPrevTicks( SDL_GetTicks() ); - // TODO maybe move to main thread g_active_scenes = {g_main_scene}; g_input_functions = {mainSceneInput}; for(int i = 0; i < 7; i++) diff --git a/tetris/scenes.cpp b/tetris/scenes.cpp index 3883d4e..c5a9afc 100644 --- a/tetris/scenes.cpp +++ b/tetris/scenes.cpp @@ -5,6 +5,18 @@ #include +constexpr uint64_t MAIN_MENU_RESUME = 0; +constexpr uint64_t MAIN_MENU_OPTIONS = 1; +constexpr uint64_t MAIN_MENU_RESTART = 2; +constexpr uint64_t MAIN_MENU_QUIT = 3; + +constexpr uint64_t GAME_OVER_RESTART = 0; +constexpr uint64_t GAME_OVER_QUIT = 1; + +constexpr uint64_t OPTIONS_MENU_COLOR_SCHEME = 0; +constexpr uint64_t OPTIONS_MENU_SHADOW = 1; +constexpr uint64_t OPTIONS_MENU_SAVE = 2; + // Scene preparation void addMainSceneItems( SDLPP::Scene &scene, std::shared_ptr< SDLPP::Renderer > &r, std::shared_ptr font ) { @@ -455,22 +467,21 @@ void handleKeyDownMenu( SDL_Keycode key ) { g_menu_options[g_menu_select]->setColor( colors["menu_item_background"] ); break; case SDLK_RETURN: - // TODO maybe define macros for these switch ( g_menu_select ) { - case 0: { + case MAIN_MENU_RESUME: { g_main_scene->setPrevTicks( SDL_GetTicks() ); g_active_scenes.pop_back(); g_input_functions.pop_back(); } break; - case 1: + case MAIN_MENU_OPTIONS: g_options_scene->updateSizeAndPosition(); g_active_scenes.push_back(g_options_scene); g_input_functions.push_back(optionsSceneInput); break; - case 2: + case MAIN_MENU_RESTART: resetGame(); break; - case 3: + case MAIN_MENU_QUIT: quitGame(); default: break; @@ -531,12 +542,11 @@ void handleKeyDownGameOver( SDL_Keycode key ) { g_game_over_options[g_game_over_select]->setColor( colors["menu_item_background"] ); break; case SDLK_RETURN: - //TODO maybe define macros for these switch ( g_game_over_select ) { - case 0: + case GAME_OVER_RESTART: resetGame(); break; - case 1: + case GAME_OVER_QUIT: quitGame(); default: break; @@ -605,16 +615,15 @@ void handleKeyDownOptions( SDL_Keycode key ) { break; case SDLK_RIGHT: case SDLK_d: - //TODO define macros switch( g_options_select ) { - case 0: + case OPTIONS_MENU_COLOR_SCHEME: selected_color_scheme++; if(selected_color_scheme >= color_schemes_names.size()) selected_color_scheme = 0; std::dynamic_pointer_cast(g_options_options[0])->changeText("Color scheme: " + color_schemes_names[selected_color_scheme]); g_update_colors = true; break; - case 1: + case OPTIONS_MENU_SHADOW: g_show_shadow = !g_show_shadow; std::dynamic_pointer_cast(g_options_options[1])->changeText(std::string("Show shadow: ") + (g_show_shadow ? "YES" : "NO")); g_update_colors = true; @@ -624,16 +633,15 @@ void handleKeyDownOptions( SDL_Keycode key ) { break; case SDLK_LEFT: case SDLK_a: - //TODO define macros switch( g_options_select ) { - case 0: + case OPTIONS_MENU_COLOR_SCHEME: if(selected_color_scheme == 0) selected_color_scheme = color_schemes_names.size(); selected_color_scheme--; std::dynamic_pointer_cast(g_options_options[0])->changeText("Color scheme: " + color_schemes_names[selected_color_scheme]); g_update_colors = true; break; - case 1: + case OPTIONS_MENU_SHADOW: g_show_shadow = !g_show_shadow; std::dynamic_pointer_cast(g_options_options[1])->changeText(std::string("Show shadow: ") + (g_show_shadow ? "YES" : "NO")); g_update_colors = true; @@ -642,9 +650,8 @@ void handleKeyDownOptions( SDL_Keycode key ) { } break; case SDLK_RETURN: - //TODO define macros switch ( g_options_select ) { - case 2: + case OPTIONS_MENU_SAVE: saveOptions(); g_active_scenes.pop_back(); g_input_functions.pop_back();