Ya se puede entrar a la Jail

This commit is contained in:
2022-11-06 08:28:55 +01:00
parent 45fc923be9
commit 3d0400fe88
39 changed files with 76 additions and 46 deletions

View File

@@ -377,7 +377,7 @@ bool setItem(item_t *item, std::string var, std::string value)
}
// Constructor
Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, ItemTracker *itemTracker, int *itemsPicked, Debug *debug)
Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, ItemTracker *itemTracker, int *itemsPicked, bool jailEnabled, Debug *debug)
{
// Copia los punteros a objetos
this->renderer = renderer;
@@ -404,6 +404,7 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
textureB = room->textureB;
tileMap = room->tileMap;
texture = (options->palette == p_zxspectrum) ? textureA : textureB;
this->jailEnabled = jailEnabled;
// Inicializa variables
tileSize = 8;
@@ -438,6 +439,12 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
// Carga los sonidos
itemSound = JA_LoadSound(asset->get("item.wav").c_str());
// Abre la jail para poder entrar
if (jailEnabled)
{
openTheJail();
}
// Calcula las superficies
setBottomSurfaces();
setTopSurfaces();
@@ -1463,4 +1470,24 @@ void Room::resume()
int Room::getAutoSurfaceDirection()
{
return autoSurfaceDirection;
}
// Abre la jail para poder entrar
void Room::openTheJail()
{
if (name == "THE JAIL")
{
// Cambia el color de fondo
bgColor = "red";
// Elimina el último enemigo (Bry debe ser el ultimo enemigo definido en el fichero)
delete enemies.back();
enemies.pop_back();
// Abre las puertas
const int tileA = 16 + (13 * 32);
const int tileB = 16 + (14 * 32);
tileMap->at(tileA) = -1;
tileMap->at(tileB) = -1;
}
}