#pragma once #include #include // Para unique_ptr #include // Para string #include "game/scene_manager.hpp" // Para SceneManager::Scene #include "game/scenes/scene.hpp" // Para Scene base class Director { public: Director(); // Constructor: inicialitza sistemes i crea l'escena inicial ~Director(); // Destructor // SDL3 Callback API: un frame i un event auto iterate() -> SDL_AppResult; auto handleEvent(const SDL_Event& event) -> SDL_AppResult; private: // --- Variables --- std::string executable_path_; // Path del ejecutable std::string system_folder_; // Carpeta del sistema donde guardar datos std::unique_ptr active_scene_; // Escena activa SceneManager::Scene current_scene_{SceneManager::Scene::LOGO}; // Tipus d'escena activa // --- 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 switchToActiveScene(); // Construeix l'escena segons SceneManager::current };