forked from jaildesigner-jailgames/jaildoctors_dilemma
Ya se puede entrar a la Jail
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
name=road to the jail
|
||||
name=ROAD TO THE JAIL
|
||||
bgColor=black
|
||||
border=cyan
|
||||
tileMapFile=02.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=void main
|
||||
name=VOID MAIN
|
||||
bgColor=black
|
||||
border=magenta
|
||||
tileMapFile=03.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=sigmasua
|
||||
name=SIGMASUA
|
||||
bgColor=black
|
||||
border=black
|
||||
tileMapFile=07.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=the hall
|
||||
name=THE HALL
|
||||
bgColor=black
|
||||
border=magenta
|
||||
tileMapFile=10.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=matatunos
|
||||
name=TUNOKILLER
|
||||
bgColor=black
|
||||
border=blue
|
||||
tileMapFile=13.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=now this is the batcave!
|
||||
name=NOW THIS IS THE BATCAVE!
|
||||
bgColor=black
|
||||
border=black
|
||||
tileMapFile=15.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=The Fridge
|
||||
name=THE FRIDGE
|
||||
bgColor=blue
|
||||
border=blue
|
||||
itemColor1=bright_cyan
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=i remember this one too
|
||||
name=I REMEMBER THIS ONE TOO
|
||||
bgColor=black
|
||||
border=magenta
|
||||
tileMapFile=17.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=make money
|
||||
name=MAKE MONEY
|
||||
bgColor=black
|
||||
border=magenta
|
||||
tileMapFile=18.tmx
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=AEE2 never came out
|
||||
name=AEE2 NEVER CAME OUT
|
||||
bgColor=black
|
||||
border=yellow
|
||||
tileMapFile=22.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=inner chamber
|
||||
name=INNER CHAMBER
|
||||
bgColor=black
|
||||
border=bright_yellow
|
||||
tileMapFile=23.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=jingle bells
|
||||
name=JINGLE BELLS
|
||||
bgColor=blue
|
||||
border=yellow
|
||||
tileMapFile=26.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=the backyard
|
||||
name=THE BACKYARD
|
||||
bgColor=blue
|
||||
border=cyan
|
||||
tileMapFile=27.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=the final crossover
|
||||
name=THE FINAL CROSSOVER
|
||||
bgColor=black
|
||||
border=yellow
|
||||
tileMapFile=38.tmx
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=prevent the crisis
|
||||
name=PREVENT THE CRISIS
|
||||
bgColor=black
|
||||
border=bright_magenta
|
||||
tileMapFile=40.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=around with me
|
||||
name=AROUND WITH ME
|
||||
bgColor=black
|
||||
border=blue
|
||||
tileMapFile=41.tmx
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=the tube
|
||||
name=THE TUBE
|
||||
bgColor=black
|
||||
border=blue
|
||||
tileMapFile=43.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=the kitchen
|
||||
name=THE KITCHEN
|
||||
bgColor=black
|
||||
border=cyan
|
||||
tileMapFile=44.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=the battle never ends
|
||||
name=THE BATTLE NEVER ENDS
|
||||
bgColor=black
|
||||
border=white
|
||||
tileMapFile=47.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=welcome to the jailbattle
|
||||
name=WELCOME TO THE JAILBATTLE
|
||||
bgColor=green
|
||||
border=bright_green
|
||||
tileMapFile=48.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=bamba
|
||||
name=BAMBA
|
||||
bgColor=black
|
||||
border=red
|
||||
tileMapFile=49.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=stored jailgames
|
||||
name=STORED JAILGAMES
|
||||
bgColor=black
|
||||
border=blue
|
||||
tileMapFile=50.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=mini ascii
|
||||
name=MINI ASCII
|
||||
bgColor=black
|
||||
border=black
|
||||
tileMapFile=51.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=breakout.lua
|
||||
name=BREAKOUT.LUA
|
||||
bgColor=black
|
||||
border=black
|
||||
tileMapFile=52.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=P.A.C.O workshop
|
||||
name=P.A.C.O WORKSHOP
|
||||
bgColor=black
|
||||
border=yellow
|
||||
tileMapFile=53.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=the basement
|
||||
name=THE BASEMENT
|
||||
bgColor=black
|
||||
border=green
|
||||
tileMapFile=54.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=that's a guitar
|
||||
name=THAT'S A GUITAR
|
||||
bgColor=black
|
||||
border=black
|
||||
tileMapFile=55.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=heavy demons on leggins
|
||||
name=HEAVY DEMONS ON LEGGINS
|
||||
bgColor=black
|
||||
border=black
|
||||
tileMapFile=56.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=jailgames go to hell
|
||||
name=JAILGAMES GO TO HELL
|
||||
bgColor=red
|
||||
border=bright_red
|
||||
tileMapFile=57.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=chirping
|
||||
name=CHIRPING
|
||||
bgColor=black
|
||||
border=magenta
|
||||
tileMapFile=58.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=static
|
||||
name=STATIC
|
||||
bgColor=black
|
||||
border=bright_magenta
|
||||
tileMapFile=59.tmx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name=magnetic fields
|
||||
name=MAGNETIC FIELDS
|
||||
bgColor=black
|
||||
border=red
|
||||
tileMapFile=60.tmx
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user