41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "scenes/palette_fade.hpp"
|
|
#include "scenes/scene.hpp"
|
|
#include "scenes/surface_handle.hpp"
|
|
|
|
namespace scenes {
|
|
|
|
// Banner pre-piràmide ("PIRÀMIDE X"). Reemplaça `ModuleSequence::doBanner()`.
|
|
//
|
|
// Flux:
|
|
// 1. Arranca música "music/00000004.ogg" i carrega gfx/ffase.gif.
|
|
// 2. Pinta títol, subtítol i número de piràmide segons info::ctx.num_piramide.
|
|
// 3. Fade-in de paleta.
|
|
// 4. Mostra ~5s o fins que es polse una tecla.
|
|
// 5. JA_FadeOutMusic(250) + fade-out de paleta.
|
|
// 6. Retorna nextState=0 per a entrar al ModuleGame.
|
|
//
|
|
// Registrat al SceneRegistry amb state_keys 2..5 (els num_piramide on
|
|
// el vell `doBanner()` es cridava).
|
|
class BannerScene : public Scene {
|
|
public:
|
|
void onEnter() override;
|
|
void tick(int delta_ms) override;
|
|
bool done() const override { return phase_ == Phase::Done; }
|
|
int nextState() const override { return 0; }
|
|
|
|
private:
|
|
enum class Phase { FadingIn,
|
|
Showing,
|
|
FadingOut,
|
|
Done };
|
|
|
|
SurfaceHandle gfx_;
|
|
PaletteFade fade_;
|
|
Phase phase_{Phase::FadingIn};
|
|
int remaining_ms_{5000};
|
|
};
|
|
|
|
} // namespace scenes
|