Files
aee-arcade/source/game/scenes/logo_scene.hpp
T

33 lines
1.0 KiB
C++

#pragma once
#include <memory>
#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<Surface> logo, bool reset);
~LogoScene() override;
void update(int delta_ms) override;
void render() override;
private:
std::shared_ptr<Surface> logo_;
int timer_ms_{DURATION_MS};
};