Calculados los items totales del mapeado

This commit is contained in:
2022-11-06 14:04:59 +01:00
parent 3d0400fe88
commit ec5da9ae3e
4 changed files with 33 additions and 9 deletions

View File

@@ -36,7 +36,6 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
text = new Text(resource->getOffset("smb2.txt"), resource->getTexture("smb2.png"), renderer);
music = JA_LoadMusic(asset->get("game.ogg").c_str());
deathSound = JA_LoadSound(asset->get("death.wav").c_str());
test = new Test(renderer, screen, asset, debug);
// Inicializa el resto de variables
ticks = 0;
@@ -51,6 +50,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
paused = false;
blackScreen = false;
blackScreenCounter = 0;
totalItems = getTotalItems();
section.name = SECTION_PROG_GAME;
section.subsection = 0;
@@ -69,8 +69,6 @@ Game::~Game()
JA_DeleteMusic(music);
JA_DeleteSound(deathSound);
delete test;
}
// Comprueba los eventos de la cola
@@ -237,7 +235,7 @@ void Game::render()
// Debug info
renderDebugInfo();
screen->renderFX();
// screen->renderFX();
// Actualiza la pantalla
screen->blit();
@@ -501,9 +499,9 @@ void Game::setScoreBoardColor()
bool Game::checkEndGame()
{
const bool a = room->getName() == "THE JAIL";
const bool b = board.items >= 5;
const bool c = player->getRect().x <= 128;
const bool a = room->getName() == "THE JAIL"; // Estar en la habitación que toca
const bool b = board.items >= totalItems * 0.9f; // Con mas del 90% de los items recogidos
const bool c = player->getRect().x <= 128; // Estar en la ubicación que toca (En la puerta)
if (b)
{
@@ -517,4 +515,19 @@ bool Game::checkEndGame()
}
return false;
}
// Obtiene la cantidad total de items que hay en el mapeado del juego
int Game::getTotalItems()
{
int items = 0;
std::vector<res_room_t> *rooms = new std::vector<res_room_t>;
rooms = resource->getAllRooms();
for (auto room : *rooms)
{
items += room.room->items.size();
}
return items;
}