Cambio de paleta en los finales

This commit is contained in:
2022-11-08 10:17:55 +01:00
parent 8cb7f5bce5
commit 2f3c8cada9
5 changed files with 104 additions and 40 deletions

View File

@@ -9,7 +9,7 @@ Director::Director(int argc, char *argv[])
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_GAME; section.name = SECTION_PROG_ENDING2;
// Crea e inicializa las opciones del programa // Crea e inicializa las opciones del programa
iniOptions(); iniOptions();
@@ -309,10 +309,15 @@ void Director::loadResources(section_t section)
// Texturas // Texturas
std::vector<std::string> textureList; std::vector<std::string> textureList;
textureList.push_back("ending1.png"); textureList.push_back("ending1.png");
textureList.push_back("ending1_zxarne.png");
textureList.push_back("ending2.png"); textureList.push_back("ending2.png");
textureList.push_back("ending2_zxarne.png");
textureList.push_back("ending3.png"); textureList.push_back("ending3.png");
textureList.push_back("ending3_zxarne.png");
textureList.push_back("ending4.png"); textureList.push_back("ending4.png");
textureList.push_back("ending4_zxarne.png");
textureList.push_back("ending5.png"); textureList.push_back("ending5.png");
textureList.push_back("ending5_zxarne.png");
textureList.push_back("smb2.png"); textureList.push_back("smb2.png");
resource->loadTextures(textureList); resource->loadTextures(textureList);
@@ -1248,10 +1253,15 @@ bool Director::setFileList()
// Ending // Ending
asset->add("/data/ending/ending1.png", t_bitmap); asset->add("/data/ending/ending1.png", t_bitmap);
asset->add("/data/ending/ending1_zxarne.png", t_bitmap);
asset->add("/data/ending/ending2.png", t_bitmap); asset->add("/data/ending/ending2.png", t_bitmap);
asset->add("/data/ending/ending2_zxarne.png", t_bitmap);
asset->add("/data/ending/ending3.png", t_bitmap); asset->add("/data/ending/ending3.png", t_bitmap);
asset->add("/data/ending/ending3_zxarne.png", t_bitmap);
asset->add("/data/ending/ending4.png", t_bitmap); asset->add("/data/ending/ending4.png", t_bitmap);
asset->add("/data/ending/ending4_zxarne.png", t_bitmap);
asset->add("/data/ending/ending5.png", t_bitmap); asset->add("/data/ending/ending5.png", t_bitmap);
asset->add("/data/ending/ending5_zxarne.png", t_bitmap);
// Credits // Credits
asset->add("/data/credits/shine.png", t_bitmap); asset->add("/data/credits/shine.png", t_bitmap);

View File

