Files
coffee_crisis_arcade_edition/source/director.h

58 lines
1.8 KiB
C++

#pragma once
#include <string> // Para manejar cadenas de texto
namespace lang
{
enum class Code : int;
}
class Director
{
public:
// Constructor
Director(int argc, const char *argv[]);
// Destructor
~Director();
// Bucle principal de la aplicación
int run();
private:
// Variables internas
std::string executable_path_; // Ruta del ejecutable
std::string system_folder_; // Carpeta del sistema para almacenar datos
// Inicialización y cierre del sistema
void init(); // Inicializa la aplicación
void close(); // Cierra y libera recursos
// Configuración inicial
void loadParams(); // Carga los parámetros del programa
void loadScoreFile(); // Carga el fichero de puntuaciones
void createSystemFolder(const std::string &folder); // Crea la carpeta del sistema
// Gestión de entrada y archivos
void bindInputs(); // Asigna botones y teclas al sistema de entrada
void setFileList(); // Crea el índice de archivos disponibles
void checkProgramArguments(int argc, const char *argv[]); // Verifica los parámetros del programa
// Diferentes secciones del programa
void runLogo(); // Ejecuta la pantalla con el logo
void runIntro(); // Ejecuta la introducción del juego
void runTitle(); // Ejecuta la pantalla de título
void runGame(); // Inicia el juego
void runInstructions(); // Muestra las instrucciones
void runCredits(); // Muestra los créditos del juego
void runHiScoreTable(); // Muestra la tabla de puntuaciones
void runDemoGame(); // Ejecuta el modo demo
void reset(); // Reinicia objetos y vuelve a la sección inicial
// Gestión de archivos de idioma
std::string getLangFile(lang::Code code); // Obtiene un fichero de idioma según el código
#ifdef ARCADE
void shutdownSystem(bool should_shutdown); // Apaga el sistema (modo arcade)
#endif
};