forked from jaildesigner-jailgames/jaildoctors_dilemma
Ja funciona la roda de paletes
This commit is contained in:
@@ -27,7 +27,6 @@ namespace globalInputs
|
|||||||
// Cambia la paleta de colores
|
// Cambia la paleta de colores
|
||||||
void switchPalette()
|
void switchPalette()
|
||||||
{
|
{
|
||||||
//options.video.palette = options.video.palette == Palette::ZXSPECTRUM ? Palette::ZXARNE : Palette::ZXSPECTRUM;
|
|
||||||
Screen::get()->nextPalette();
|
Screen::get()->nextPalette();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +101,7 @@ namespace globalInputs
|
|||||||
else if (Input::get()->checkInput(InputAction::TOGGLE_PALETTE, REPEAT_FALSE))
|
else if (Input::get()->checkInput(InputAction::TOGGLE_PALETTE, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
//Notifier::get()->show({"PALETTE " + std::string(options.video.palette == Palette::ZXSPECTRUM ? "ZX SPECTRUM" : "ZX ARNE")}, NotificationText::CENTER);
|
Notifier::get()->show({"PALETTE " + options.video.palette}, NotificationText::CENTER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -92,6 +92,9 @@ Screen::Screen(SDL_Window *window, SDL_Renderer *renderer)
|
|||||||
// Muestra la ventana
|
// Muestra la ventana
|
||||||
SDL_SetWindowPosition(window_, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
|
SDL_SetWindowPosition(window_, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
|
||||||
show();
|
show();
|
||||||
|
|
||||||
|
// Extrae el nombre de las paletas desde su ruta
|
||||||
|
processPaletteList();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
@@ -130,12 +133,11 @@ void Screen::startDrawOnBorder()
|
|||||||
void Screen::render()
|
void Screen::render()
|
||||||
{
|
{
|
||||||
// Renderiza sobre game_surface_ los overlays
|
// Renderiza sobre game_surface_ los overlays
|
||||||
//renderNotifications();
|
renderNotifications();
|
||||||
|
|
||||||
// Copia la surface a game_texture_
|
// Copia la surface a game_texture_
|
||||||
game_surface_->copyToTexture(renderer_, game_texture_);
|
game_surface_->copyToTexture(renderer_, game_texture_);
|
||||||
|
|
||||||
|
|
||||||
// Si está el borde activo, vuelca gameCanvas sobre borderCanvas
|
// Si está el borde activo, vuelca gameCanvas sobre borderCanvas
|
||||||
if (options.video.border.enabled)
|
if (options.video.border.enabled)
|
||||||
{
|
{
|
||||||
@@ -398,4 +400,25 @@ void Screen::nextPalette()
|
|||||||
|
|
||||||
game_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_)));
|
game_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_)));
|
||||||
border_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_)));
|
border_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_)));
|
||||||
|
|
||||||
|
options.video.palette = palettes_.at(current_palette_);
|
||||||
|
|
||||||
|
// Eliminar ".gif"
|
||||||
|
size_t pos = options.video.palette.find(".gif");
|
||||||
|
if (pos != std::string::npos)
|
||||||
|
{
|
||||||
|
options.video.palette.erase(pos, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convertir a mayúsculas
|
||||||
|
std::transform(options.video.palette.begin(), options.video.palette.end(), options.video.palette.begin(), ::toupper);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extrae los nombres de las paletas
|
||||||
|
void Screen::processPaletteList()
|
||||||
|
{
|
||||||
|
for (auto &palette : palettes_)
|
||||||
|
{
|
||||||
|
palette = getFileName(palette);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -63,6 +63,9 @@ private:
|
|||||||
// Reinicia los shaders
|
// Reinicia los shaders
|
||||||
void resetShaders();
|
void resetShaders();
|
||||||
|
|
||||||
|
// Extrae los nombres de las paletas
|
||||||
|
void processPaletteList();
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Screen(SDL_Window *window, SDL_Renderer *renderer);
|
Screen(SDL_Window *window, SDL_Renderer *renderer);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user