@@ -191,15 +191,7 @@ void Ending::checkEventHandler()
break; break;
case SDL_SCANCODE_F5: case SDL_SCANCODE_F5:
// switchPalette(); switchPalette();
break;
case SDL_SCANCODE_RIGHT:
++scene %= 5;
break;
case SDL_SCANCODE_LEFT:
--scene %= 5;
break; break;
default: default:
@@ -319,13 +311,24 @@ void Ending::iniTexts()
void Ending::iniPics() void Ending::iniPics()
{ {
// Vector con las rutas y la posición // Vector con las rutas y la posición
std::vector<textAndPos_t> texts; std::vector<textAndPos_t> pics;
texts.push_back({"ending1.png", 48}); if (options->palette == p_zxspectrum)
texts.push_back({"ending2.png", 26}); {
texts.push_back({"ending3.png", 29}); pics.push_back({"ending1.png", 48});
texts.push_back({"ending4.png", 63}); pics.push_back({"ending2.png", 26});
texts.push_back({"ending5.png", 53}); pics.push_back({"ending3.png", 29});
pics.push_back({"ending4.png", 63});
pics.push_back({"ending5.png", 53});
}
else
{
pics.push_back({"ending1_zxarne.png", 48});
pics.push_back({"ending2_zxarne.png", 26});
pics.push_back({"ending3_zxarne.png", 29});
pics.push_back({"ending4_zxarne.png", 63});
pics.push_back({"ending5_zxarne.png", 53});
}
// Crea los sprites // Crea los sprites
for (auto sp : spritePics) for (auto sp : spritePics)
@@ -336,18 +339,18 @@ void Ending::iniPics()
} }
spritePics.clear(); spritePics.clear();
for (auto t : texts) for (auto p : pics)
{ {
endingTexture_t sp; endingTexture_t sp;
// Crea la texture // Crea la texture
sp.texture = resource->getTexture(t.caption); sp.texture = resource->getTexture(p.caption);
const int width = sp.texture->getWidth(); const int width = sp.texture->getWidth();
const int height = sp.texture->getHeight(); const int height = sp.texture->getHeight();
// Crea el sprite // Crea el sprite
sp.sprite = new Sprite({0, 0, width, height}, sp.texture, renderer); sp.sprite = new Sprite({0, 0, width, height}, sp.texture, renderer);
sp.sprite->setPos({(GAMECANVAS_WIDTH - width) / 2, t.pos}); sp.sprite->setPos({(GAMECANVAS_WIDTH - width) / 2, p.pos});
// Crea la coverTexture // Crea la coverTexture
sp.coverTexture = new Texture(renderer); sp.coverTexture = new Texture(renderer);
@@ -381,7 +384,7 @@ void Ending::iniPics()
// Crea el sprite // Crea el sprite
sp.coverSprite = new Sprite({0, 0, sp.coverTexture->getWidth(), sp.coverTexture->getHeight() - 8}, sp.coverTexture, renderer); sp.coverSprite = new Sprite({0, 0, sp.coverTexture->getWidth(), sp.coverTexture->getHeight() - 8}, sp.coverTexture, renderer);
sp.coverSprite->setPos({(GAMECANVAS_WIDTH - sp.coverTexture->getWidth()) / 2, t.pos}); sp.coverSprite->setPos({(GAMECANVAS_WIDTH - sp.coverTexture->getWidth()) / 2, p.pos});
sp.coverSprite->setSpriteClip(0, 8, -1, -1); sp.coverSprite->setSpriteClip(0, 8, -1, -1);
// Inicializa variables // Inicializa variables
@@ -624,4 +627,29 @@ void Ending::updateMusicVolume()
const int volume = 128 * step; const int volume = 128 * step;
JA_SetVolume(volume); JA_SetVolume(volume);
} }
}
// Cambia la paleta
void Ending::switchPalette()
{
if (options->palette == p_zxspectrum)
{
options->palette = p_zxarne;
spritePics.at(0).sprite->setTexture(resource->getTexture("ending1_zxarne.png"));
spritePics.at(1).sprite->setTexture(resource->getTexture("ending2_zxarne.png"));
spritePics.at(2).sprite->setTexture(resource->getTexture("ending3_zxarne.png"));
spritePics.at(3).sprite->setTexture(resource->getTexture("ending4_zxarne.png"));
spritePics.at(4).sprite->setTexture(resource->getTexture("ending5_zxarne.png"));
}
else
{
options->palette = p_zxspectrum;
spritePics.at(0).sprite->setTexture(resource->getTexture("ending1.png"));
spritePics.at(1).sprite->setTexture(resource->getTexture("ending2.png"));
spritePics.at(2).sprite->setTexture(resource->getTexture("ending3.png"));
spritePics.at(3).sprite->setTexture(resource->getTexture("ending4.png"));
spritePics.at(4).sprite->setTexture(resource->getTexture("ending5.png"));
}
} }

View File

@@ -108,6 +108,9 @@ private:
// Actualiza el volumen de la musica // Actualiza el volumen de la musica
void updateMusicVolume(); void updateMusicVolume();
// Cambia la paleta
void switchPalette();
public: public:
// Constructor // Constructor
Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options);

View File

