Ya cambia la paleta de color de casi toda la habitación. Faltan los enemigos

This commit is contained in:
2022-10-26 10:09:48 +02:00
parent 674fdd1d05
commit bdce205006
5 changed files with 45 additions and 26 deletions

View File

@@ -9,7 +9,7 @@ Director::Director(std::string path)
section.name = SECTION_PROG_LOGO; section.name = SECTION_PROG_LOGO;
section.subsection = SUBSECTION_LOGO_TO_INTRO; section.subsection = SUBSECTION_LOGO_TO_INTRO;
section.name = SECTION_PROG_TITLE; section.name = SECTION_PROG_GAME;
// Crea el objeto que controla los ficheros de recursos // Crea el objeto que controla los ficheros de recursos
asset = new Asset(path.substr(0, path.find_last_of("\\/"))); asset = new Asset(path.substr(0, path.find_last_of("\\/")));

View File

@@ -154,14 +154,7 @@ void Game::checkEventHandler()
break; break;
case SDL_SCANCODE_F5: case SDL_SCANCODE_F5:
if (options->palette == p_zxspectrum) switchPalette();
{
options->palette = p_zxarne;
}
else
{
options->palette = p_zxspectrum;
}
reLoadTextures(); reLoadTextures();
break; break;
@@ -411,6 +404,23 @@ void Game::reLoadTextures()
text->reLoadTexture(); text->reLoadTexture();
} }
// Cambia la paleta
void Game::switchPalette()
{
// Modifica la variable
if (options->palette == p_zxspectrum)
{
options->palette = p_zxarne;
}
else
{
options->palette = p_zxspectrum;
}
room->reLoadPalette();
player->reLoadPalette();
}
// Establece la pantalla en negro // Establece la pantalla en negro
void Game::setBlackScreen() void Game::setBlackScreen()
{ {

View File

@@ -95,6 +95,9 @@ private:
// Recarga todas las texturas // Recarga todas las texturas
void reLoadTextures(); void reLoadTextures();
// Cambia la paleta
void switchPalette();
// Establece la pantalla en negro // Establece la pantalla en negro
void setBlackScreen(); void setBlackScreen();

View File

@@ -20,8 +20,8 @@ Room::Room(std::string file, SDL_Renderer *renderer, Screen *screen, Asset *asse
mapWidth = 32; mapWidth = 32;
mapHeight = 16; mapHeight = 16;
paused = false; paused = false;
itemColor1 = stringToColor(options->palette, "magenta"); itemColor1 = "magenta";
itemColor2 = stringToColor(options->palette, "yellow"); itemColor2 = "yellow";
autoSurfaceDirection = 1; autoSurfaceDirection = 1;
counter = 0; counter = 0;
@@ -57,7 +57,7 @@ Room::Room(std::string file, SDL_Renderer *renderer, Screen *screen, Asset *asse
fillMapTexture(); fillMapTexture();
// Establece el color del borde // Establece el color del borde
screen->setBorderColor(borderColor); screen->setBorderColor(stringToColor(options->palette, borderColor));
} }
// Destructor // Destructor
@@ -130,8 +130,8 @@ bool Room::loadMapFile(std::string file_path)
item.asset = asset; item.asset = asset;
item.renderer = renderer; item.renderer = renderer;
item.counter = 0; item.counter = 0;
item.color1 = itemColor1; item.color1 = stringToColor(options->palette, itemColor1);
item.color2 = itemColor2; item.color2 = stringToColor(options->palette, itemColor2);
do do
{ {
@@ -249,22 +249,22 @@ bool Room::setVars(std::string var, std::string value)
else if (var == "bgColor") else if (var == "bgColor")
{ {
bgColor = stringToColor(options->palette, value); bgColor = value;
} }
else if (var == "border") else if (var == "border")
{ {
borderColor = stringToColor(options->palette, value); borderColor = value;
} }
else if (var == "itemColor1") else if (var == "itemColor1")
{ {
itemColor1 = stringToColor(options->palette, value); itemColor1 = value;
} }
else if (var == "itemColor2") else if (var == "itemColor2")
{ {
itemColor2 = stringToColor(options->palette, value); itemColor2 = value;
} }
else if (var == "tileset") else if (var == "tileset")
@@ -464,13 +464,13 @@ std::string Room::getName()
// Devuelve el color de la habitación // Devuelve el color de la habitación
color_t Room::getBGColor() color_t Room::getBGColor()
{ {
return bgColor; return stringToColor(options->palette, bgColor);
} }
// Devuelve el color del borde // Devuelve el color del borde
color_t Room::getBorderColor() color_t Room::getBorderColor()
{ {
return borderColor; return stringToColor(options->palette, borderColor);
} }
// Crea la textura con el mapeado de la habitación // Crea la textura con el mapeado de la habitación
@@ -794,8 +794,14 @@ void Room::reLoadTexture()
// Recarga la paleta // Recarga la paleta
void Room::reLoadPalette() void Room::reLoadPalette()
{ {
itemColor1 = stringToColor(options->palette, "magenta"); // Cambia el color de los items
itemColor2 = stringToColor(options->palette, "yellow"); for (auto item:items)
{
item->setColors(stringToColor(options->palette, itemColor1), stringToColor(options->palette, itemColor2));
}
// Establece el color del borde
screen->setBorderColor(stringToColor(options->palette, borderColor));
} }
// Obten el tamaño del tile // Obten el tamaño del tile

View File

@@ -52,10 +52,10 @@ private:
// Variables // Variables
std::string name; // Nombre de la habitación std::string name; // Nombre de la habitación
color_t bgColor; // Color de fondo de la habitación std::string bgColor; // Color de fondo de la habitación
color_t borderColor; // Color del borde de la pantalla std::string borderColor; // Color del borde de la pantalla
color_t itemColor1; // Color 1 para los items de la habitación std::string itemColor1; // Color 1 para los items de la habitación
color_t itemColor2; // Color 2 para los items de la habitación std::string itemColor2; // Color 2 para los items de la habitación
std::string roomUp; // Identificador de la habitación que se encuentra arriba 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 roomDown; // Identificador de la habitación que se encuentra abajp
std::string roomLeft; // Identificador de la habitación que se encuentra a la izquierda std::string roomLeft; // Identificador de la habitación que se encuentra a la izquierda