#pragma once #include #include "core/scene/scene.hpp" class Surface; // Escena del logotip de l'editora. Durada fixa (5 s) o skip amb qualsevol // tecla no reservada. Quan expira, publica un `ExitRequest` cap a TITLE; // Director és qui construeix la nova escena (l'escena no coneix els altres // tipus i es pot exercir en tests sense arrossegar dependències). // // Pinta el GIF `data/logo/logo_jailgames.gif` centrat dins del canvas // lògic, amb la seua paleta nadiua (no s'aplica la paleta UI). Si arriba // amb `reset=true` (acció "Reiniciar" del menú de servei), atura la // música i tots els sons al constructor — així el següent LOGO arrenca // silenciós encara que veníssem del joc en marxa. class LogoScene : public Scene { public: static constexpr int DURATION_MS = 5000; LogoScene(std::shared_ptr logo, bool reset); ~LogoScene() override; void update(int delta_ms) override; void render() override; private: std::shared_ptr logo_; int timer_ms_{DURATION_MS}; };