diff --git a/.gitignore b/.gitignore index b484c47..386b4d9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ .vscode *.DS_Store bin -data/config.txt -data/config.bin -data/score.bin \ No newline at end of file +data/config/config.txt +data/config/config.bin +data/config/score.bin \ No newline at end of file diff --git a/data/config/score.bin b/data/config/score.bin index faf01e4..47c2e0d 100644 Binary files a/data/config/score.bin and b/data/config/score.bin differ diff --git a/source/instructions.cpp b/source/instructions.cpp index 8317e26..55bef7e 100644 --- a/source/instructions.cpp +++ b/source/instructions.cpp @@ -236,7 +236,7 @@ void Instructions::checkEventHandler() } // Bucle para la pantalla de instrucciones -void Instructions::run(mode_e mode) +section_t Instructions::run(mode_e mode) { this->mode = mode; @@ -245,4 +245,6 @@ void Instructions::run(mode_e mode) update(); render(); } + + return section; } diff --git a/source/instructions.h b/source/instructions.h index 0164c7d..b008745 100644 --- a/source/instructions.h +++ b/source/instructions.h @@ -59,7 +59,7 @@ public: ~Instructions(); // Bucle principal - void run(mode_e mode); + section_t run(mode_e mode); }; #endif diff --git a/source/title.cpp b/source/title.cpp index f613dc9..c8ae9cc 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -301,7 +301,10 @@ void Title::update() if (demo) { runDemoGame(); - runInstructions(m_auto); + if (section.name != PROG_SECTION_QUIT) + { + runInstructions(m_auto); + } } else section.name = PROG_SECTION_LOGO; @@ -483,7 +486,10 @@ void Title::update() if (demo) { runDemoGame(); - runInstructions(m_auto); + if (section.name != PROG_SECTION_QUIT) + { + runInstructions(m_auto); + } init(); demo = false; counter = TITLE_COUNTER; @@ -939,19 +945,23 @@ section_t Title::run() } // Ejecuta la parte donde se muestran las instrucciones -void Title::runInstructions(mode_e mode) +section_t Title::runInstructions(mode_e mode) { instructions = new Instructions(renderer, screen, asset, lang); - instructions->run(mode); + section = instructions->run(mode); delete instructions; + + return section; } // Ejecuta el juego en modo demo -void Title::runDemoGame() +section_t Title::runDemoGame() { demoGame = new Game(1, 0, renderer, screen, asset, lang, input, true, options); - demoGame->run(); + section = demoGame->run(); delete demoGame; + + return section; } // Modifica las opciones para los controles de los jugadores diff --git a/source/title.h b/source/title.h index 741a2e6..3a50a30 100644 --- a/source/title.h +++ b/source/title.h @@ -117,10 +117,10 @@ private: void applyOptions(); // Ejecuta la parte donde se muestran las instrucciones - void runInstructions(mode_e mode); + section_t runInstructions(mode_e mode); // Ejecuta el juego en modo demo - void runDemoGame(); + section_t runDemoGame(); // Modifica las opciones para los controles de los jugadores bool updatePlayerInputs(int numPlayer);