#pragma once #include #include // Para string class Director { private: // Objetos y punteros SDL_Window* window_; // La ventana donde dibujamos SDL_Renderer* renderer_; // El renderizador de la ventana // Variables std::string executable_path_; // Path del ejecutable std::string system_folder_; // Carpeta del sistema donde guardar datos // Comprueba los parametros del programa std::string checkProgramArguments(int argc, const char* argv[]); // Crea la carpeta del sistema donde guardar datos void createSystemFolder(const std::string& folder); // Inicializa jail_audio void initJailAudio(); // Arranca SDL y crea la ventana bool initSDL(); // Inicializa el objeto Input void initInput(); // Crea el indice de ficheros bool setFileList(); // Ejecuta la seccion de juego con el logo void runLogo(); // Ejecuta la seccion de juego de la pantalla de carga void runLoadingScreen(); // Ejecuta la seccion de juego con el titulo y los menus void runTitle(); // Ejecuta la seccion de los creditos del juego void runCredits(); // Ejecuta la seccion de la demo, donde se ven pantallas del juego void runDemo(); // Ejecuta la seccion del final del juego void runEnding(); // Ejecuta la seccion del final del juego void runEnding2(); // Ejecuta la seccion del final de la partida void runGameOver(); // Ejecuta la seccion de juego donde se juega void runGame(); public: // Constructor Director(int argc, const char* argv[]); // Destructor ~Director(); // Bucle principal int run(); };