fix: tidy scenes (slides/secreta enums UPPER_CASE) i mapa membres _

This commit is contained in:
2026-05-16 14:46:22 +02:00
parent bbcc10da81
commit 4cac807ce2
6 changed files with 165 additions and 165 deletions
+69 -69
View File
@@ -7,102 +7,102 @@
#include "core/jail/jinput.hpp" #include "core/jail/jinput.hpp"
Mapa::Mapa(Jd8::Surface gfx, Prota* sam) { Mapa::Mapa(Jd8::Surface gfx, Prota* sam) {
this->gfx = gfx; this->gfx_ = gfx;
this->sam = sam; this->sam_ = sam;
this->preparaFondoEstatic(); this->preparaFondoEstatic();
this->preparaTombes(); this->preparaTombes();
this->ultim_vertex.columna = 255; this->ultim_vertex_.columna = 255;
this->frame_torxes = 0; this->frame_torxes_ = 0;
this->farao = false; this->farao_ = false;
this->clau = false; this->clau_ = false;
this->porta_oberta = false; this->porta_oberta_ = false;
this->nova_momia = false; this->nova_momia_ = false;
} }
Mapa::~Mapa() { Mapa::~Mapa() {
Jd8::freeSurface(this->fondo); Jd8::freeSurface(this->fondo_);
} }
void Mapa::draw() { void Mapa::draw() {
if (info::ctx.num_piramide != 4) { if (info::ctx.num_piramide != 4) {
switch (sam->o) { switch (sam_->o) {
case 0: // Down case 0: // Down
Jd8::blitCKToSurface(sam->x, sam->y, this->gfx, 15, 125 + sam->frame_pejades, 15, 1, this->fondo, 255); Jd8::blitCKToSurface(sam_->x, sam_->y, this->gfx_, 15, 125 + sam_->frame_pejades, 15, 1, this->fondo_, 255);
break; break;
case 1: // Up case 1: // Up
Jd8::blitCKToSurface(sam->x, sam->y + 15, this->gfx, 0, 125 + (14 - sam->frame_pejades), 15, 1, this->fondo, 255); Jd8::blitCKToSurface(sam_->x, sam_->y + 15, this->gfx_, 0, 125 + (14 - sam_->frame_pejades), 15, 1, this->fondo_, 255);
break; break;
case 2: // Right case 2: // Right
Jd8::blitCKToSurface(sam->x + 7, sam->y, this->gfx, 30 + sam->frame_pejades, 125, 1, 15, this->fondo, 255); Jd8::blitCKToSurface(sam_->x + 7, sam_->y, this->gfx_, 30 + sam_->frame_pejades, 125, 1, 15, this->fondo_, 255);
break; break;
case 3: // Left case 3: // Left
Jd8::blitCKToSurface(sam->x + 8, sam->y, this->gfx, 45 + (14 - sam->frame_pejades), 125, 1, 15, this->fondo, 255); Jd8::blitCKToSurface(sam_->x + 8, sam_->y, this->gfx_, 45 + (14 - sam_->frame_pejades), 125, 1, 15, this->fondo_, 255);
break; break;
default: default:
break; break;
} }
} }
Jd8::blit(this->fondo); Jd8::blit(this->fondo_);
// Pinta tombes // Pinta tombes
for (int y = 0; y < 4; y++) { for (int y = 0; y < 4; y++) {
for (int x = 0; x < 4; x++) { for (int x = 0; x < 4; x++) {
Jd8::blitCK(35 + (x * 65), 45 + (y * 35), this->gfx, this->tombes[x + (y * 4)].x, this->tombes[x + (y * 4)].y, 50, 20, 255); Jd8::blitCK(35 + (x * 65), 45 + (y * 35), this->gfx_, this->tombes[x + (y * 4)].x, this->tombes[x + (y * 4)].y, 50, 20, 255);
} }
} }
Jd8::blitCK(45, 15, this->gfx, 30 + (this->frame_torxes * 25), 80, 25, 15, 255); Jd8::blitCK(45, 15, this->gfx_, 30 + (this->frame_torxes_ * 25), 80, 25, 15, 255);
Jd8::blitCK(95, 15, this->gfx, 30 + (this->frame_torxes * 25), 80, 25, 15, 255); Jd8::blitCK(95, 15, this->gfx_, 30 + (this->frame_torxes_ * 25), 80, 25, 15, 255);
Jd8::blitCK(195, 15, this->gfx, 30 + (this->frame_torxes * 25), 80, 25, 15, 255); Jd8::blitCK(195, 15, this->gfx_, 30 + (this->frame_torxes_ * 25), 80, 25, 15, 255);
Jd8::blitCK(245, 15, this->gfx, 30 + (this->frame_torxes * 25), 80, 25, 15, 255); Jd8::blitCK(245, 15, this->gfx_, 30 + (this->frame_torxes_ * 25), 80, 25, 15, 255);
}; };
void Mapa::update() { void Mapa::update() {
if (((sam->x - 20) % 65 == 0) && ((sam->y - 30) % 35 == 0) && ((this->ultim_vertex.columna != (sam->x - 20) / 65) || (this->ultim_vertex.fila != (sam->y - 30) / 35))) { if (((sam_->x - 20) % 65 == 0) && ((sam_->y - 30) % 35 == 0) && ((this->ultim_vertex_.columna != (sam_->x - 20) / 65) || (this->ultim_vertex_.fila != (sam_->y - 30) / 35))) {
this->vertex.columna = (sam->x - 20) / 65; this->vertex_.columna = (sam_->x - 20) / 65;
this->vertex.fila = (sam->y - 30) / 35; this->vertex_.fila = (sam_->y - 30) / 35;
if (this->ultim_vertex.columna != 255) { if (this->ultim_vertex_.columna != 255) {
this->comprovaUltimCami(); this->comprovaUltimCami();
} }
this->ultim_vertex = this->vertex; this->ultim_vertex_ = this->vertex_;
} }
if (this->porta_oberta && sam->x == 150 && sam->y == 30) { if (this->porta_oberta_ && sam_->x == 150 && sam_->y == 30) {
if (Ji::keyPressed(SDL_SCANCODE_UP)) { if (Ji::keyPressed(SDL_SCANCODE_UP)) {
this->sam->o = 4; this->sam_->o = 4;
this->sam->y -= 15; this->sam_->y -= 15;
} }
} }
if (Jg::getCycleCounter() % 8 == 0) { if (Jg::getCycleCounter() % 8 == 0) {
this->frame_torxes++; this->frame_torxes_++;
this->frame_torxes = this->frame_torxes % 4; this->frame_torxes_ = this->frame_torxes_ % 4;
} }
} }
auto Mapa::novaMomia() -> bool { auto Mapa::novaMomia() -> bool {
bool resultat = nova_momia; bool resultat = nova_momia_;
nova_momia = false; nova_momia_ = false;
return resultat; return resultat;
} }
void Mapa::preparaFondoEstatic() { void Mapa::preparaFondoEstatic() {
// Prepara el fondo esttic de l'habitaci // Prepara el fondo esttic de l'habitaci
this->fondo = Jd8::newSurface(); this->fondo_ = Jd8::newSurface();
if (info::ctx.num_piramide == 6) { if (info::ctx.num_piramide == 6) {
Jd8::blitToSurface(9, 2, this->gfx, 227, 185, 92, 7, this->fondo); // Text "SECRETA" Jd8::blitToSurface(9, 2, this->gfx_, 227, 185, 92, 7, this->fondo_); // Text "SECRETA"
} else { } else {
Jd8::blitToSurface(9, 2, this->gfx, 60, 185, 39, 7, this->fondo); // Text "NIVELL" Jd8::blitToSurface(9, 2, this->gfx_, 60, 185, 39, 7, this->fondo_); // Text "NIVELL"
Jd8::blitToSurface(72, 6, this->gfx, 153, 189, 3, 1, this->fondo); // Ralleta entre num piramide i num habitacio Jd8::blitToSurface(72, 6, this->gfx_, 153, 189, 3, 1, this->fondo_); // Ralleta entre num piramide i num habitacio
} }
Jd8::blitToSurface(130, 2, this->gfx, 225, 192, 19, 8, this->fondo); // Montonet de monedes + signe '=' Jd8::blitToSurface(130, 2, this->gfx_, 225, 192, 19, 8, this->fondo_); // Montonet de monedes + signe '='
Jd8::blitToSurface(220, 2, this->gfx, 160, 185, 48, 7, this->fondo); // Text "ENERGIA" Jd8::blitToSurface(220, 2, this->gfx_, 160, 185, 48, 7, this->fondo_); // Text "ENERGIA"
if (info::ctx.diners >= 200) { if (info::ctx.diners >= 200) {
Jd8::blitToSurface(175, 3, this->gfx, 60, 193, 7, 6, this->fondo); Jd8::blitToSurface(175, 3, this->gfx_, 60, 193, 7, 6, this->fondo_);
} }
// Pinta taulells // Pinta taulells
@@ -110,22 +110,22 @@ void Mapa::preparaFondoEstatic() {
for (int x = 0; x < 19; x++) { for (int x = 0; x < 19; x++) {
switch (info::ctx.num_piramide) { switch (info::ctx.num_piramide) {
case 1: case 1:
Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx, 0, 80, 15, 15, this->fondo); Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx_, 0, 80, 15, 15, this->fondo_);
break; break;
case 2: case 2:
Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx, 25, 95, 15, 15, this->fondo); Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx_, 25, 95, 15, 15, this->fondo_);
break; break;
case 3: case 3:
Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx, 40, 95, 15, 15, this->fondo); Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx_, 40, 95, 15, 15, this->fondo_);
break; break;
case 4: case 4:
Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx, 175 + ((rand() % 3) * 15), 80, 15, 15, this->fondo); Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx_, 175 + ((rand() % 3) * 15), 80, 15, 15, this->fondo_);
break; break;
case 5: case 5:
Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx, 130, 80, 15, 15, this->fondo); Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx_, 130, 80, 15, 15, this->fondo_);
break; break;
case 6: case 6:
Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx, 145, 80, 15, 15, this->fondo); Jd8::blitToSurface(20 + (x * 15), 30 + (y * 15), this->gfx_, 145, 80, 15, 15, this->fondo_);
break; break;
default: default:
break; break;
@@ -134,28 +134,28 @@ void Mapa::preparaFondoEstatic() {
} }
// Pinta vores de les parets // Pinta vores de les parets
Jd8::blitCKToSurface(5, 15, this->gfx, 30, 110, 15, 15, this->fondo, 255); Jd8::blitCKToSurface(5, 15, this->gfx_, 30, 110, 15, 15, this->fondo_, 255);
Jd8::blitCKToSurface(295, 15, this->gfx, 45, 110, 15, 15, this->fondo, 255); Jd8::blitCKToSurface(295, 15, this->gfx_, 45, 110, 15, 15, this->fondo_, 255);
Jd8::blitCKToSurface(5, 180, this->gfx, 0, 155, 15, 20, this->fondo, 255); Jd8::blitCKToSurface(5, 180, this->gfx_, 0, 155, 15, 20, this->fondo_, 255);
Jd8::blitCKToSurface(295, 180, this->gfx, 15, 155, 15, 20, this->fondo, 255); Jd8::blitCKToSurface(295, 180, this->gfx_, 15, 155, 15, 20, this->fondo_, 255);
// Pinta parets verticals // Pinta parets verticals
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
Jd8::blitToSurface(5, 30 + (i * 15), this->gfx, 0, 110, 15, 15, this->fondo); Jd8::blitToSurface(5, 30 + (i * 15), this->gfx_, 0, 110, 15, 15, this->fondo_);
Jd8::blitToSurface(295, 30 + (i * 15), this->gfx, 15, 110, 15, 15, this->fondo); Jd8::blitToSurface(295, 30 + (i * 15), this->gfx_, 15, 110, 15, 15, this->fondo_);
} }
// Pinta parets hortzintals // Pinta parets hortzintals
for (int i = 0; i < 11; i++) { for (int i = 0; i < 11; i++) {
Jd8::blitToSurface(20 + (i * 25), 185, this->gfx, 0, 95, 25, 15, this->fondo); Jd8::blitToSurface(20 + (i * 25), 185, this->gfx_, 0, 95, 25, 15, this->fondo_);
Jd8::blitToSurface(20 + (i * 25), 15, this->gfx, 0, 95, 25, 15, this->fondo); Jd8::blitToSurface(20 + (i * 25), 15, this->gfx_, 0, 95, 25, 15, this->fondo_);
} }
// Pinta la porta // Pinta la porta
Jd8::blitCKToSurface(150, 18, this->gfx, 0, 143, 15, 12, this->fondo, 255); Jd8::blitCKToSurface(150, 18, this->gfx_, 0, 143, 15, 12, this->fondo_, 255);
if (info::ctx.num_piramide == 2) { if (info::ctx.num_piramide == 2) {
Jd8::blitToSurface(5, 100, this->gfx, 30, 140, 15, 15, this->fondo); Jd8::blitToSurface(5, 100, this->gfx_, 30, 140, 15, 15, this->fondo_);
} }
} }
@@ -204,12 +204,12 @@ auto minim(Uint8 a, Uint8 b) -> Uint8 {
} }
void Mapa::comprovaUltimCami() { void Mapa::comprovaUltimCami() {
Uint8 col_aux = abs(this->vertex.columna - this->ultim_vertex.columna); Uint8 col_aux = abs(this->vertex_.columna - this->ultim_vertex_.columna);
Uint8 fil_aux = abs(this->vertex.fila - this->ultim_vertex.fila); Uint8 fil_aux = abs(this->vertex_.fila - this->ultim_vertex_.fila);
if (col_aux > fil_aux) { // Cam horitzontal if (col_aux > fil_aux) { // Cam horitzontal
Uint8 cami_fila = this->vertex.fila; Uint8 cami_fila = this->vertex_.fila;
Uint8 cami_columna = minim(this->vertex.columna, this->ultim_vertex.columna); Uint8 cami_columna = minim(this->vertex_.columna, this->ultim_vertex_.columna);
Sint8 caixa_avall = (cami_fila << 2) + cami_columna; Sint8 caixa_avall = (cami_fila << 2) + cami_columna;
Sint8 caixa_amunt = caixa_avall - 4; Sint8 caixa_amunt = caixa_avall - 4;
@@ -223,8 +223,8 @@ void Mapa::comprovaUltimCami() {
this->comprovaCaixa(caixa_amunt); this->comprovaCaixa(caixa_amunt);
} }
} else { // Cam vertical } else { // Cam vertical
Uint8 cami_columna = this->vertex.columna; Uint8 cami_columna = this->vertex_.columna;
Uint8 cami_fila = minim(this->vertex.fila, this->ultim_vertex.fila); Uint8 cami_fila = minim(this->vertex_.fila, this->ultim_vertex_.fila);
Sint8 caixa_dreta = (cami_fila << 2) + cami_columna; Sint8 caixa_dreta = (cami_fila << 2) + cami_columna;
Sint8 caixa_esquerra = caixa_dreta - 1; Sint8 caixa_esquerra = caixa_dreta - 1;
@@ -265,26 +265,26 @@ void Mapa::comprovaCaixa(Uint8 num) {
break; break;
case CONTE_FARAO: case CONTE_FARAO:
this->tombes[num].x = 150; this->tombes[num].x = 150;
this->farao = true; this->farao_ = true;
break; break;
case CONTE_CLAU: case CONTE_CLAU:
this->tombes[num].x = 200; this->tombes[num].x = 200;
this->clau = true; this->clau_ = true;
break; break;
case CONTE_MOMIA: case CONTE_MOMIA:
this->tombes[num].y = 175; this->tombes[num].y = 175;
this->nova_momia = true; this->nova_momia_ = true;
break; break;
case CONTE_PERGAMI: case CONTE_PERGAMI:
this->tombes[num].x = 250; this->tombes[num].x = 250;
this->sam->pergami = true; this->sam_->pergami = true;
break; break;
case CONTE_DIAMANT: case CONTE_DIAMANT:
this->tombes[num].y = 70; this->tombes[num].y = 70;
info::ctx.diamants++; info::ctx.diamants++;
info::ctx.diners += VALOR_DIAMANT; info::ctx.diners += VALOR_DIAMANT;
if (info::ctx.diamants == 16) { if (info::ctx.diamants == 16) {
this->farao = this->clau = true; this->farao_ = this->clau_ = true;
} }
break; break;
default: default:
@@ -295,8 +295,8 @@ void Mapa::comprovaCaixa(Uint8 num) {
} }
void Mapa::comprovaPorta() { void Mapa::comprovaPorta() {
if (this->clau && this->farao) { if (this->clau_ && this->farao_) {
Jd8::blitCKToSurface(150, 18, this->gfx, 15, 143, 15, 12, this->fondo, 255); Jd8::blitCKToSurface(150, 18, this->gfx_, 15, 143, 15, 12, this->fondo_, 255);
porta_oberta = true; porta_oberta_ = true;
} }
} }
+10 -10
View File
@@ -53,16 +53,16 @@ class Mapa {
void comprovaUltimCami(); void comprovaUltimCami();
void comprovaPorta(); void comprovaPorta();
Jd8::Surface gfx; Jd8::Surface gfx_;
Jd8::Surface fondo; Jd8::Surface fondo_;
Vertex vertex; Vertex vertex_;
Vertex ultim_vertex; Vertex ultim_vertex_;
Uint8 frame_torxes; Uint8 frame_torxes_;
Prota* sam; Prota* sam_;
bool farao; bool farao_;
bool clau; bool clau_;
bool porta_oberta; bool porta_oberta_;
bool nova_momia; bool nova_momia_;
}; };
+24 -24
View File
@@ -54,7 +54,7 @@ namespace scenes {
pal_active_ = new Color[256]; pal_active_ = new Color[256];
std::memcpy(pal_active_, pal_aux_, 768); std::memcpy(pal_active_, pal_aux_, 768);
phase_ = Phase::InitialFadeOut; phase_ = Phase::INITIAL_FADE_OUT;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
@@ -78,20 +78,20 @@ namespace scenes {
void SecretaScene::beginFinalFade() { void SecretaScene::beginFinalFade() {
Audio::get()->fadeOutMusic(250); Audio::get()->fadeOutMusic(250);
fade_.startFadeOut(); fade_.startFadeOut();
phase_ = Phase::FinalFadeOut; phase_ = Phase::FINAL_FADE_OUT;
} }
void SecretaScene::tick(int delta_ms) { void SecretaScene::tick(int delta_ms) {
// Skip per tecla (després del fade inicial, no mentre). Salta // Skip per tecla (després del fade inicial, no mentre). Salta
// directament al FinalFadeOut. Mateix patró que el vell, on // directament al FINAL_FADE_OUT. Mateix patró que el vell, on
// qualsevol tecla sortia del loop. // qualsevol tecla sortia del loop.
if (!skip_triggered_ && phase_ != Phase::InitialFadeOut && Ji::anyKey()) { if (!skip_triggered_ && phase_ != Phase::INITIAL_FADE_OUT && Ji::anyKey()) {
skip_triggered_ = true; skip_triggered_ = true;
beginFinalFade(); beginFinalFade();
} }
switch (phase_) { switch (phase_) {
case Phase::InitialFadeOut: case Phase::INITIAL_FADE_OUT:
fade_.tick(delta_ms); fade_.tick(delta_ms);
if (fade_.done()) { if (fade_.done()) {
// Ara main_palette (la vella) té tots els canals a 0. // Ara main_palette (la vella) té tots els canals a 0.
@@ -100,12 +100,12 @@ namespace scenes {
// futures escriptures a pal_active_ afecten la pantalla. // futures escriptures a pal_active_ afecten la pantalla.
Jd8::setScreenPalette(pal_active_); Jd8::setScreenPalette(pal_active_);
Jd8::clearScreen(255); Jd8::clearScreen(255);
phase_ = Phase::Tomba1ScrollIn; phase_ = Phase::TOMBA1_SCROLL_IN;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
case Phase::Tomba1ScrollIn: { case Phase::TOMBA1_SCROLL_IN: {
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
const int contador = std::min(128, (phase_acc_ms_ / TICK_MS) + 1); const int contador = std::min(128, (phase_acc_ms_ / TICK_MS) + 1);
// Dos blits solapats: el primer avança a velocitat completa, // Dos blits solapats: el primer avança a velocitat completa,
@@ -113,63 +113,63 @@ namespace scenes {
Jd8::blit(70, 60, gfx_, 0, contador, 178, 70); Jd8::blit(70, 60, gfx_, 0, contador, 178, 70);
Jd8::blitCK(70, 60, gfx_, 178, contador >> 1, 142, 70, 255); Jd8::blitCK(70, 60, gfx_, 178, contador >> 1, 142, 70, 255);
if (phase_acc_ms_ >= TOMBA1_SCROLL_MS) { if (phase_acc_ms_ >= TOMBA1_SCROLL_MS) {
phase_ = Phase::Tomba1Hold; phase_ = Phase::TOMBA1_HOLD;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
} }
case Phase::Tomba1Hold: case Phase::TOMBA1_HOLD:
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
if (phase_acc_ms_ >= TOMBA1_HOLD_MS) { if (phase_acc_ms_ >= TOMBA1_HOLD_MS) {
swapToTomba2(); swapToTomba2();
phase_ = Phase::Tomba2ScrollIn; phase_ = Phase::TOMBA2_SCROLL_IN;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
case Phase::Tomba2ScrollIn: { case Phase::TOMBA2_SCROLL_IN: {
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
const int contador = std::min(94, (phase_acc_ms_ / TICK_MS) + 1); const int contador = std::min(94, (phase_acc_ms_ / TICK_MS) + 1);
Jd8::blit(55, 53, gfx_, 0, 158 - contador, 211, contador); Jd8::blit(55, 53, gfx_, 0, 158 - contador, 211, contador);
if (phase_acc_ms_ >= TOMBA2_SCROLL_MS) { if (phase_acc_ms_ >= TOMBA2_SCROLL_MS) {
phase_ = Phase::Tomba2Hold; phase_ = Phase::TOMBA2_HOLD;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
} }
case Phase::Tomba2Hold: case Phase::TOMBA2_HOLD:
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
if (phase_acc_ms_ >= TOMBA2_HOLD_MS) { if (phase_acc_ms_ >= TOMBA2_HOLD_MS) {
beginRedPulseSetup(); beginRedPulseSetup();
phase_ = Phase::Tomba2Reveal; phase_ = Phase::TOMBA2_REVEAL;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
case Phase::Tomba2Reveal: { case Phase::TOMBA2_REVEAL: {
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
const int contador = std::min(80, (phase_acc_ms_ / TICK_MS) + 1); const int contador = std::min(80, (phase_acc_ms_ / TICK_MS) + 1);
// Revelat horitzontal simètric: l'amplada creix 2px per tick // Revelat horitzontal simètric: l'amplada creix 2px per tick
// i el src_x es desplaça a l'esquerra el mateix. // i el src_x es desplaça a l'esquerra el mateix.
Jd8::blit(80, 68, gfx_, 160 - (contador * 2), 0, contador * 2, 64); Jd8::blit(80, 68, gfx_, 160 - (contador * 2), 0, contador * 2, 64);
if (phase_acc_ms_ >= TOMBA2_REVEAL_MS) { if (phase_acc_ms_ >= TOMBA2_REVEAL_MS) {
phase_ = Phase::Tomba2RevealHold; phase_ = Phase::TOMBA2_REVEAL_HOLD;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
} }
case Phase::Tomba2RevealHold: case Phase::TOMBA2_REVEAL_HOLD:
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
if (phase_acc_ms_ >= TOMBA2_REVEAL_HOLD_MS) { if (phase_acc_ms_ >= TOMBA2_REVEAL_HOLD_MS) {
phase_ = Phase::RedPulse; phase_ = Phase::RED_PULSE;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
case Phase::RedPulse: { case Phase::RED_PULSE: {
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
const int contador = std::min(51, phase_acc_ms_ / TICK_MS); const int contador = std::min(51, phase_acc_ms_ / TICK_MS);
// Anima el canal R dels índexs 254 i 253 (aquest a la meitat // Anima el canal R dels índexs 254 i 253 (aquest a la meitat
@@ -177,27 +177,27 @@ namespace scenes {
Jd8::setPaletteColor(254, contador + 12, 11, 11); Jd8::setPaletteColor(254, contador + 12, 11, 11);
Jd8::setPaletteColor(253, (contador + 12) >> 1, 11, 11); Jd8::setPaletteColor(253, (contador + 12) >> 1, 11, 11);
if (phase_acc_ms_ >= RED_PULSE_MS) { if (phase_acc_ms_ >= RED_PULSE_MS) {
phase_ = Phase::RedPulseHold; phase_ = Phase::RED_PULSE_HOLD;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
} }
case Phase::RedPulseHold: case Phase::RED_PULSE_HOLD:
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
if (phase_acc_ms_ >= RED_PULSE_HOLD_MS) { if (phase_acc_ms_ >= RED_PULSE_HOLD_MS) {
beginFinalFade(); beginFinalFade();
} }
break; break;
case Phase::FinalFadeOut: case Phase::FINAL_FADE_OUT:
fade_.tick(delta_ms); fade_.tick(delta_ms);
if (fade_.done()) { if (fade_.done()) {
phase_ = Phase::Done; phase_ = Phase::DONE;
} }
break; break;
case Phase::Done: case Phase::DONE:
break; break;
} }
} }
+13 -13
View File
@@ -33,22 +33,22 @@ namespace scenes {
void onEnter() override; void onEnter() override;
void tick(int delta_ms) override; void tick(int delta_ms) override;
[[nodiscard]] auto done() const -> bool override { return phase_ == Phase::Done; } [[nodiscard]] auto done() const -> bool override { return phase_ == Phase::DONE; }
[[nodiscard]] auto nextState() const -> int override { return 0; } [[nodiscard]] auto nextState() const -> int override { return 0; }
private: private:
enum class Phase : std::uint8_t { enum class Phase : std::uint8_t {
InitialFadeOut, INITIAL_FADE_OUT,
Tomba1ScrollIn, TOMBA1_SCROLL_IN,
Tomba1Hold, TOMBA1_HOLD,
Tomba2ScrollIn, TOMBA2_SCROLL_IN,
Tomba2Hold, TOMBA2_HOLD,
Tomba2Reveal, TOMBA2_REVEAL,
Tomba2RevealHold, TOMBA2_REVEAL_HOLD,
RedPulse, RED_PULSE,
RedPulseHold, RED_PULSE_HOLD,
FinalFadeOut, FINAL_FADE_OUT,
Done, DONE,
}; };
void swapToTomba2(); void swapToTomba2();
@@ -60,7 +60,7 @@ namespace scenes {
Jd8::Palette pal_active_{nullptr}; // propietat transferida a main_palette Jd8::Palette pal_active_{nullptr}; // propietat transferida a main_palette
PaletteFade fade_; PaletteFade fade_;
Phase phase_{Phase::InitialFadeOut}; Phase phase_{Phase::INITIAL_FADE_OUT};
int phase_acc_ms_{0}; int phase_acc_ms_{0};
bool skip_triggered_{false}; bool skip_triggered_{false};
}; };
+27 -27
View File
@@ -60,7 +60,7 @@ namespace scenes {
Jd8::clearScreen(BG_COLOR_INDEX); Jd8::clearScreen(BG_COLOR_INDEX);
phase_ = Phase::Slide1Enter; phase_ = Phase::SLIDE1_ENTER;
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
next_state_ = 0; next_state_ = 0;
} }
@@ -96,7 +96,7 @@ namespace scenes {
Audio::get()->fadeOutMusic(250); Audio::get()->fadeOutMusic(250);
} }
fade_.startFadeOut(); fade_.startFadeOut();
phase_ = Phase::FadeFinal; phase_ = Phase::FADE_FINAL;
} }
void SlidesScene::tick(int delta_ms) { void SlidesScene::tick(int delta_ms) {
@@ -109,18 +109,18 @@ namespace scenes {
Audio::get()->fadeOutMusic(250); Audio::get()->fadeOutMusic(250);
} }
fade_.startFadeOut(); fade_.startFadeOut();
phase_ = Phase::FadeFinal; phase_ = Phase::FADE_FINAL;
} }
switch (phase_) { switch (phase_) {
case Phase::Slide1Enter: case Phase::SLIDE1_ENTER:
case Phase::Slide2Enter: case Phase::SLIDE2_ENTER:
case Phase::Slide3Enter: { case Phase::SLIDE3_ENTER: {
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
int slide_idx = 2; int slide_idx = 2;
if (phase_ == Phase::Slide1Enter) { if (phase_ == Phase::SLIDE1_ENTER) {
slide_idx = 0; slide_idx = 0;
} else if (phase_ == Phase::Slide2Enter) { } else if (phase_ == Phase::SLIDE2_ENTER) {
slide_idx = 1; slide_idx = 1;
} }
const float t = std::min(1.0F, static_cast<float>(phase_acc_ms_) / static_cast<float>(SCROLL_MS)); const float t = std::min(1.0F, static_cast<float>(phase_acc_ms_) / static_cast<float>(SCROLL_MS));
@@ -131,55 +131,55 @@ namespace scenes {
if (phase_acc_ms_ >= SCROLL_MS) { if (phase_acc_ms_ >= SCROLL_MS) {
// Garanteix posició final exacta (pos_x=0). // Garanteix posició final exacta (pos_x=0).
drawSlide(slide_idx, 0); drawSlide(slide_idx, 0);
if (phase_ == Phase::Slide1Enter) { if (phase_ == Phase::SLIDE1_ENTER) {
phase_ = Phase::Slide1Hold; phase_ = Phase::SLIDE1_HOLD;
} else if (phase_ == Phase::Slide2Enter) { } else if (phase_ == Phase::SLIDE2_ENTER) {
phase_ = Phase::Slide2Hold; phase_ = Phase::SLIDE2_HOLD;
} else { } else {
phase_ = Phase::Slide3Hold; phase_ = Phase::SLIDE3_HOLD;
} }
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
} }
case Phase::Slide1Hold: case Phase::SLIDE1_HOLD:
case Phase::Slide2Hold: case Phase::SLIDE2_HOLD:
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
if (phase_acc_ms_ >= HOLD_MS) { if (phase_acc_ms_ >= HOLD_MS) {
fade_.startFadeOut(); fade_.startFadeOut();
if (phase_ == Phase::Slide1Hold) { if (phase_ == Phase::SLIDE1_HOLD) {
phase_ = Phase::FadeOut1; phase_ = Phase::FADE_OUT1;
} else { } else {
phase_ = Phase::FadeOut2; phase_ = Phase::FADE_OUT2;
} }
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
case Phase::Slide3Hold: case Phase::SLIDE3_HOLD:
phase_acc_ms_ += delta_ms; phase_acc_ms_ += delta_ms;
if (phase_acc_ms_ >= HOLD_MS) { if (phase_acc_ms_ >= HOLD_MS) {
beginFinalFade(); beginFinalFade();
} }
break; break;
case Phase::FadeOut1: case Phase::FADE_OUT1:
case Phase::FadeOut2: case Phase::FADE_OUT2:
fade_.tick(delta_ms); fade_.tick(delta_ms);
if (fade_.done()) { if (fade_.done()) {
restorePalette(); restorePalette();
Jd8::clearScreen(BG_COLOR_INDEX); Jd8::clearScreen(BG_COLOR_INDEX);
if (phase_ == Phase::FadeOut1) { if (phase_ == Phase::FADE_OUT1) {
phase_ = Phase::Slide2Enter; phase_ = Phase::SLIDE2_ENTER;
} else { } else {
phase_ = Phase::Slide3Enter; phase_ = Phase::SLIDE3_ENTER;
} }
phase_acc_ms_ = 0; phase_acc_ms_ = 0;
} }
break; break;
case Phase::FadeFinal: case Phase::FADE_FINAL:
fade_.tick(delta_ms); fade_.tick(delta_ms);
if (fade_.done()) { if (fade_.done()) {
if (num_piramide_at_start_ == 7) { if (num_piramide_at_start_ == 7) {
@@ -188,11 +188,11 @@ namespace scenes {
} else { } else {
next_state_ = 0; next_state_ = 0;
} }
phase_ = Phase::Done; phase_ = Phase::DONE;
} }
break; break;
case Phase::Done: case Phase::DONE:
break; break;
} }
} }
+22 -22
View File
@@ -18,18 +18,18 @@ namespace scenes {
// - altre cas (num_piramide == 1): gfx/intro.gif, sense música nova // - altre cas (num_piramide == 1): gfx/intro.gif, sense música nova
// //
// Flux: // Flux:
// Slide1Enter (1600 ms scroll dreta→centre, easing outCubic) // SLIDE1_ENTER (1600 ms scroll dreta→centre, easing outCubic)
// → Slide1Hold (4600 ms) // → SLIDE1_HOLD (4600 ms)
// → FadeOut1 + clear + reset paleta // → FADE_OUT1 + clear + reset paleta
// → Slide2Enter (1600 ms scroll esquerra→centre) // → SLIDE2_ENTER (1600 ms scroll esquerra→centre)
// → Slide2Hold (4600 ms) // → SLIDE2_HOLD (4600 ms)
// → FadeOut2 + clear + reset paleta // → FADE_OUT2 + clear + reset paleta
// → Slide3Enter (1600 ms scroll dreta→centre) // → SLIDE3_ENTER (1600 ms scroll dreta→centre)
// → Slide3Hold (4600 ms) // → SLIDE3_HOLD (4600 ms)
// → FadeFinal (Ja::fadeOutMusic si num_piramide != 7 + fade paleta) // → FADE_FINAL (Ja::fadeOutMusic si num_piramide != 7 + fade paleta)
// → Done // → Done
// //
// Qualsevol tecla salta directament a FadeFinal (sense cortar la música // Qualsevol tecla salta directament a FADE_FINAL (sense cortar la música
// si hem entrat per num_piramide==7, per fidelitat al vell). // si hem entrat per num_piramide==7, per fidelitat al vell).
// //
// NextState: // NextState:
@@ -42,21 +42,21 @@ namespace scenes {
void onEnter() override; void onEnter() override;
void tick(int delta_ms) override; void tick(int delta_ms) override;
[[nodiscard]] auto done() const -> bool override { return phase_ == Phase::Done; } [[nodiscard]] auto done() const -> bool override { return phase_ == Phase::DONE; }
[[nodiscard]] auto nextState() const -> int override { return next_state_; } [[nodiscard]] auto nextState() const -> int override { return next_state_; }
private: private:
enum class Phase : std::uint8_t { enum class Phase : std::uint8_t {
Slide1Enter, SLIDE1_ENTER,
Slide1Hold, SLIDE1_HOLD,
FadeOut1, FADE_OUT1,
Slide2Enter, SLIDE2_ENTER,
Slide2Hold, SLIDE2_HOLD,
FadeOut2, FADE_OUT2,
Slide3Enter, SLIDE3_ENTER,
Slide3Hold, SLIDE3_HOLD,
FadeFinal, FADE_FINAL,
Done, DONE,
}; };
// Pinta un slide amb desplaçament horitzontal. `slide_idx` = 0..2 // Pinta un slide amb desplaçament horitzontal. `slide_idx` = 0..2
@@ -71,7 +71,7 @@ namespace scenes {
Jd8::Palette pal_active_{nullptr}; // propietat transferida a main_palette Jd8::Palette pal_active_{nullptr}; // propietat transferida a main_palette
PaletteFade fade_; PaletteFade fade_;
Phase phase_{Phase::Slide1Enter}; Phase phase_{Phase::SLIDE1_ENTER};
int phase_acc_ms_{0}; int phase_acc_ms_{0};
int num_piramide_at_start_{1}; int num_piramide_at_start_{1};
int next_state_{0}; int next_state_{0};