#pragma once /* 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 { LOGO, // Pantalla del logo LOADING_SCREEN, // Pantalla de carga TITLE, // Pantalla de título/menú principal CREDITS, // Créditos del juego GAME, // Juego principal DEMO, // Modo demostración GAME_OVER, // Pantalla de game over ENDING, // Final del juego (ending 1) ENDING2, // Final del juego (ending 2) QUIT // Salir del programa }; // --- Opciones para transiciones entre escenas --- enum class Options { NONE, // Sin opciones especiales LOGO_TO_LOADING_SCREEN, // Del logo a la intro LOGO_TO_TITLE, // Del logo al título TITLE_WITH_LOADING_SCREEN, // Al título mostrando pantalla de carga TITLE_WITHOUT_LOADING_SCREEN // Al título sin pantalla de carga }; // --- Variables de estado globales --- #ifdef _DEBUG inline Scene current = Scene::LOADING_SCREEN; // Escena actual inline Options options = Options::LOGO_TO_LOADING_SCREEN; // Opciones de la escena actual #else inline Scene current = Scene::LOGO; // Escena actual inline Options options = Options::LOGO_TO_LOADING_SCREEN; // Opciones de la escena actual #endif } // namespace SceneManager