Files
jaildoctors_dilemma/source/game/scene_manager.hpp

45 lines
1.6 KiB
C++

#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::GAME; // 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