#pragma once #include #include #include #include "jail_audio.h" // Estructura para almacenar ficheros de sonido y su nombre struct ResourceSound { std::string name; // Nombre del sonido JA_Sound_t *sound; // Fichero con el sonido }; // Estructura para almacenar ficheros musicales y su nombre struct ResourceMusic { std::string name; // Nombre de la musica JA_Music_t *music; // Fichero con la música }; class Resource { private: // [SINGLETON] Objeto resource privado para Don Melitón static Resource *resource_; std::vector sounds_; // Vector con los sonidos std::vector musics_; // Vector con las musicas // Carga los sonidos del juego void loadSounds(); // Carga las musicas del juego void loadMusics(); // [SINGLETON] Ahora el constructor y el destructor son privados, para no poder crear objetos resource desde fuera // Constructor Resource(); // Destructor ~Resource(); public: // [SINGLETON] Crearemos el objeto resource con esta función estática static void init(); // [SINGLETON] Destruiremos el objeto resource con esta función estática static void destroy(); // [SINGLETON] Con este método obtenemos el objeto resource y podemos trabajar con él static Resource *get(); // Obtiene el fichero de sonido a partir de un nombre JA_Sound_t *getSound(const std::string &name); // Obtiene el fichero de música a partir de un nombre JA_Music_t *getMusic(const std::string &name); };