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

@@ -1,4 +1,4 @@
name=road to the jail
name=ROAD TO THE JAIL
bgColor=black
border=cyan
tileMapFile=02.tmx

View File

@@ -1,4 +1,4 @@
name=void main
name=VOID MAIN
bgColor=black
border=magenta
tileMapFile=03.tmx

View File

@@ -1,4 +1,4 @@
name=sigmasua
name=SIGMASUA
bgColor=black
border=black
tileMapFile=07.tmx

View File

@@ -1,4 +1,4 @@
name=the hall
name=THE HALL
bgColor=black
border=magenta
tileMapFile=10.tmx

View File

@@ -1,4 +1,4 @@
name=matatunos
name=TUNOKILLER
bgColor=black
border=blue
tileMapFile=13.tmx

View File

@@ -1,4 +1,4 @@
name=now this is the batcave!
name=NOW THIS IS THE BATCAVE!
bgColor=black
border=black
tileMapFile=15.tmx

View File

@@ -1,4 +1,4 @@
name=The Fridge
name=THE FRIDGE
bgColor=blue
border=blue
itemColor1=bright_cyan

View File

@@ -1,4 +1,4 @@
name=i remember this one too
name=I REMEMBER THIS ONE TOO
bgColor=black
border=magenta
tileMapFile=17.tmx

View File

@@ -1,4 +1,4 @@
name=make money
name=MAKE MONEY
bgColor=black
border=magenta
tileMapFile=18.tmx

View File

@@ -1,4 +1,4 @@
name=this can't be the batcave
name=THIS CAN'T BE THE BATCAVE
bgColor=black
border=cyan
tileMapFile=19.tmx

View File

@@ -1,4 +1,4 @@
name=AEE2 never came out
name=AEE2 NEVER CAME OUT
bgColor=black
border=yellow
tileMapFile=22.tmx

View File

@@ -1,4 +1,4 @@
name=inner chamber
name=INNER CHAMBER
bgColor=black
border=bright_yellow
tileMapFile=23.tmx

View File

@@ -1,4 +1,4 @@
name=jingle bells
name=JINGLE BELLS
bgColor=blue
border=yellow
tileMapFile=26.tmx

View File

@@ -1,4 +1,4 @@
name=the backyard
name=THE BACKYARD
bgColor=blue
border=cyan
tileMapFile=27.tmx

View File

@@ -1,4 +1,4 @@
name=the final crossover
name=THE FINAL CROSSOVER
bgColor=black
border=yellow
tileMapFile=38.tmx

View File

@@ -1,4 +1,4 @@
name=you'll believe arounder can fly
name=YOU'LL BELIEVE AROUNDER CAN FLY
bgColor=black
border=cyan
tileMapFile=39.tmx

View File

@@ -1,4 +1,4 @@
name=prevent the crisis
name=PREVENT THE CRISIS
bgColor=black
border=bright_magenta
tileMapFile=40.tmx

View File

@@ -1,4 +1,4 @@
name=around with me
name=AROUND WITH ME
bgColor=black
border=blue
tileMapFile=41.tmx

View File

@@ -1,4 +1,4 @@
name=P.A.C.O. on the go
name=P.A.C.O. ON THE GO
bgColor=black
border=black
tileMapFile=42.tmx

View File

@@ -1,4 +1,4 @@
name=the tube
name=THE TUBE
bgColor=black
border=blue
tileMapFile=43.tmx

View File

@@ -1,4 +1,4 @@
name=the kitchen
name=THE KITCHEN
bgColor=black
border=cyan
tileMapFile=44.tmx

View File

@@ -1,4 +1,4 @@
name=the battle never ends
name=THE BATTLE NEVER ENDS
bgColor=black
border=white
tileMapFile=47.tmx

View File

@@ -1,4 +1,4 @@
name=welcome to the jailbattle
name=WELCOME TO THE JAILBATTLE
bgColor=green
border=bright_green
tileMapFile=48.tmx

View File

@@ -1,4 +1,4 @@
name=bamba
name=BAMBA
bgColor=black
border=red
tileMapFile=49.tmx

View File

@@ -1,4 +1,4 @@
name=stored jailgames
name=STORED JAILGAMES
bgColor=black
border=blue
tileMapFile=50.tmx

View File

@@ -1,4 +1,4 @@
name=mini ascii
name=MINI ASCII
bgColor=black
border=black
tileMapFile=51.tmx

View File

@@ -1,4 +1,4 @@
name=breakout.lua
name=BREAKOUT.LUA
bgColor=black
border=black
tileMapFile=52.tmx

View File

@@ -1,4 +1,4 @@
name=P.A.C.O workshop
name=P.A.C.O WORKSHOP
bgColor=black
border=yellow
tileMapFile=53.tmx

