#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