Tetris: Finish TODOs
This commit is contained in:
parent
883ad19a50
commit
eb60c88dac
@ -1,4 +1,5 @@
|
||||
// TODO mutex guard instead of lock/unlock
|
||||
// TODO virtual destructors
|
||||
#ifndef SDLPP_HPP
|
||||
#define SDLPP_HPP
|
||||
|
||||
|
@ -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++)
|
||||
|
@ -5,6 +5,18 @@
|
||||
|
||||
#include <thread>
|
||||
|
||||
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<SDLPP::Font> 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<SDLPP::TextRenderer>(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<SDLPP::TextRenderer>(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<SDLPP::TextRenderer>(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<SDLPP::TextRenderer>(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();
|
||||
|
Loading…
Reference in New Issue
Block a user