#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
    TITLE,  // Pantalla de título/menú principal
    GAME,   // Juego principal
    QUIT    // Salir del programa
};

// --- Opciones para transiciones entre escenas ---
enum class Options {
    NONE,  // Sin opciones especiales
};

// --- Variables de estado globales ---
#ifdef _DEBUG
inline Scene current = Scene::GAME;      // Escena actual
inline Options options = Options::NONE;  // Opciones de la escena actual
#else
inline Scene current = Scene::LOGO;      // Escena actual
inline Options options = Options::NONE;  // Opciones de la escena actual
#endif

}  // namespace SceneManager
