clang-format
mogudes coses de config.yaml a debug.yaml
This commit is contained in:
@@ -9,58 +9,58 @@
|
||||
|
||||
namespace scenes {
|
||||
|
||||
// Intro "legacy" del wordmark JAILGAMES lletra a lletra + cicle de paleta.
|
||||
// Reemplaça `ModuleSequence::doIntro()`. S'activa quan
|
||||
// `Options::game.use_new_logo == false`; l'alternativa moderna és
|
||||
// `IntroNewLogoScene`.
|
||||
//
|
||||
// Flux:
|
||||
// 1. Carrega gfx/logo.gif, arranca música "music/00000003.ogg", pantalla negra
|
||||
// 1000 ms.
|
||||
// 2. Revelat: 15 passos (100 o 200 ms) que van acumulant les lletres
|
||||
// "JAILGAMES" d'esquerra a dreta amb un avió escombrant al final
|
||||
// de la paraula. Els passos 5, 11, 13 i 15 netegen la pantalla
|
||||
// per generar els parpelleigs finals.
|
||||
// 3. Cicle de paleta: 256 passos × 20 ms modificant els índexs 16..31.
|
||||
// 4. Espera final 200 ms.
|
||||
// 5. Transfereix el gfx_ a una `IntroSpritesScene` com a sub-escena
|
||||
// i li delega els ticks fins que acaba (anima el prota + momia +
|
||||
// mapa, amb 3 variants aleatòries). En acabar, setzea num_piramide
|
||||
// = 0 per passar al menú.
|
||||
//
|
||||
// Registrada al SceneRegistry amb state_key = 255: la mateixa factory que
|
||||
// per a IntroNewLogoScene, però retornada quan `use_new_logo == false`.
|
||||
class IntroScene : public Scene {
|
||||
public:
|
||||
IntroScene();
|
||||
~IntroScene() override;
|
||||
// Intro "legacy" del wordmark JAILGAMES lletra a lletra + cicle de paleta.
|
||||
// Reemplaça `ModuleSequence::doIntro()`. S'activa quan
|
||||
// `Options::game.use_new_logo == false`; l'alternativa moderna és
|
||||
// `IntroNewLogoScene`.
|
||||
//
|
||||
// Flux:
|
||||
// 1. Carrega gfx/logo.gif, arranca música "music/00000003.ogg", pantalla negra
|
||||
// 1000 ms.
|
||||
// 2. Revelat: 15 passos (100 o 200 ms) que van acumulant les lletres
|
||||
// "JAILGAMES" d'esquerra a dreta amb un avió escombrant al final
|
||||
// de la paraula. Els passos 5, 11, 13 i 15 netegen la pantalla
|
||||
// per generar els parpelleigs finals.
|
||||
// 3. Cicle de paleta: 256 passos × 20 ms modificant els índexs 16..31.
|
||||
// 4. Espera final 200 ms.
|
||||
// 5. Transfereix el gfx_ a una `IntroSpritesScene` com a sub-escena
|
||||
// i li delega els ticks fins que acaba (anima el prota + momia +
|
||||
// mapa, amb 3 variants aleatòries). En acabar, setzea num_piramide
|
||||
// = 0 per passar al menú.
|
||||
//
|
||||
// Registrada al SceneRegistry amb state_key = 255: la mateixa factory que
|
||||
// per a IntroNewLogoScene, però retornada quan `use_new_logo == false`.
|
||||
class IntroScene : public Scene {
|
||||
public:
|
||||
IntroScene();
|
||||
~IntroScene() override;
|
||||
|
||||
void onEnter() override;
|
||||
void tick(int delta_ms) override;
|
||||
bool done() const override { return phase_ == Phase::Done; }
|
||||
int nextState() const override { return 1; }
|
||||
void onEnter() override;
|
||||
void tick(int delta_ms) override;
|
||||
bool done() const override { return phase_ == Phase::Done; }
|
||||
int nextState() const override { return 1; }
|
||||
|
||||
private:
|
||||
enum class Phase {
|
||||
InitialWait, // 1000 ms pantalla negra
|
||||
Reveal, // 15 passos del wordmark
|
||||
PaletteCycle, // 256 × 20 ms mutant pal[16..31]
|
||||
FinalWait, // 200 ms abans de la sub-escena de sprites
|
||||
Sprites, // tick delegat a IntroSpritesScene fins que acaba
|
||||
Done,
|
||||
private:
|
||||
enum class Phase {
|
||||
InitialWait, // 1000 ms pantalla negra
|
||||
Reveal, // 15 passos del wordmark
|
||||
PaletteCycle, // 256 × 20 ms mutant pal[16..31]
|
||||
FinalWait, // 200 ms abans de la sub-escena de sprites
|
||||
Sprites, // tick delegat a IntroSpritesScene fins que acaba
|
||||
Done,
|
||||
};
|
||||
|
||||
void render();
|
||||
void advancePaletteCycle();
|
||||
|
||||
SurfaceHandle gfx_;
|
||||
JD8_Palette pal_{nullptr}; // propietat transferida a main_palette via SetScreenPalette
|
||||
std::unique_ptr<IntroSpritesScene> sprites_scene_;
|
||||
|
||||
Phase phase_{Phase::InitialWait};
|
||||
int phase_acc_ms_{0};
|
||||
int reveal_index_{0};
|
||||
int palette_step_{0};
|
||||
};
|
||||
|
||||
void render();
|
||||
void advancePaletteCycle();
|
||||
|
||||
SurfaceHandle gfx_;
|
||||
JD8_Palette pal_{nullptr}; // propietat transferida a main_palette via SetScreenPalette
|
||||
std::unique_ptr<IntroSpritesScene> sprites_scene_;
|
||||
|
||||
Phase phase_{Phase::InitialWait};
|
||||
int phase_acc_ms_{0};
|
||||
int reveal_index_{0};
|
||||
int palette_step_{0};
|
||||
};
|
||||
|
||||
} // namespace scenes
|
||||
|
||||
Reference in New Issue
Block a user