Files
projecte_2026/source/game/scene_manager.hpp
2026-04-11 16:25:56 +02:00

35 lines
1.3 KiB
C++

#pragma once
#include <cstdint>
/*
Namespace SceneManager: gestiona el flujo entre las diferentes escenas del juego.
Define las escenas principales del programa y las opciones de transición entre ellas.
Proporciona variables globales inline para gestionar el estado actual de la escena.
*/
namespace SceneManager {
// --- Escenas del programa ---
enum class Scene : std::uint8_t {
LOGO, // Pantalla del logo
TITLE, // Pantalla de título/menú principal
GAME, // Juego principal
RESTART_CURRENT, // Especial: reinicia la escena que estaba corriendo
QUIT // Salir del programa
};
// --- Opciones para transiciones entre escenas ---
enum class Options : std::uint8_t {
NONE, // Sin opciones especiales
LOGO_TO_TITLE, // Del logo al título
};
// --- Variables de estado globales ---
inline Scene current = Scene::LOGO; // Escena actual (en _DEBUG sobrescrito por Director tras cargar debug.yaml)
inline Options options = Options::LOGO_TO_TITLE; // Opciones de la escena actual
inline Scene scene_before_restart = Scene::LOGO; // escena a relanzar tras RESTART_CURRENT
} // namespace SceneManager