@@ -225,7 +225,7 @@ void Ending2::checkEventHandler()
break; break;
case SDL_SCANCODE_F5: case SDL_SCANCODE_F5:
// switchPalette(); switchPalette();
break; break;
default: default:
@@ -284,49 +284,63 @@ void Ending2::iniSpriteList()
spriteList.clear(); spriteList.clear();
// Añade los valores // Añade los valores
spriteList.push_back("abad"); spriteList.push_back("bin");
spriteList.push_back("abad_bell"); spriteList.push_back("diskette");
spriteList.push_back("bird");
spriteList.push_back("chip");
spriteList.push_back("code");
spriteList.push_back("paco");
spriteList.push_back("printer");
spriteList.push_back("bell");
spriteList.push_back("dong");
spriteList.push_back("amstrad_cs"); spriteList.push_back("amstrad_cs");
spriteList.push_back("breakout");
spriteList.push_back("arounder_fly"); spriteList.push_back("arounder_fly");
spriteList.push_back("arounder_stop"); spriteList.push_back("arounder_stop");
spriteList.push_back("arounder_walk"); spriteList.push_back("arounder_walk");
spriteList.push_back("arounders_door"); spriteList.push_back("arounders_door");
spriteList.push_back("arounders_machine"); spriteList.push_back("arounders_machine");
spriteList.push_back("abad");
spriteList.push_back("abad_bell");
spriteList.push_back("bat"); spriteList.push_back("bat");
spriteList.push_back("batman_bell"); spriteList.push_back("batman_bell");
spriteList.push_back("batman_fire"); spriteList.push_back("batman_fire");
spriteList.push_back("batman"); spriteList.push_back("batman");
spriteList.push_back("bell");
spriteList.push_back("bin");
spriteList.push_back("bird");
spriteList.push_back("breakout");
spriteList.push_back("bry");
spriteList.push_back("chip");
spriteList.push_back("code");
spriteList.push_back("demon"); spriteList.push_back("demon");
spriteList.push_back("heavy"); spriteList.push_back("heavy");
spriteList.push_back("dimallas"); spriteList.push_back("dimallas");
spriteList.push_back("diskette");
spriteList.push_back("dong");
spriteList.push_back("guitar"); spriteList.push_back("guitar");
spriteList.push_back("jb_alien"); spriteList.push_back("jb_alien");
spriteList.push_back("jb_human"); spriteList.push_back("jb_human");
spriteList.push_back("bry");
spriteList.push_back("jailer"); spriteList.push_back("jailer");
spriteList.push_back("jailer2"); spriteList.push_back("jailer2");
spriteList.push_back("jailer3"); spriteList.push_back("jailer3");
spriteList.push_back("lamp"); spriteList.push_back("lamp");
spriteList.push_back("macaronni_ted"); spriteList.push_back("macaronni_ted");
spriteList.push_back("matatunos"); spriteList.push_back("matatunos");
spriteList.push_back("mummy");
spriteList.push_back("paco");
spriteList.push_back("printer");
spriteList.push_back("qvoid");
spriteList.push_back("sam");
spriteList.push_back("sigmasua");
spriteList.push_back("spider");
spriteList.push_back("tuno"); spriteList.push_back("tuno");
spriteList.push_back("mummy");
spriteList.push_back("sam");
spriteList.push_back("qvoid");
spriteList.push_back("sigmasua");
spriteList.push_back("tv_panel"); spriteList.push_back("tv_panel");
spriteList.push_back("tv"); spriteList.push_back("tv");
spriteList.push_back("spider");
spriteList.push_back("shock"); spriteList.push_back("shock");
spriteList.push_back("wave"); spriteList.push_back("wave");
@@ -531,7 +545,7 @@ void Ending2::createTexts()
// Crea los últimos textos // Crea los últimos textos
// El primer texto va a continuación del ultimo spriteText // El primer texto va a continuación del ultimo spriteText
const int start = spriteTexts.back()->getPosY() + text->getCharacterSize() * 6; const int start = spriteTexts.back()->getPosY() + text->getCharacterSize() * 15;
list.clear(); list.clear();
list.push_back("THANK YOU"); list.push_back("THANK YOU");
list.push_back("FOR PLAYING!"); list.push_back("FOR PLAYING!");
@@ -612,4 +626,10 @@ void Ending2::updateMusicVolume()
const int volume = 128 * step; const int volume = 128 * step;
JA_SetVolume(volume); JA_SetVolume(volume);
} }
}
// Cambia la paleta
void Ending2::switchPalette()
{
options->palette = (options->palette == p_zxspectrum) ? p_zxarne : p_zxspectrum;
} }

View File

@@ -110,6 +110,9 @@ private:
// Actualiza el volumen de la musica // Actualiza el volumen de la musica
void updateMusicVolume(); void updateMusicVolume();
// Cambia la paleta
void switchPalette();
public: public:
// Constructor // Constructor
Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options); Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options);