Implementado el cambio de paleta durante el juego

This commit is contained in:
2022-10-25 21:51:30 +02:00
parent bcb56e17f2
commit dc84ed79d6
31 changed files with 297 additions and 164 deletions

View File

@@ -9,7 +9,7 @@ Director::Director(std::string path)
section.name = SECTION_PROG_LOGO;
section.subsection = SUBSECTION_LOGO_TO_INTRO;
section.name = SECTION_PROG_CREDITS;
section.name = SECTION_PROG_LOGO;
// Crea el objeto que controla los ficheros de recursos
asset = new Asset(path.substr(0, path.find_last_of("\\/")));
@@ -70,6 +70,7 @@ bool Director::loadConfig()
options->keepAspect = true;
options->borderEnabled = true;
options->borderSize = 0.1f;
options->palette = p_zxspectrum;
// Indicador de éxito en la carga
bool success = true;
@@ -167,6 +168,7 @@ bool Director::saveConfig()
file << "keepAspect=" + boolToString(options->keepAspect) + "\n";
file << "borderEnabled=" + boolToString(options->borderEnabled) + "\n";
file << "borderSize=" + std::to_string(options->borderSize) + "\n";
file << "palette=" + std::to_string(options->palette) + "\n";
// Cierra el fichero
file.close();
@@ -246,6 +248,21 @@ bool Director::setOptions(options_t *options, std::string var, std::string value
}
}
else if (var == "palette")
{
const int pal = std::stoi(value);
if (pal == 0)
{
options->palette = p_zxspectrum;
}
else if (pal == 1)
{
options->palette = p_zxarne;
}
}
else if (var == "")
{
}
@@ -623,6 +640,8 @@ bool Director::setFileList()
// Intro
asset->add("/data/title/loading_screen_bn.png", t_bitmap);
asset->add("/data/title/loading_screen_color.png", t_bitmap);
asset->add("/data/title/loading_screen_bn_zxarne.png", t_bitmap);
asset->add("/data/title/loading_screen_color_zxarne.png", t_bitmap);
// Credits
asset->add("/data/credits/shine.png", t_bitmap);
@@ -652,7 +671,7 @@ void Director::setSection(section_t section)
// Ejecuta la seccion de juego con el logo
void Director::runLogo()
{
logo = new Logo(renderer, screen, asset, section.subsection);
logo = new Logo(renderer, screen, asset, options, section.subsection);
setSection(logo->run());
delete logo;
}
@@ -660,7 +679,7 @@ void Director::runLogo()
// Ejecuta la seccion de juego de la introducción
void Director::runIntro()
{
intro = new Intro(renderer, screen, asset);
intro = new Intro(renderer, screen, asset, options);
setSection(intro->run());
delete intro;
}
@@ -672,7 +691,7 @@ void Director::runTitle()
{
JA_PlayMusic(music);
}
title = new Title(renderer, screen, asset);
title = new Title(renderer, screen, asset, options);
setSection(title->run());
delete title;
}
@@ -680,7 +699,7 @@ void Director::runTitle()
// Ejecuta la seccion de los creditos del juego
void Director::runCredits()
{
credits = new Credits(renderer, screen, asset);
credits = new Credits(renderer, screen, asset, options);
setSection(credits->run());
delete credits;
}
@@ -688,7 +707,7 @@ void Director::runCredits()
// Ejecuta la seccion de la demo, donde se ven pantallas del juego
void Director::runDemo()
{
demo = new Demo(renderer, screen, asset, debug);
demo = new Demo(renderer, screen, asset, options, debug);
setSection(demo->run());
delete demo;
}
@@ -697,7 +716,7 @@ void Director::runDemo()
void Director::runGame()
{
JA_StopMusic();
game = new Game(renderer, screen, asset, input, debug);
game = new Game(renderer, screen, asset, options, input, debug);
setSection(game->run());
delete game;
}
@@ -712,18 +731,23 @@ void Director::run()
case SECTION_PROG_LOGO:
runLogo();
break;
case SECTION_PROG_INTRO:
runIntro();
break;
case SECTION_PROG_TITLE:
runTitle();
break;
case SECTION_PROG_CREDITS:
runCredits();
break;
case SECTION_PROG_DEMO:
runDemo();
break;
case SECTION_PROG_GAME:
runGame();
break;