Files
coffee-crisis-ae/source/resource.h
T
JailDesigner f23dcae5b6 Creada la classe Resource
Afegida la musica i els sons a Resource
2024-10-19 10:07:14 +02:00

60 lines
1.5 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#include <vector>
#include <string>
#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<ResourceSound> sounds_; // Vector con los sonidos
std::vector<ResourceMusic> 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);
};