#pragma once #include "scenes/palette_fade.hpp" #include "scenes/scene.hpp" #include "scenes/surface_handle.hpp" namespace scenes { // Pantalla de "game over". Reemplaça `ModuleSequence::doMort()`. // // Flux: // 1. Carrega gfx/gameover.gif, arranca música "music/00000001.ogg", fade-in de paleta. // 2. Mostra la pantalla ~10 segons o fins que l'usuari polse una tecla. // 3. Arranca música del menú ("music/00000003.ogg") i fade-out de paleta. // 4. Marca num_piramide=0 i retorna nextState=1 perquè el Director // passe a l'escena del menú. class MortScene : 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 1; } private: enum class Phase { FadingIn, Showing, FadingOut, Done }; SurfaceHandle gfx_; PaletteFade fade_; Phase phase_{Phase::FadingIn}; int remaining_ms_{10000}; // 1000 ticks × 10 ms/tick del doMort original }; } // namespace scenes