View File

@@ -1,4 +1,4 @@
name=the basement
name=THE BASEMENT
bgColor=black
border=green
tileMapFile=54.tmx

View File

@@ -1,4 +1,4 @@
name=that's a guitar
name=THAT'S A GUITAR
bgColor=black
border=black
tileMapFile=55.tmx

View File

@@ -1,4 +1,4 @@
name=heavy demons on leggins
name=HEAVY DEMONS ON LEGGINS
bgColor=black
border=black
tileMapFile=56.tmx

View File

@@ -1,4 +1,4 @@
name=jailgames go to hell
name=JAILGAMES GO TO HELL
bgColor=red
border=bright_red
tileMapFile=57.tmx

View File

@@ -1,4 +1,4 @@
name=chirping
name=CHIRPING
bgColor=black
border=magenta
tileMapFile=58.tmx

View File

@@ -1,4 +1,4 @@
name=static
name=STATIC
bgColor=black
border=bright_magenta
tileMapFile=59.tmx

View File

@@ -1,4 +1,4 @@
name=magnetic fields
name=MAGNETIC FIELDS
bgColor=black
border=red
tileMapFile=60.tmx

View File

@@ -87,7 +87,7 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
// Crea los objetos
itemTracker = new ItemTracker();
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, debug);
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, false, debug);
eventHandler = new SDL_Event();
text = new Text(resource->getOffset("smb2.txt"), resource->getTexture("smb2.png"), renderer);
@@ -287,7 +287,7 @@ bool Demo::changeRoom(std::string file)
room = nullptr;
// Crea un objeto habitación nuevo a partir del fichero
room = new Room(resource->getRoom(file), renderer, screen, asset, options, itemTracker, &board.items, debug);
room = new Room(resource->getRoom(file), renderer, screen, asset, options, itemTracker, &board.items, false, debug);
// Pone el color del marcador en función del color del borde de la habitación
setScoreBoardColor();

View File

@@ -19,8 +19,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
this->options = options;
// ****
// this->debug->setEnabled(true);
currentRoom = "27.room";
currentRoom = "01.room";
const int x = 29;
const int y = 13;
spawnPoint = {x * 8, y * 8, 0, 0, 0, s_standing, SDL_FLIP_HORIZONTAL};
@@ -30,7 +29,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
itemTracker = new ItemTracker();
roomTracker = new RoomTracker();
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, debug);
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, false, debug);
const player_t player = {spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug};
this->player = new Player(player);
eventHandler = new SDL_Event();
@@ -45,9 +44,9 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
board.lives = 9;
board.items = 0;
board.rooms = 1;
setScoreBoardColor();
board.music = true;
board.jailEnabled = false;
setScoreBoardColor();
roomTracker->addRoom(currentRoom);
paused = false;
blackScreen = false;
@@ -310,7 +309,7 @@ bool Game::changeRoom(std::string file)
room = nullptr;
// Crea un objeto habitación nuevo a partir del fichero
room = new Room(resource->getRoom(file), renderer, screen, asset, options, itemTracker, &board.items, debug);
room = new Room(resource->getRoom(file), renderer, screen, asset, options, itemTracker, &board.items, board.jailEnabled, debug);
// Pone el color del marcador en función del color del borde de la habitación
setScoreBoardColor();
@@ -404,7 +403,7 @@ void Game::killPlayer()
setBlackScreen();
// Crea la nueva habitación y el nuevo jugador
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, debug);
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, board.jailEnabled, debug);
const player_t player = {spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug};
this->player = new Player(player);
@@ -504,7 +503,7 @@ bool Game::checkEndGame()
const bool a = room->getName() == "THE JAIL";
const bool b = board.items >= 5;
const bool c = player->getRect().x < 152;
const bool c = player->getRect().x <= 128;
if (b)
{

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();
@@ -1464,3 +1471,23 @@ 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;
}
}

View File

@@ -117,6 +117,7 @@ private:
int mapWidth; // Ancho del mapa en tiles
int mapHeight; // Alto del mapa en tiles
int tileSetWidth; // Ancho del tileset en tiles
bool jailEnabled; // Indica si hay acceso a la Jail
// Pinta el mapa de la habitación en la textura
void fillMapTexture();
@@ -154,9 +155,12 @@ private:
// Devuelve el tipo de tile que hay en ese indice
tile_e getTile(int index);
// Abre la jail para poder entrar
void openTheJail();
public:
// Constructor
Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, ItemTracker *itemTracker, int *itemsPicked, Debug *debug);
Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, ItemTracker *itemTracker, int *itemsPicked, bool jailEnabled, Debug *debug);
// Destructor
~Room();