diff --git a/data/room/01.room b/data/room/01.room index 326940a..34bd926 100644 --- a/data/room/01.room +++ b/data/room/01.room @@ -1,5 +1,6 @@ name=void main bgColor=black +border=red tileset=standard.png roomUp=0 roomDown=0 diff --git a/data/room/02.room b/data/room/02.room index 7a2d4e1..c878c4a 100644 --- a/data/room/02.room +++ b/data/room/02.room @@ -1,5 +1,6 @@ name=case switch bgColor=black +border=green tileset=standard.png roomUp=0 roomDown=04.room @@ -23,7 +24,7 @@ x1=14 y1=0 x2=14 y2=12 -color=purple +color=magenta [/enemy] [item] diff --git a/data/room/03.room b/data/room/03.room index 07f7acc..a809c47 100644 --- a/data/room/03.room +++ b/data/room/03.room @@ -1,5 +1,6 @@ name=the edge bgColor=light_black +border=black tileset=standard.png roomUp=0 roomDown=05.room @@ -55,7 +56,7 @@ x1=16 y1=2 x2=16 y2=13 -color=purple +color=magenta [/enemy] [item] diff --git a/data/room/04.room b/data/room/04.room index caae25b..fc8a58e 100644 --- a/data/room/04.room +++ b/data/room/04.room @@ -1,5 +1,6 @@ name=The Fridge bgColor=blue +border=blue tileset=standard.png roomUp=02.room roomDown=0 @@ -23,7 +24,7 @@ x1=1 y1=3 x2=14 y2=3 -color=purple +color=magenta [/enemy] [enemy] @@ -55,7 +56,7 @@ x1=15 y1=12 x2=30 y2=12 -color=light_purple +color=light_magenta [/enemy] [item] diff --git a/data/room/05.room b/data/room/05.room index 51bda39..3efc44e 100644 --- a/data/room/05.room +++ b/data/room/05.room @@ -1,5 +1,6 @@ name=sigmasua bgColor=black +border=blue tileset=standard.png roomUp=03.room roomDown=0 diff --git a/source/game.cpp b/source/game.cpp index 29282f6..0b1a8da 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -19,7 +19,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input) // Crea los objetos scoreboard = new ScoreBoard(renderer, asset, &playerLives, &itemsPicked, &clock); itemTracker = new ItemTracker(); - room = new Room(asset->get(currentRoom), renderer, asset, itemTracker, &itemsPicked); + room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked); player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room); eventHandler = new SDL_Event(); text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer); @@ -260,7 +260,7 @@ bool Game::changeRoom(std::string file) room = nullptr; // Crea un objeto habitación nuevo a partir del fichero - room = new Room(asset->get(file), renderer, asset, itemTracker, &itemsPicked); + room = new Room(asset->get(file), renderer, screen, asset, itemTracker, &itemsPicked); // Pasa la nueva habitación al jugador player->setRoom(room); @@ -318,7 +318,7 @@ void Game::killPlayer() delete player; // Crea la nueva habitación y el nuevo jugador - room = new Room(asset->get(currentRoom), renderer, asset, itemTracker, &itemsPicked); + room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked); player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room); } diff --git a/source/item.cpp b/source/item.cpp index d65dc9e..a956f21 100644 --- a/source/item.cpp +++ b/source/item.cpp @@ -26,7 +26,7 @@ Item::Item(item_t item) c = stringToColor("red"); color.push_back(c); - c = stringToColor("purple"); + c = stringToColor("magenta"); color.push_back(c); c = stringToColor("green"); diff --git a/source/logo.cpp b/source/logo.cpp index 7e7c777..00a348d 100644 --- a/source/logo.cpp +++ b/source/logo.cpp @@ -49,7 +49,7 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset) c = stringToColor("red"); color.push_back(c); - c = stringToColor("purple"); + c = stringToColor("magenta"); color.push_back(c); c = stringToColor("green"); diff --git a/source/room.cpp b/source/room.cpp index 8c17617..c449f99 100644 --- a/source/room.cpp +++ b/source/room.cpp @@ -4,11 +4,12 @@ #include // Constructor -Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *itemTracker, int *items) +Room::Room(std::string file_path, SDL_Renderer *renderer, Screen *screen, Asset *asset, ItemTracker *itemTracker, int *items) { // Copia los punteros a objetos - this->asset = asset; this->renderer = renderer; + this->asset = asset; + this->screen = screen; this->itemTracker = itemTracker; this->itemsPicked = items; @@ -24,6 +25,9 @@ Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTrac // Pinta el mapa de la habitación en la textura fillMapTexture(); + + // Establece el color del borde + screen->setBorderColor(borderColor); } // Destructor @@ -213,6 +217,11 @@ bool Room::setVars(std::string var, std::string value) bgColor = stringToColor(value); } + else if (var == "border") + { + borderColor = stringToColor(value); + } + else if (var == "tileset") { tileset = value; diff --git a/source/room.h b/source/room.h index c87ed9d..6017d90 100644 --- a/source/room.h +++ b/source/room.h @@ -3,6 +3,7 @@ #include "utils.h" #include "asset.h" +#include "screen.h" #include "enemy.h" #include "item.h" #include "item_tracker.h" @@ -39,6 +40,7 @@ class Room private: std::string name; // Nombre de la habitación color_t bgColor; // Color de fondo de la habitación + color_t borderColor; // Color de fondo de la habitación std::string roomUp; // Identificador de la habitación que se encuentra arriba std::string roomDown; // Identificador de la habitación que se encuentra abajp std::string roomLeft; // Identificador de la habitación que se encuentra a la izquierda @@ -49,6 +51,7 @@ private: std::vector items; // Listado con los items que hay en la habitación LTexture *texture; // Textura con los graficos de la habitación Asset *asset; // Objeto con la ruta a todos los ficheros de recursos + Screen *screen; // Objeto encargado de dibujar en pantalla ItemTracker *itemTracker; // Lleva el control de los objetos recogidos SDL_Renderer *renderer; // El renderizador de la ventana SDL_Texture *mapTexture; // Textura para dibujar el mapa de la habitación @@ -72,7 +75,7 @@ private: public: // Constructor - Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *item_tracker, int *items); + Room(std::string file_path, SDL_Renderer *renderer, Screen *screen, Asset *asset, ItemTracker *item_tracker, int *items); // Destructor ~Room(); diff --git a/source/scoreboard.cpp b/source/scoreboard.cpp index 5ce2973..d11f21f 100644 --- a/source/scoreboard.cpp +++ b/source/scoreboard.cpp @@ -29,7 +29,7 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *it c = stringToColor("red"); color.push_back(c); - c = stringToColor("purple"); + c = stringToColor("magenta"); color.push_back(c); c = stringToColor("green"); @@ -50,7 +50,7 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *it c = stringToColor("light_red"); color.push_back(c); - c = stringToColor("light_purple"); + c = stringToColor("light_magenta"); color.push_back(c); c = stringToColor("light_green"); diff --git a/source/utils.cpp b/source/utils.cpp index 10c52b2..135a2da 100644 --- a/source/utils.cpp +++ b/source/utils.cpp @@ -145,7 +145,7 @@ color_t stringToColor(std::string str) { const std::string palette = "spectrum"; - if (palette = "spectrum") + if (palette == "spectrum") { if (str == "black") { @@ -177,12 +177,12 @@ color_t stringToColor(std::string str) return {0xEE, 0x00, 0x00}; } - else if (str == "purple") + else if (str == "magenta") { return {0xFF, 0x00, 0xFF}; } - else if (str == "light_purple") + else if (str == "light_magenta") { return {0xEE, 0x00, 0xEE}; } @@ -260,12 +260,12 @@ color_t stringToColor(std::string str) return {0xD8, 0x55, 0x25}; } - else if (str == "purple") + else if (str == "magenta") { return {0xA1, 0x55, 0x89}; } - else if (str == "light_purple") + else if (str == "light_magenta") { return {0xCD, 0x7A, 0x50}; } diff --git a/todo.txt b/todo.txt index 80a7096..46d6754 100644 --- a/todo.txt +++ b/todo.txt @@ -23,7 +23,7 @@ x (A) Tecla F para pasar a pantalla completa {cm:2022-08-30} x (A) Tecla + y - para cambiar tamaño de ventana. O control F1 a F4 {cm:2022-08-30} (A) Poner en el marcador el indicador de si esta sonando la música (A) Poner en el marcador el numero de habitaciones visitadas -(A) Añadir a cada habitación el color del borde +x (A) Añadir a cada habitación el color del borde (A) Añadir a cada habitación el color del nombre de la habitación x (A) Crear el logo al estilo del logo de ERBE o TOPO, con lineas que lo formen