forked from jaildesigner-jailgames/jaildoctors_dilemma
Cambio de paleta en los finales
This commit is contained in:
@@ -9,7 +9,7 @@ Director::Director(int argc, char *argv[])
|
||||
section.name = SECTION_PROG_LOGO;
|
||||
section.subsection = SUBSECTION_LOGO_TO_INTRO;
|
||||
|
||||
section.name = SECTION_PROG_GAME;
|
||||
section.name = SECTION_PROG_ENDING2;
|
||||
|
||||
// Crea e inicializa las opciones del programa
|
||||
iniOptions();
|
||||
@@ -309,10 +309,15 @@ void Director::loadResources(section_t section)
|
||||
// Texturas
|
||||
std::vector<std::string> textureList;
|
||||
textureList.push_back("ending1.png");
|
||||
textureList.push_back("ending1_zxarne.png");
|
||||
textureList.push_back("ending2.png");
|
||||
textureList.push_back("ending2_zxarne.png");
|
||||
textureList.push_back("ending3.png");
|
||||
textureList.push_back("ending3_zxarne.png");
|
||||
textureList.push_back("ending4.png");
|
||||
textureList.push_back("ending4_zxarne.png");
|
||||
textureList.push_back("ending5.png");
|
||||
textureList.push_back("ending5_zxarne.png");
|
||||
textureList.push_back("smb2.png");
|
||||
|
||||
resource->loadTextures(textureList);
|
||||
@@ -1248,10 +1253,15 @@ bool Director::setFileList()
|
||||
|
||||
// Ending
|
||||
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_zxarne.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_zxarne.png", t_bitmap);
|
||||
asset->add("/data/ending/ending5.png", t_bitmap);
|
||||
asset->add("/data/ending/ending5_zxarne.png", t_bitmap);
|
||||
|
||||
// Credits
|
||||
asset->add("/data/credits/shine.png", t_bitmap);
|
||||
|
||||
@@ -191,15 +191,7 @@ void Ending::checkEventHandler()
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F5:
|
||||
// switchPalette();
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_RIGHT:
|
||||
++scene %= 5;
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_LEFT:
|
||||
--scene %= 5;
|
||||
switchPalette();
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -319,13 +311,24 @@ void Ending::iniTexts()
|
||||
void Ending::iniPics()
|
||||
{
|
||||
// Vector con las rutas y la posición
|
||||
std::vector<textAndPos_t> texts;
|
||||
std::vector<textAndPos_t> pics;
|
||||
|
||||
texts.push_back({"ending1.png", 48});
|
||||
texts.push_back({"ending2.png", 26});
|
||||
texts.push_back({"ending3.png", 29});
|
||||
texts.push_back({"ending4.png", 63});
|
||||
texts.push_back({"ending5.png", 53});
|
||||
if (options->palette == p_zxspectrum)
|
||||
{
|
||||
pics.push_back({"ending1.png", 48});
|
||||
pics.push_back({"ending2.png", 26});
|
||||
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
|
||||
for (auto sp : spritePics)
|
||||
@@ -336,18 +339,18 @@ void Ending::iniPics()
|
||||
}
|
||||
spritePics.clear();
|
||||
|
||||
for (auto t : texts)
|
||||
for (auto p : pics)
|
||||
{
|
||||
endingTexture_t sp;
|
||||
|
||||
// Crea la texture
|
||||
sp.texture = resource->getTexture(t.caption);
|
||||
sp.texture = resource->getTexture(p.caption);
|
||||
const int width = sp.texture->getWidth();
|
||||
const int height = sp.texture->getHeight();
|
||||
|
||||
// Crea el sprite
|
||||
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
|
||||
sp.coverTexture = new Texture(renderer);
|
||||
@@ -381,7 +384,7 @@ void Ending::iniPics()
|
||||
|
||||
// Crea el sprite
|
||||
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);
|
||||
|
||||
// Inicializa variables
|
||||
@@ -625,3 +628,28 @@ void Ending::updateMusicVolume()
|
||||
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"));
|
||||
}
|
||||
}
|
||||
@@ -108,6 +108,9 @@ private:
|
||||
// Actualiza el volumen de la musica
|
||||
void updateMusicVolume();
|
||||
|
||||
// Cambia la paleta
|
||||
void switchPalette();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options);
|
||||
|
||||
@@ -225,7 +225,7 @@ void Ending2::checkEventHandler()
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F5:
|
||||
// switchPalette();
|
||||
switchPalette();
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -284,49 +284,63 @@ void Ending2::iniSpriteList()
|
||||
spriteList.clear();
|
||||
|
||||
// Añade los valores
|
||||
spriteList.push_back("abad");
|
||||
spriteList.push_back("abad_bell");
|
||||
spriteList.push_back("bin");
|
||||
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("breakout");
|
||||
|
||||
spriteList.push_back("arounder_fly");
|
||||
spriteList.push_back("arounder_stop");
|
||||
spriteList.push_back("arounder_walk");
|
||||
spriteList.push_back("arounders_door");
|
||||
spriteList.push_back("arounders_machine");
|
||||
|
||||
spriteList.push_back("abad");
|
||||
spriteList.push_back("abad_bell");
|
||||
|
||||
spriteList.push_back("bat");
|
||||
spriteList.push_back("batman_bell");
|
||||
spriteList.push_back("batman_fire");
|
||||
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("heavy");
|
||||
spriteList.push_back("dimallas");
|
||||
spriteList.push_back("diskette");
|
||||
spriteList.push_back("dong");
|
||||
spriteList.push_back("guitar");
|
||||
|
||||
spriteList.push_back("jb_alien");
|
||||
spriteList.push_back("jb_human");
|
||||
|
||||
spriteList.push_back("bry");
|
||||
spriteList.push_back("jailer");
|
||||
spriteList.push_back("jailer2");
|
||||
spriteList.push_back("jailer3");
|
||||
|
||||
spriteList.push_back("lamp");
|
||||
spriteList.push_back("macaronni_ted");
|
||||
|
||||
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("mummy");
|
||||
spriteList.push_back("sam");
|
||||
|
||||
spriteList.push_back("qvoid");
|
||||
spriteList.push_back("sigmasua");
|
||||
|
||||
spriteList.push_back("tv_panel");
|
||||
spriteList.push_back("tv");
|
||||
|
||||
spriteList.push_back("spider");
|
||||
spriteList.push_back("shock");
|
||||
spriteList.push_back("wave");
|
||||
|
||||
@@ -531,7 +545,7 @@ void Ending2::createTexts()
|
||||
|
||||
// Crea los últimos textos
|
||||
// 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.push_back("THANK YOU");
|
||||
list.push_back("FOR PLAYING!");
|
||||
@@ -613,3 +627,9 @@ void Ending2::updateMusicVolume()
|
||||
JA_SetVolume(volume);
|
||||
}
|
||||
}
|
||||
|
||||
// Cambia la paleta
|
||||
void Ending2::switchPalette()
|
||||
{
|
||||
options->palette = (options->palette == p_zxspectrum) ? p_zxarne : p_zxspectrum;
|
||||
}
|
||||
@@ -110,6 +110,9 @@ private:
|
||||
// Actualiza el volumen de la musica
|
||||
void updateMusicVolume();
|
||||
|
||||
// Cambia la paleta
|
||||
void switchPalette();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options);
|
||||
|
||||
Reference in New Issue
Block a user