diff --git a/source/game.cpp b/source/game.cpp index 096aa45..80bf383 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -12,7 +12,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, D this->debug->setEnabled(true); // Reserva memoria para los objetos - scoreboard = new ScoreBoard(renderer, asset, &board); + scoreboard = new ScoreBoard(renderer, asset, &board); eventHandler = new SDL_Event(); itemTracker = new ItemTracker(); map = new Map(asset->get("01.map"), renderer, asset, itemTracker); @@ -77,19 +77,19 @@ void Game::update() { // Actualiza el contador de ticks ticks = SDL_GetTicks(); - - // Comprueba los eventos de la cola - checkEventHandler(); - // Actualiza los objetos - debug->clear(); + // Comprueba los eventos de la cola + checkEventHandler(); + + // Actualiza los objetos + debug->clear(); scoreboard->update(); map->update(); enemyEngine->update(); player->update(); checkScreenBorders(); - updateDebugInfo(); + updateDebugInfo(); } } @@ -132,7 +132,7 @@ void Game::checkEventHandler() break; case SDL_SCANCODE_D: - debug->switchEnabled(); + debug->switchEnabled(); musicEnabled = !debug->getEnabled(); musicEnabled ? JA_ResumeMusic() : JA_PauseMusic(); break; @@ -151,22 +151,27 @@ void Game::checkEventHandler() case SDL_SCANCODE_F: screen->switchVideoMode(); + reLoadTextures(); break; case SDL_SCANCODE_F1: screen->setWindowSize(1); + reLoadTextures(); break; case SDL_SCANCODE_F2: screen->setWindowSize(2); + reLoadTextures(); break; case SDL_SCANCODE_F3: screen->setWindowSize(3); + reLoadTextures(); break; case SDL_SCANCODE_F4: screen->setWindowSize(4); + reLoadTextures(); break; default: @@ -201,7 +206,7 @@ void Game::renderDebugInfo() return; } -// Pinta la rejilla + // Pinta la rejilla SDL_SetRenderDrawColor(renderer, 0, 0, 0, 16); for (int i = 0; i < 240; i += 8) { @@ -257,4 +262,12 @@ void Game::checkScreenBorders() player->switchBorders(); } } +} + +// Recarga las texturas +void Game::reLoadTextures() +{ + map->reLoadTextures(); + player->reLoadTextures(); + scoreboard->reLoadTexture(); } \ No newline at end of file diff --git a/source/game.h b/source/game.h index ad9b525..7269328 100644 --- a/source/game.h +++ b/source/game.h @@ -58,6 +58,9 @@ private: // Comprueba si el jugador está en el borde y se ha de cambiar el mapa void checkScreenBorders(); + // Recarga las texturas + void reLoadTextures(); + public: // Constructor Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Debug *debug); diff --git a/source/map.cpp b/source/map.cpp index dc259a2..8a3363b 100644 --- a/source/map.cpp +++ b/source/map.cpp @@ -668,4 +668,11 @@ void Map::getItem(int index) std::string Map::getEnemyFile() { return enemy_file; +} + +// Recarga las texturas +void Map::reLoadTextures() +{ + texture_tile->reLoad(); + fillMapTexture(); } \ No newline at end of file diff --git a/source/map.h b/source/map.h index 0133734..1bf6f8b 100644 --- a/source/map.h +++ b/source/map.h @@ -123,6 +123,9 @@ public: // Obtiene el valor de la variable std::string getEnemyFile(); + + // Recarga las texturas + void reLoadTextures(); }; #endif diff --git a/source/player.cpp b/source/player.cpp index 1f7fb55..a005092 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -480,4 +480,10 @@ int Player::checkActors() } return index; +} + +// Recarga las texturas +void Player::reLoadTextures() +{ + texture->reLoad(); } \ No newline at end of file diff --git a/source/player.h b/source/player.h index d8458c1..172efa9 100644 --- a/source/player.h +++ b/source/player.h @@ -119,6 +119,9 @@ public: // Pasa la referencia del mapa void setMap(Map *map); + + // Recarga las texturas + void reLoadTextures(); }; #endif