diff --git a/source/credits.cpp b/source/credits.cpp index edd7430..f6a5c95 100644 --- a/source/credits.cpp +++ b/source/credits.cpp @@ -2,7 +2,7 @@ #include // Constructor -Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options) +Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section) { // Copia la dirección de los objetos this->resource = resource; @@ -10,6 +10,7 @@ Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Ass this->screen = screen; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros eventHandler = new SDL_Event(); @@ -20,8 +21,8 @@ Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Ass counter = 0; counterEnabled = true; subCounter = 0; - section.name = SECTION_PROG_CREDITS; - section.subsection = 0; + section->name = SECTION_PROG_CREDITS; + section->subsection = 0; ticks = 0; ticksSpeed = 15; sprite->setRect({194, 174, 8, 8}); @@ -74,7 +75,7 @@ void Credits::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -84,7 +85,7 @@ void Credits::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_B: @@ -122,8 +123,8 @@ void Credits::checkEventHandler() break; default: - section.name = SECTION_PROG_TITLE; - section.subsection = 0; + section->name = SECTION_PROG_TITLE; + section->subsection = 0; break; } } @@ -259,7 +260,7 @@ void Credits::updateCounter() // Comprueba si ha terminado la sección if (counter > 1200) { - section.name = SECTION_PROG_DEMO; + section->name = SECTION_PROG_DEMO; } } @@ -318,15 +319,13 @@ void Credits::render() } // Bucle para el logo del juego -section_t Credits::run() +void Credits::run() { - while (section.name == SECTION_PROG_CREDITS) + while (section->name == SECTION_PROG_CREDITS) { update(); render(); } - - return section; } // Cambia la paleta diff --git a/source/credits.h b/source/credits.h index 87c93a1..b06b790 100644 --- a/source/credits.h +++ b/source/credits.h @@ -36,12 +36,12 @@ private: SDL_Texture *coverTexture; // Textura para cubrir el texto AnimatedSprite *sprite; // Sprite para el brillo del corazón options_t *options; // Puntero a las opciones del juego + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables int counter; // Contador bool counterEnabled; // Indica si esta activo el contador int subCounter; // Contador secundario - section_t section; // Estado del bucle principal para saber si continua o se sale Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa std::vector texts; // Vector con los textos @@ -69,13 +69,13 @@ private: public: // Constructor - Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); + Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section); // Destructor ~Credits(); // Bucle principal - section_t run(); + void run(); }; #endif diff --git a/source/demo.cpp b/source/demo.cpp index 1dee590..e2b94c1 100644 --- a/source/demo.cpp +++ b/source/demo.cpp @@ -1,7 +1,7 @@ #include "demo.h" // Constructor -Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Debug *debug) +Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section, Debug *debug) { // Inicia algunas variables board.iniClock = SDL_GetTicks(); @@ -24,6 +24,7 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as this->screen = screen; this->debug = debug; this->options = options; + this->section = section; // Crea los objetos itemTracker = new ItemTracker(); @@ -44,8 +45,8 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as board.music = true; setScoreBoardColor(); - section.name = SECTION_PROG_DEMO; - section.subsection = 0; + section->name = SECTION_PROG_DEMO; + section->subsection = 0; } Demo::~Demo() @@ -67,7 +68,7 @@ void Demo::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; screen->setBorderColor(stringToColor(options->palette, "black")); break; } @@ -78,7 +79,7 @@ void Demo::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_B: @@ -116,8 +117,8 @@ void Demo::checkEventHandler() break; default: - section.name = SECTION_PROG_TITLE; - section.subsection = 0; + section->name = SECTION_PROG_TITLE; + section->subsection = 0; break; } } @@ -125,15 +126,13 @@ void Demo::checkEventHandler() } // Bucle para el juego -section_t Demo::run() +void Demo::run() { - while (section.name == SECTION_PROG_DEMO) + while (section->name == SECTION_PROG_DEMO) { update(); render(); } - - return section; } // Actualiza el juego, las variables, comprueba la entrada, etc. @@ -255,8 +254,8 @@ void Demo::checkRoomChange() roomIndex++; if (roomIndex == (int)rooms.size()) { - section.name = SECTION_PROG_LOGO; - section.subsection = SUBSECTION_LOGO_TO_TITLE; + section->name = SECTION_PROG_LOGO; + section->subsection = SUBSECTION_LOGO_TO_TITLE; } else { diff --git a/source/demo.h b/source/demo.h index ecbac51..b2a604c 100644 --- a/source/demo.h +++ b/source/demo.h @@ -34,11 +34,11 @@ private: ItemTracker *itemTracker; // Lleva el control de los objetos recogidos Debug *debug; // Objeto para gestionar la información de debug options_t *options; // Puntero a las opciones del juego + section_t *section; // Seccion actual dentro del juego // Variables Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa - section_t section; // Seccion actual dentro del juego std::string currentRoom; // Fichero de la habitación actual board_t board; // Estructura con los datos del marcador int counter; // Contador para el modo demo @@ -75,13 +75,13 @@ private: public: // Constructor - Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Debug *debug); + Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section, Debug *debug); // Destructor ~Demo(); // Bucle para el juego - section_t run(); + void run(); }; #endif diff --git a/source/director.cpp b/source/director.cpp index 4f2bff2..e0d7f8d 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -14,11 +14,12 @@ // Constructor Director::Director(int argc, char *argv[]) { - section.name = SECTION_PROG_LOGO; - section.subsection = SUBSECTION_LOGO_TO_INTRO; + section = new section_t(); + section->name = SECTION_PROG_LOGO; + section->subsection = SUBSECTION_LOGO_TO_INTRO; #ifdef DEBUG - section.name = SECTION_PROG_LOGO; + section->name = SECTION_PROG_LOGO; #endif // Crea e inicializa las opciones del programa @@ -65,6 +66,7 @@ Director::~Director() saveConfig(); // Libera la memoria + delete section; delete options; delete asset; delete input; @@ -463,14 +465,14 @@ void Director::createSystemFolder() } // Carga los recursos -void Director::loadResources(section_t section) +void Director::loadResources(section_t *section) { if (options->console) { std::cout << "** LOAD RESOURCES" << std::endl; } - if (section.name == SECTION_PROG_LOGO) + if (section->name == SECTION_PROG_LOGO) { std::vector textureList; textureList.push_back("jailgames.png"); @@ -479,7 +481,7 @@ void Director::loadResources(section_t section) resource->loadTextures(textureList); } - else if (section.name == SECTION_PROG_INTRO) + else if (section->name == SECTION_PROG_INTRO) { std::vector textureList; textureList.push_back("loading_screen_bn.png"); @@ -490,7 +492,7 @@ void Director::loadResources(section_t section) resource->loadTextures(textureList); } - else if (section.name == SECTION_PROG_TITLE) + else if (section->name == SECTION_PROG_TITLE) { std::vector textureList; textureList.push_back("loading_screen_color.png"); @@ -506,7 +508,7 @@ void Director::loadResources(section_t section) resource->loadOffsets(offsetsList); } - else if (section.name == SECTION_PROG_CREDITS) + else if (section->name == SECTION_PROG_CREDITS) { // Texturas std::vector textureList; @@ -528,7 +530,7 @@ void Director::loadResources(section_t section) resource->loadOffsets(offsetsList); } - else if (section.name == SECTION_PROG_ENDING) + else if (section->name == SECTION_PROG_ENDING) { // Texturas std::vector textureList; @@ -553,7 +555,7 @@ void Director::loadResources(section_t section) resource->loadOffsets(offsetsList); } - else if (section.name == SECTION_PROG_ENDING2) + else if (section->name == SECTION_PROG_ENDING2) { // Texturas std::vector textureList; @@ -691,7 +693,7 @@ void Director::loadResources(section_t section) resource->loadOffsets(offsetsList); } - else if (section.name == SECTION_PROG_GAME_OVER) + else if (section->name == SECTION_PROG_GAME_OVER) { // Texturas std::vector textureList; @@ -715,7 +717,7 @@ void Director::loadResources(section_t section) resource->loadOffsets(offsetsList); } - else if (section.name == SECTION_PROG_GAME || section.name == SECTION_PROG_DEMO) + else if (section->name == SECTION_PROG_GAME || section->name == SECTION_PROG_DEMO) { // Texturas std::vector textureList; @@ -1686,24 +1688,6 @@ bool Director::setFileList() return asset->check(); } -// Obtiene el valor de la variable -Uint8 Director::getSubsection() -{ - return section.subsection; -} - -// Obtiene el valor de la variable -Uint8 Director::getSection() -{ - return section.name; -} - -// Establece el valor de la variable -void Director::setSection(section_t section) -{ - this->section = section; -} - // Ejecuta la seccion de juego con el logo void Director::runLogo() { @@ -1712,8 +1696,8 @@ void Director::runLogo() std::cout << "\n* SECTION: LOGO" << std::endl; } loadResources(section); - logo = new Logo(renderer, screen, resource, asset, options, section.subsection); - setSection(logo->run()); + logo = new Logo(renderer, screen, resource, asset, options, section); + logo->run(); delete logo; resource->free(); } @@ -1726,8 +1710,8 @@ void Director::runIntro() std::cout << "\n* SECTION: INTRO" << std::endl; } loadResources(section); - intro = new Intro(renderer, screen, resource, asset, options); - setSection(intro->run()); + intro = new Intro(renderer, screen, resource, asset, options, section); + intro->run(); delete intro; resource->free(); } @@ -1744,8 +1728,8 @@ void Director::runTitle() JA_PlayMusic(music); } loadResources(section); - title = new Title(renderer, screen, resource, asset, options); - setSection(title->run()); + title = new Title(renderer, screen, resource, asset, options, section); + title->run(); delete title; resource->free(); } @@ -1758,8 +1742,8 @@ void Director::runCredits() std::cout << "\n* SECTION: CREDITS" << std::endl; } loadResources(section); - credits = new Credits(renderer, screen, resource, asset, options); - setSection(credits->run()); + credits = new Credits(renderer, screen, resource, asset, options, section); + credits->run(); delete credits; resource->free(); } @@ -1772,8 +1756,8 @@ void Director::runDemo() std::cout << "\n* SECTION: DEMO" << std::endl; } loadResources(section); - demo = new Demo(renderer, screen, resource, asset, options, debug); - setSection(demo->run()); + demo = new Demo(renderer, screen, resource, asset, options, section, debug); + demo->run(); delete demo; resource->free(); } @@ -1787,7 +1771,7 @@ void Director::runEnterID() } // loadResources(section); enterID = new EnterID(renderer, screen, asset, options, section); - setSection(enterID->run()); + enterID->run(); delete enterID; resource->free(); } @@ -1800,8 +1784,8 @@ void Director::runEnding() std::cout << "\n* SECTION: ENDING" << std::endl; } loadResources(section); - ending = new Ending(renderer, screen, resource, asset, options); - setSection(ending->run()); + ending = new Ending(renderer, screen, resource, asset, options, section); + ending->run(); delete ending; resource->free(); } @@ -1814,8 +1798,8 @@ void Director::runEnding2() std::cout << "\n* SECTION: ENDING2" << std::endl; } loadResources(section); - ending2 = new Ending2(renderer, screen, resource, asset, options); - setSection(ending2->run()); + ending2 = new Ending2(renderer, screen, resource, asset, options, section); + ending2->run(); delete ending2; resource->free(); } @@ -1828,8 +1812,8 @@ void Director::runGameOver() std::cout << "\n* SECTION: GAME OVER" << std::endl; } loadResources(section); - gameOver = new GameOver(renderer, screen, resource, asset, options); - setSection(gameOver->run()); + gameOver = new GameOver(renderer, screen, resource, asset, options, section); + gameOver->run(); delete gameOver; resource->free(); } @@ -1843,8 +1827,8 @@ void Director::runGame() } JA_StopMusic(); loadResources(section); - game = new Game(renderer, screen, resource, asset, options, input, debug); - setSection(game->run()); + game = new Game(renderer, screen, resource, asset, options, input, section, debug); + game->run(); delete game; resource->free(); } @@ -1852,9 +1836,9 @@ void Director::runGame() void Director::run() { // Bucle principal - while (getSection() != SECTION_PROG_QUIT) + while (section->name != SECTION_PROG_QUIT) { - switch (getSection()) + switch (section->name) { case SECTION_PROG_LOGO: runLogo(); diff --git a/source/director.h b/source/director.h index c600399..d7fc8c5 100644 --- a/source/director.h +++ b/source/director.h @@ -46,10 +46,10 @@ private: GameOver *gameOver; // Objeto para gestionar el final de la partida Debug *debug; // Objeto para getsionar la información de debug struct options_t *options; // Variable con todas las opciones del programa + section_t *section; // Sección y subsección actual del programa; // Variables - section_t section; // Sección y subsección actual del programa; - JA_Music_t* music; // Musica del titulo + JA_Music_t *music; // Musica del titulo std::string executablePath; // Path del ejecutable std::string systemFolder; // Carpeta del sistema donde guardar datos @@ -72,7 +72,7 @@ private: void createSystemFolder(); // Carga los recursos - void loadResources(section_t section); + void loadResources(section_t *section); // Asigna variables a partir de dos cadenas bool setOptions(options_t *options, std::string var, std::string value); @@ -89,15 +89,6 @@ private: // Crea el indice de ficheros bool setFileList(); - // Obtiene el valor de la variable - Uint8 getSubsection(); - - // Obtiene el valor de la variable - Uint8 getSection(); - - // Establece el valor de la variable - void setSection(section_t section); - // Ejecuta la seccion de juego con el logo void runLogo(); diff --git a/source/ending.cpp b/source/ending.cpp index 656ba35..e29da98 100644 --- a/source/ending.cpp +++ b/source/ending.cpp @@ -1,7 +1,7 @@ #include "ending.h" // Constructor -Ending::Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options) +Ending::Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section) { // Copia los punteros this->renderer = renderer; @@ -9,6 +9,7 @@ Ending::Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset this->resource = resource; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros a objetos eventHandler = new SDL_Event(); @@ -19,8 +20,8 @@ Ending::Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset counter = -1; preCounter = 0; coverCounter = 0; - section.name = SECTION_PROG_ENDING; - section.subsection = 0; + section->name = SECTION_PROG_ENDING; + section->subsection = 0; ticks = 0; ticksSpeed = 15; scene = 0; @@ -150,7 +151,7 @@ void Ending::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -160,7 +161,7 @@ void Ending::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_B: @@ -482,11 +483,11 @@ void Ending::iniScenes() } // Bucle principal -section_t Ending::run() +void Ending::run() { JA_PlayMusic(music); - while (section.name == SECTION_PROG_ENDING) + while (section->name == SECTION_PROG_ENDING) { update(); render(); @@ -494,8 +495,6 @@ section_t Ending::run() JA_StopMusic(); JA_SetVolume(128); - - return section; } // Actualiza los contadores @@ -571,7 +570,7 @@ void Ending::checkChangeScene() if (scene == 5) { // Termina el bucle - section.name = SECTION_PROG_ENDING2; + section->name = SECTION_PROG_ENDING2; // Mantiene los valores anteriores scene = 4; diff --git a/source/ending.h b/source/ending.h index 2ce95b7..8efa945 100644 --- a/source/ending.h +++ b/source/ending.h @@ -58,19 +58,19 @@ private: SDL_Event *eventHandler; // Manejador de eventos Text *text; // Objeto para escribir texto en pantalla SDL_Texture *coverTexture; // Textura para cubrir el texto + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables int counter; // Contador int preCounter; // Contador previo int coverCounter; // Contador para la cortinilla - section_t section; // Estado del bucle principal para saber si continua o se sale Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa std::vector spriteTexts; // Vector con los sprites de texto con su cortinilla std::vector spritePics; // Vector con los sprites de texto con su cortinilla int scene; // Escena actual std::vector scenes; // Vector con los textos e imagenes de cada escena - JA_Music_t* music; // Musica que suena durante el final + JA_Music_t *music; // Musica que suena durante el final // Actualiza el objeto void update(); @@ -113,13 +113,13 @@ private: public: // Constructor - Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); + Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section); // Destructor ~Ending(); // Bucle principal - section_t run(); + void run(); }; #endif diff --git a/source/ending2.cpp b/source/ending2.cpp index d3e6488..d179701 100644 --- a/source/ending2.cpp +++ b/source/ending2.cpp @@ -2,7 +2,7 @@ #include // Constructor -Ending2::Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options) +Ending2::Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section) { // Copia los punteros this->renderer = renderer; @@ -10,6 +10,7 @@ Ending2::Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Ass this->resource = resource; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros a objetos eventHandler = new SDL_Event(); @@ -21,8 +22,8 @@ Ending2::Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Ass preCounter = 0; postCounter = 0; postCounterEnabled = false; - section.name = SECTION_PROG_ENDING2; - section.subsection = 0; + section->name = SECTION_PROG_ENDING2; + section->subsection = 0; ticks = 0; ticksSpeed = 15; distSpriteText = 8; @@ -184,7 +185,7 @@ void Ending2::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -194,7 +195,7 @@ void Ending2::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_B: @@ -239,11 +240,11 @@ void Ending2::checkEventHandler() } // Bucle principal -section_t Ending2::run() +void Ending2::run() { JA_PlayMusic(music); - while (section.name == SECTION_PROG_ENDING2) + while (section->name == SECTION_PROG_ENDING2) { update(); render(); @@ -251,8 +252,6 @@ section_t Ending2::run() JA_StopMusic(); JA_SetVolume(128); - - return section; } // Actualiza los contadores @@ -275,8 +274,8 @@ void Ending2::updateCounters() if (postCounter > 600) { - section.name = SECTION_PROG_LOGO; - section.subsection = SUBSECTION_LOGO_TO_INTRO; + section->name = SECTION_PROG_LOGO; + section->subsection = SUBSECTION_LOGO_TO_INTRO; } } diff --git a/source/ending2.h b/source/ending2.h index e193e5b..c9b706c 100644 --- a/source/ending2.h +++ b/source/ending2.h @@ -30,16 +30,16 @@ private: std::vector sprites; // Vector con todos los sprites a dibujar std::vector spriteTexts; // Vector con los sprites de texto de los sprites std::vector texts; // Vector con los sprites de texto + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables bool counterEnabled; // Indica si está el contador habilitado int preCounter; // Contador previo int postCounter; // Contador posterior bool postCounterEnabled; // Indica si está habilitado el contador - section_t section; // Estado del bucle principal para saber si continua o se sale Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa - JA_Music_t* music; // Musica que suena durante el final + JA_Music_t *music; // Musica que suena durante el final std::vector spriteList; // Lista con todos los sprites a dibujar std::vector colors; // Vector con los colores para el fade int maxSpriteWidth; // El valor de ancho del sprite mas ancho @@ -115,13 +115,13 @@ private: public: // Constructor - Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); + Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section); // Destructor ~Ending2(); // Bucle principal - section_t run(); + void run(); }; #endif diff --git a/source/enter_id.cpp b/source/enter_id.cpp index 62607de..af7d72b 100644 --- a/source/enter_id.cpp +++ b/source/enter_id.cpp @@ -5,13 +5,14 @@ #include // Constructor -EnterID::EnterID(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, section_t section) +EnterID::EnterID(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, section_t *section) { // Copia la dirección de los objetos this->renderer = renderer; this->screen = screen; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros eventHandler = new SDL_Event(); @@ -36,11 +37,10 @@ EnterID::EnterID(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t pos = 0; name[pos] = 0; maxLenght = 15; - this->section.subsection = section.subsection; if (options->online.enabled && options->online.jailerID == "") { - this->section.name = SECTION_PROG_ENTER_ID; + this->section->name = SECTION_PROG_ENTER_ID; } else { @@ -60,18 +60,16 @@ EnterID::~EnterID() } // Bucle para el logo del juego -section_t EnterID::run() +void EnterID::run() { // Detiene la música JA_StopMusic(); - while (section.name == SECTION_PROG_ENTER_ID) + while (section->name == SECTION_PROG_ENTER_ID) { update(); render(); } - - return section; } // Comprueba el manejador de eventos @@ -83,7 +81,7 @@ void EnterID::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -138,7 +136,7 @@ void EnterID::checkEventHandler() else if (eventHandler->key.keysym.scancode == SDL_SCANCODE_ESCAPE) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -314,6 +312,6 @@ void EnterID::initOnline() void EnterID::endSection() { initOnline(); - section.name = (section.subsection == SUBSECTION_LOGO_TO_INTRO) ? SECTION_PROG_INTRO : SECTION_PROG_TITLE; - section.subsection = 0; + section->name = (section->subsection == SUBSECTION_LOGO_TO_INTRO) ? SECTION_PROG_INTRO : SECTION_PROG_TITLE; + section->subsection = 0; } \ No newline at end of file diff --git a/source/enter_id.h b/source/enter_id.h index 3204463..c10f4e2 100644 --- a/source/enter_id.h +++ b/source/enter_id.h @@ -29,10 +29,10 @@ private: SDL_Texture *textTexture; // Textura para dibujar el texto Text *text; // Objeto para escribir texto en pantalla Texture *texture; // Textura para la fuente para el texto + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables int counter; // Contador - section_t section; // Estado del bucle principal para saber si continua o se sale Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa std::vector texts; // Vector con los textos @@ -68,13 +68,13 @@ private: public: // Constructor - EnterID(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, section_t section); + EnterID(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, section_t *section); // Destructor ~EnterID(); // Bucle principal - section_t run(); + void run(); }; #endif diff --git a/source/game.cpp b/source/game.cpp index a741e9a..8368122 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -2,7 +2,7 @@ #include // Constructor -Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Input *input, Debug *debug) +Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Input *input, section_t *section, Debug *debug) { // Inicia algunas variables board.iniClock = SDL_GetTicks(); @@ -19,6 +19,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as this->input = input; this->debug = debug; this->options = options; + this->section = section; #ifdef DEBUG currentRoom = "01.room"; @@ -81,8 +82,8 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as initStats(); stats->addVisit(room->getName()); - section.name = SECTION_PROG_GAME; - section.subsection = 0; + section->name = SECTION_PROG_GAME; + section->subsection = 0; } Game::~Game() @@ -112,7 +113,7 @@ void Game::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; screen->setBorderColor(stringToColor(options->palette, "black")); break; } @@ -127,7 +128,7 @@ void Game::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_TITLE; + section->name = SECTION_PROG_TITLE; break; #ifdef DEBUG case SDL_SCANCODE_G: @@ -213,7 +214,7 @@ void Game::checkEventHandler() } // Bucle para el juego -section_t Game::run() +void Game::run() { JA_PlayMusic(music); if (!board.music) @@ -221,15 +222,13 @@ section_t Game::run() JA_PauseMusic(); } - while (section.name == SECTION_PROG_GAME) + while (section->name == SECTION_PROG_GAME) { update(); render(); } JA_StopMusic(); - - return section; } // Actualiza el juego, las variables, comprueba la entrada, etc. @@ -432,7 +431,7 @@ void Game::checkGameOver() { if (board.lives < 0 && blackScreenCounter > 17) { - section.name = SECTION_PROG_GAME_OVER; + section->name = SECTION_PROG_GAME_OVER; } } @@ -569,7 +568,7 @@ bool Game::checkEndGame() if (haveTheItems && isOnTheRoom && isOnTheDoor) { - section.name = SECTION_PROG_ENDING; + section->name = SECTION_PROG_ENDING; return true; } diff --git a/source/game.h b/source/game.h index 19bba8c..6c274b5 100644 --- a/source/game.h +++ b/source/game.h @@ -42,12 +42,12 @@ private: options_t *options; // Puntero a las opciones del juego Stats *stats; // Objeto encargado de gestionar las estadísticas SDL_Texture *roomNameTexture; // Textura para escribir el nombre de la habitación + section_t *section; // Seccion actual dentro del juego // Variables JA_Music_t *music; // Musica que suena durante el juego Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa - section_t section; // Seccion actual dentro del juego std::string currentRoom; // Fichero de la habitación actual playerSpawn_t spawnPoint; // Lugar de la habitación donde aparece el jugador JA_Sound_t *deathSound; // Sonido a reproducir cuando muere el jugador @@ -140,13 +140,13 @@ private: public: // Constructor - Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Input *input, Debug *debug); + Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Input *input, section_t *section, Debug *debug); // Destructor ~Game(); // Bucle para el juego - section_t run(); + void run(); }; #endif diff --git a/source/game_over.cpp b/source/game_over.cpp index 4128f77..85f250d 100644 --- a/source/game_over.cpp +++ b/source/game_over.cpp @@ -1,7 +1,7 @@ #include "game_over.h" // Constructor -GameOver::GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options) +GameOver::GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section) { // Copia los punteros this->renderer = renderer; @@ -9,6 +9,7 @@ GameOver::GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, A this->resource = resource; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros a objetos eventHandler = new SDL_Event(); @@ -20,8 +21,8 @@ GameOver::GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, A // Inicializa variables preCounter = 0; counter = 0; - section.name = SECTION_PROG_GAME_OVER; - section.subsection = 0; + section->name = SECTION_PROG_GAME_OVER; + section->subsection = 0; ticks = 0; ticksSpeed = 15; endSection = 400; @@ -83,7 +84,7 @@ void GameOver::update() void GameOver::render() { const int y = 32; - + // Prepara para empezar a dibujar en la textura de juego screen->start(); @@ -121,8 +122,8 @@ void GameOver::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; - section.subsection = 0; + section->name = SECTION_PROG_QUIT; + section->subsection = 0; break; } @@ -132,7 +133,7 @@ void GameOver::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_B: @@ -177,15 +178,13 @@ void GameOver::checkEventHandler() } // Bucle principal -section_t GameOver::run() +void GameOver::run() { - while (section.name == SECTION_PROG_GAME_OVER) + while (section->name == SECTION_PROG_GAME_OVER) { update(); render(); } - - return section; } // Actualiza el color usado para renderizar los textos e imagenes @@ -195,7 +194,6 @@ void GameOver::updateColor() if (counter < half) { - // const float step = std::min(std::max(counter, iniFade) - iniFade, fadeLenght) / (float)fadeLenght; const float step = std::min(counter, fadeLenght) / (float)fadeLenght; const int index = (colors.size() - 1) - int((colors.size() - 1) * step); color = colors[index]; @@ -240,8 +238,8 @@ void GameOver::updateCounters() // Comprueba si ha terminado la sección else if (counter == endSection) { - section.name = SECTION_PROG_LOGO; - section.subsection = SUBSECTION_LOGO_TO_TITLE; + section->name = SECTION_PROG_LOGO; + section->subsection = SUBSECTION_LOGO_TO_TITLE; } } diff --git a/source/game_over.h b/source/game_over.h index 33575aa..1ba87fb 100644 --- a/source/game_over.h +++ b/source/game_over.h @@ -28,11 +28,11 @@ private: Text *text; // Objeto para escribir texto en pantalla AnimatedSprite *playerSprite; // Sprite con el jugador AnimatedSprite *tvSprite; // Sprite con el televisor + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables int preCounter; // Contador previo int counter; // Contador - section_t section; // Estado del bucle principal para saber si continua o se sale Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa std::vector colors; // Vector con los colores para el fade @@ -40,7 +40,7 @@ private: int endSection; // Contador: cuando acaba la sección int iniFade; // Contador: cuando emiepza el fade int fadeLenght; // Contador: duración del fade - JA_Music_t* music; // Musica que suena durante el juego + JA_Music_t *music; // Musica que suena durante el juego // Actualiza el objeto void update(); @@ -65,13 +65,13 @@ private: public: // Constructor - GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); + GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section); // Destructor ~GameOver(); // Bucle principal - section_t run(); + void run(); }; #endif diff --git a/source/intro.cpp b/source/intro.cpp index ea0ff82..5bccff9 100644 --- a/source/intro.cpp +++ b/source/intro.cpp @@ -1,7 +1,7 @@ #include "intro.h" // Constructor -Intro::Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options) +Intro::Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section) { // Copia la dirección de los objetos this->resource = resource; @@ -9,6 +9,7 @@ Intro::Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset * this->screen = screen; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros eventHandler = new SDL_Event(); @@ -31,8 +32,8 @@ Intro::Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset * // Inicializa variables preCounter = 0; counter = 0; - section.name = SECTION_PROG_INTRO; - section.subsection = 0; + section->name = SECTION_PROG_INTRO; + section->subsection = 0; ticks = 0; ticksSpeed = 15; loadCounter = 0; @@ -82,7 +83,7 @@ void Intro::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -92,7 +93,7 @@ void Intro::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_B: @@ -130,8 +131,8 @@ void Intro::checkEventHandler() break; default: - section.name = SECTION_PROG_TITLE; - section.subsection = 0; + section->name = SECTION_PROG_TITLE; + section->subsection = 0; break; } } @@ -179,8 +180,8 @@ void Intro::updateLoad() // Comprueba si ha terminado la intro if (loadCounter >= 768) { - section.name = SECTION_PROG_TITLE; - section.subsection = 0; + section->name = SECTION_PROG_TITLE; + section->subsection = 0; JA_StopMusic(); } } @@ -240,20 +241,19 @@ void Intro::render() } // Bucle para el logo del juego -section_t Intro::run() +void Intro::run() { // Inicia el sonido de carga JA_SetVolume(64); JA_PlayMusic(loadingSound1); - while (section.name == SECTION_PROG_INTRO) + while (section->name == SECTION_PROG_INTRO) { update(); render(); } JA_SetVolume(128); - return section; } // Cambia la paleta diff --git a/source/intro.h b/source/intro.h index 33215a3..4882cbb 100644 --- a/source/intro.h +++ b/source/intro.h @@ -30,11 +30,11 @@ private: Sprite *sprite1; // Sprite para manejar la textura loadingScreenTexture1 Sprite *sprite2; // Sprite para manejar la textura loadingScreenTexture2 options_t *options; // Puntero a las opciones del juego + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables int preCounter; // Contador previo para realizar una pausa inicial int counter; // Contador - section_t section; // Estado del bucle principal para saber si continua o se sale Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa int loadCounter; // Contador para controlar las cargas @@ -68,13 +68,13 @@ private: public: // Constructor - Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); + Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section); // Destructor ~Intro(); // Bucle principal - section_t run(); + void run(); }; #endif diff --git a/source/logo.cpp b/source/logo.cpp index 569e795..7c3d835 100644 --- a/source/logo.cpp +++ b/source/logo.cpp @@ -2,7 +2,7 @@ #include // Constructor -Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, int subsection) +Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section) { // Copia la dirección de los objetos this->resource = resource; @@ -10,6 +10,7 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as this->screen = screen; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros eventHandler = new SDL_Event(); @@ -37,8 +38,7 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as // Inicializa variables counter = 0; - section.name = SECTION_PROG_LOGO; - section.subsection = subsection; + section->name = SECTION_PROG_LOGO; ticks = 0; ticksSpeed = 15; initFade = 300; @@ -77,7 +77,7 @@ void Logo::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -87,7 +87,7 @@ void Logo::checkEventHandler() switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_B: @@ -125,7 +125,7 @@ void Logo::checkEventHandler() break; default: - section.subsection = SUBSECTION_LOGO_TO_TITLE; + section->subsection = SUBSECTION_LOGO_TO_TITLE; endSection(); break; } @@ -175,26 +175,32 @@ void Logo::updateTextureColors() { texture2->setColor(color[0].r, color[0].g, color[0].b); } + else if (counter == ini + inc * 1) { texture2->setColor(color[1].r, color[1].g, color[1].b); } + else if (counter == ini + inc * 2) { texture2->setColor(color[2].r, color[2].g, color[2].b); } + else if (counter == ini + inc * 3) { texture2->setColor(color[3].r, color[3].g, color[3].b); } + else if (counter == ini + inc * 4) { texture2->setColor(color[4].r, color[4].g, color[4].b); } + else if (counter == ini + inc * 5) { texture2->setColor(color[5].r, color[5].g, color[5].b); } + else if (counter == ini + inc * 6) { texture2->setColor(color[6].r, color[6].g, color[6].b); @@ -210,31 +216,37 @@ void Logo::updateTextureColors() texture->setColor(color[6].r, color[6].g, color[6].b); texture2->setColor(color[6].r, color[6].g, color[6].b); } + else if (counter == initFade + inc * 1) { texture->setColor(color[5].r, color[5].g, color[5].b); texture2->setColor(color[5].r, color[5].g, color[5].b); } + else if (counter == initFade + inc * 2) { texture->setColor(color[4].r, color[4].g, color[4].b); texture2->setColor(color[4].r, color[4].g, color[4].b); } + else if (counter == initFade + inc * 3) { texture->setColor(color[3].r, color[3].g, color[3].b); texture2->setColor(color[3].r, color[3].g, color[3].b); } + else if (counter == initFade + inc * 4) { texture->setColor(color[2].r, color[2].g, color[2].b); texture2->setColor(color[2].r, color[2].g, color[2].b); } + else if (counter == initFade + inc * 5) { texture->setColor(color[1].r, color[1].g, color[1].b); texture2->setColor(color[1].r, color[1].g, color[1].b); } + else if (counter == initFade + inc * 6) { texture->setColor(color[0].r, color[0].g, color[0].b); @@ -295,18 +307,16 @@ void Logo::render() } // Bucle para el logo del juego -section_t Logo::run() +void Logo::run() { // Detiene la música JA_StopMusic(); - while (section.name == SECTION_PROG_LOGO) + while (section->name == SECTION_PROG_LOGO) { update(); render(); } - - return section; } // Cambia la paleta @@ -318,5 +328,5 @@ void Logo::switchPalette() // Termina la sección void Logo::endSection() { - section.name = SECTION_PROG_ENTER_ID; + section->name = SECTION_PROG_ENTER_ID; } \ No newline at end of file diff --git a/source/logo.h b/source/logo.h index 882ea70..babeb38 100644 --- a/source/logo.h +++ b/source/logo.h @@ -27,11 +27,11 @@ private: std::vector sprite; // Vector con los sprites de cada linea que forman el bitmap JAILGAMES Sprite *sprite2; // Sprite para manejar la textura2 options_t *options; // Puntero a las opciones del juego + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables std::vector color; // Vector con los colores para el fade int counter; // Contador - section_t section; // Estado del bucle principal para saber si continua o se sale Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa int initFade; // Tiempo del contador cuando inicia el fade a negro @@ -61,13 +61,13 @@ private: public: // Constructor - Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, int subsection); + Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section); // Destructor ~Logo(); // Bucle principal - section_t run(); + void run(); }; #endif diff --git a/source/title.cpp b/source/title.cpp index 64851b5..4dbdbca 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -1,7 +1,7 @@ #include "title.h" // Constructor -Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options) +Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section) { // Copia la dirección de los objetos this->resource = resource; @@ -9,6 +9,7 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset * this->screen = screen; this->asset = asset; this->options = options; + this->section = section; // Reserva memoria para los punteros eventHandler = new SDL_Event(); @@ -25,8 +26,8 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset * // Inicializa variables counter = 0; - section.name = SECTION_PROG_TITLE; - section.subsection = 0; + section->name = SECTION_PROG_TITLE; + section->subsection = 0; ticks = 0; ticksSpeed = 15; longText = "HEY JAILERS!! IT'S 2022 AND WE'RE STILL ROCKING LIKE IT'S 1998!!! HAVE YOU HEARD IT? JAILGAMES ARE BACK!! YEEESSS BACK!! MORE THAN 10 TITLES ON JAILDOC'S KITCHEN!! THATS A LOOOOOOT OF JAILGAMES, BUT WHICH ONE WILL STRIKE FIRST? THERE IS ALSO A NEW DEVICE TO COME THAT WILL BLOW YOUR MIND WITH JAILGAMES ON THE GO: P.A.C.O. BUT WAIT! WHAT'S THAT BEAUTY I'M SEEING RIGHT OVER THERE?? OOOH THAT TINY MINIASCII IS PURE LOVE!! I WANT TO LICK EVERY BYTE OF IT!! OH SHIT! AND DON'T FORGET TO BRING BACK THOSE OLD AND FAT MS-DOS JAILGAMES TO GITHUB TO KEEP THEM ALIVE!! WHAT WILL BE THE NEXT JAILDOC RELEASE? WHAT WILL BE THE NEXT PROJECT TO COME ALIVE?? OH BABY WE DON'T KNOW BUT HERE YOU CAN FIND THE ANSWER, YOU JUST HAVE TO COMPLETE JAILDOCTOR'S DILEMMA ... COULD YOU?"; @@ -79,7 +80,7 @@ void Title::checkEventHandler() // Evento de salida de la aplicación if (eventHandler->type == SDL_QUIT) { - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; } @@ -88,19 +89,19 @@ void Title::checkEventHandler() { if (eventHandler->type == SDL_JOYBUTTONDOWN) { - section.name = SECTION_PROG_GAME; - section.subsection = 0; + section->name = SECTION_PROG_GAME; + section->subsection = 0; } switch (eventHandler->key.keysym.scancode) { case SDL_SCANCODE_ESCAPE: - section.name = SECTION_PROG_QUIT; + section->name = SECTION_PROG_QUIT; break; case SDL_SCANCODE_RETURN: - section.name = SECTION_PROG_GAME; - section.subsection = 0; + section->name = SECTION_PROG_GAME; + section->subsection = 0; break; case SDL_SCANCODE_B: @@ -210,8 +211,8 @@ void Title::update() // Comprueba si ha terminado la marquesina y acaba con el titulo if (letters[letters.size() - 1].x < -10) { - section.name = SECTION_PROG_CREDITS; - section.subsection = 0; + section->name = SECTION_PROG_CREDITS; + section->subsection = 0; } } } @@ -239,15 +240,13 @@ void Title::render() } // Bucle para el logo del juego -section_t Title::run() +void Title::run() { - while (section.name == SECTION_PROG_TITLE) + while (section->name == SECTION_PROG_TITLE) { update(); render(); } - - return section; } // Recarga las texturas diff --git a/source/title.h b/source/title.h index 6d891c5..3395207 100644 --- a/source/title.h +++ b/source/title.h @@ -36,10 +36,10 @@ private: options_t *options; // Puntero a las opciones del juego Texture *pressEnterTexture; // Textura con los graficos de PRESS ENTER Sprite *pressEnterSprite; // Sprite para manejar la textura de PRESS ENTER + section_t *section; // Estado del bucle principal para saber si continua o se sale // Variables int counter; // Contador - section_t section; // Estado del bucle principal para saber si continua o se sale std::string longText; // Texto que aparece en la parte inferior del titulo Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa @@ -69,13 +69,13 @@ private: public: // Constructor - Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); + Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section); // Destructor ~Title(); // Bucle principal - section_t run(); + void run(); }; #endif