#pragma once #include #include "balloon.h" #include "bullet.h" #include "common/asset.h" #include "common/input.h" #include "common/jail_audio.h" #include "common/menu.h" #include "common/movingsprite.h" #include "common/screen.h" #include "common/smartsprite.h" #include "common/sprite.h" #include "common/text.h" #include "common/utils.h" #include "common/writer.h" #include "const.h" #include "fade.h" #include "game.h" #include "intro.h" #include "item.h" #include "logo.h" #include "player.h" #include "title.h" #ifndef DIRECTOR_H #define DIRECTOR_H // Textos #define WINDOW_CAPTION "Coffee Crisis" class Director { private: // Objetos y punteros SDL_Window *window; // La ventana donde dibujamos SDL_Renderer *renderer; // El renderizador de la ventana Screen *screen; // Objeto encargado de dibujar en pantalla Logo *logo; // Objeto para la sección del logo Intro *intro; // Objeto para la sección de la intro Title *title; // Objeto para la sección del titulo y el menu de opciones Game *game; // Objeto para la sección del juego Input *input; // Objeto Input para gestionar las entradas Lang *lang; // Objeto para gestionar los textos en diferentes idiomas Asset *asset; // Objeto que gestiona todos los ficheros de recursos // Variables struct options_t *options; // Variable con todas las opciones del programa section_t section; // Sección y subsección actual del programa; // Inicializa jail_audio void initJailAudio(); // Arranca SDL y crea la ventana bool initSDL(); // Inicializa el objeto input void initInput(); // Inicializa los servicios online void initOnline(); // Inicializa las opciones del programa void initOptions(); // Crea el indice de ficheros bool setFileList(); // Carga el fichero de configuración bool loadConfigFile(); // Guarda el fichero de configuración bool saveConfigFile(); // Establece el valor de la variable void setSection(section_t section); // Ejecuta la seccion de juego con el logo void runLogo(); // Ejecuta la seccion de juego de la introducción void runIntro(); // Ejecuta la seccion de juego con el titulo y los menus void runTitle(); // Ejecuta la seccion de juego donde se juega void runGame(); public: // Constructor Director(std::string path); // Destructor ~Director(); // Bucle principal void run(); }; #endif