33 lines
1.0 KiB
C++
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};
|
|
};
|