Files
projecte_2026/source/core/system/director.hpp
2026-04-06 20:27:35 +02:00

37 lines
1.3 KiB
C++

#pragma once
#include <SDL3/SDL.h>
#include <memory> // Para unique_ptr
#include <string> // Para string
#include "game/scene_manager.hpp" // Para SceneManager::Scene
class Logo;
class Title;
class Game;
class Director {
public:
Director(); // Constructor
~Director(); // Destructor
auto iterate() -> SDL_AppResult; // Una iteración del bucle principal (callback model)
private:
// --- Variables ---
std::string executable_path_; // Path del ejecutable
std::string system_folder_; // Carpeta del sistema donde guardar datos
// --- Gestión de escenas ---
SceneManager::Scene active_scene_{SceneManager::Scene::QUIT}; // Escena activa (la que tiene objeto creado)
std::unique_ptr<Logo> logo_;
std::unique_ptr<Title> title_;
std::unique_ptr<Game> game_;
// --- Funciones ---
void createSystemFolder(const std::string& folder); // Crea la carpeta del sistema donde guardar datos
void setFileList(); // Carga la configuración de assets desde assets.yaml
void destroyCurrentScene(); // Destruye la escena activa
void createScene(SceneManager::Scene scene); // Crea la escena indicada
};