forked from jaildesigner-jailgames/jaildoctors_dilemma
Implementado el cambio de paleta durante el juego
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#include "demo.h"
|
||||
|
||||
// Constructor
|
||||
Demo::Demo(SDL_Renderer *renderer, Screen *screen, Asset *asset, Debug *debug)
|
||||
Demo::Demo(SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, Debug *debug)
|
||||
{
|
||||
// Inicia algunas variables
|
||||
board.iniClock = SDL_GetTicks();
|
||||
@@ -19,11 +19,12 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Asset *asset, Debug *debug)
|
||||
this->asset = asset;
|
||||
this->screen = screen;
|
||||
this->debug = debug;
|
||||
this->options = options;
|
||||
|
||||
// Crea los objetos
|
||||
itemTracker = new ItemTracker();
|
||||
scoreboard = new ScoreBoard(renderer, asset, &board);
|
||||
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &board.items, debug);
|
||||
scoreboard = new ScoreBoard(renderer, asset, options, &board);
|
||||
room = new Room(asset->get(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, debug);
|
||||
eventHandler = new SDL_Event();
|
||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
||||
|
||||
@@ -35,7 +36,7 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Asset *asset, Debug *debug)
|
||||
board.items = 0;
|
||||
board.rooms = 1;
|
||||
const color_t c = room->getBorderColor();
|
||||
board.color = (c.r + c.g + c.b == 0) ? stringToColor("white") : c; // Si el color es negro lo cambia a blanco
|
||||
board.color = (c.r + c.g + c.b == 0) ? stringToColor(options->palette, "white") : c; // Si el color es negro lo cambia a blanco
|
||||
|
||||
board.music = !debug->getEnabled();
|
||||
|
||||
@@ -63,7 +64,7 @@ void Demo::checkEventHandler()
|
||||
if (eventHandler->type == SDL_QUIT)
|
||||
{
|
||||
section.name = SECTION_PROG_QUIT;
|
||||
screen->setBorderColor(stringToColor("black"));
|
||||
screen->setBorderColor(stringToColor(options->palette, "black"));
|
||||
break;
|
||||
}
|
||||
else if ((eventHandler->type == SDL_KEYDOWN) and (eventHandler->key.repeat == 0))
|
||||
@@ -163,7 +164,7 @@ void Demo::renderRoomName()
|
||||
{
|
||||
// Texto en el centro de la pantalla
|
||||
SDL_Rect rect = {0, 16 * BLOCK, PLAY_AREA_WIDTH, BLOCK * 2};
|
||||
color_t color = stringToColor("white");
|
||||
color_t color = stringToColor(options->palette, "white");
|
||||
SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, 0xFF);
|
||||
SDL_RenderFillRect(renderer, &rect);
|
||||
|
||||
@@ -191,11 +192,11 @@ bool Demo::changeRoom(std::string file)
|
||||
room = nullptr;
|
||||
|
||||
// Crea un objeto habitación nuevo a partir del fichero
|
||||
room = new Room(asset->get(file), renderer, screen, asset, itemTracker, &board.items, debug);
|
||||
room = new Room(asset->get(file), renderer, screen, asset, options, itemTracker, &board.items, debug);
|
||||
|
||||
// Actualiza el marcador
|
||||
const color_t c = room->getBorderColor(); // Pone el color del marcador
|
||||
board.color = (c.r + c.g + c.b == 0) ? stringToColor("white") : c; // Si el color es negro lo cambia a blanco
|
||||
const color_t c = room->getBorderColor(); // Pone el color del marcador
|
||||
board.color = (c.r + c.g + c.b == 0) ? stringToColor(options->palette, "white") : c; // Si el color es negro lo cambia a blanco
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user