forked from jaildesigner-jailgames/jaildoctors_dilemma
Treballant en la caché de les paletes
This commit is contained in:
@@ -20,28 +20,16 @@ struct JA_Sound_t; // lines 13-13
|
||||
Resource *Resource::resource_ = nullptr;
|
||||
|
||||
// [SINGLETON] Crearemos el objeto screen con esta función estática
|
||||
void Resource::init()
|
||||
{
|
||||
Resource::resource_ = new Resource();
|
||||
}
|
||||
void Resource::init() { Resource::resource_ = new Resource(); }
|
||||
|
||||
// [SINGLETON] Destruiremos el objeto screen con esta función estática
|
||||
void Resource::destroy()
|
||||
{
|
||||
delete Resource::resource_;
|
||||
}
|
||||
void Resource::destroy() { delete Resource::resource_; }
|
||||
|
||||
// [SINGLETON] Con este método obtenemos el objeto screen y podemos trabajar con él
|
||||
Resource *Resource::get()
|
||||
{
|
||||
return Resource::resource_;
|
||||
}
|
||||
Resource *Resource::get() { return Resource::resource_; }
|
||||
|
||||
// Constructor
|
||||
Resource::Resource()
|
||||
{
|
||||
load();
|
||||
}
|
||||
Resource::Resource() { load(); }
|
||||
|
||||
// Vacia todos los vectores de recursos
|
||||
void Resource::clear()
|
||||
@@ -49,6 +37,7 @@ void Resource::clear()
|
||||
clearSounds();
|
||||
clearMusics();
|
||||
surfaces_.clear();
|
||||
palettes_.clear();
|
||||
text_files_.clear();
|
||||
texts_.clear();
|
||||
animations_.clear();
|
||||
@@ -64,6 +53,7 @@ void Resource::load()
|
||||
loadSounds();
|
||||
loadMusics();
|
||||
loadSurfaces();
|
||||
loadPalettes();
|
||||
loadTextFiles();
|
||||
loadAnimations();
|
||||
loadTileMaps();
|
||||
@@ -109,7 +99,7 @@ JA_Music_t *Resource::getMusic(const std::string &name)
|
||||
throw std::runtime_error("Música no encontrada: " + name);
|
||||
}
|
||||
|
||||
// Obtiene la textura a partir de un nombre
|
||||
// Obtiene la surface a partir de un nombre
|
||||
std::shared_ptr<Surface> Resource::getSurface(const std::string &name)
|
||||
{
|
||||
auto it = std::find_if(surfaces_.begin(), surfaces_.end(), [&name](const auto &t)
|
||||
@@ -124,6 +114,21 @@ std::shared_ptr<Surface> Resource::getSurface(const std::string &name)
|
||||
throw std::runtime_error("Imagen no encontrada: " + name);
|
||||
}
|
||||
|
||||
// Obtiene la paleta a partir de un nombre
|
||||
Palette Resource::getPalette(const std::string &name)
|
||||
{
|
||||
auto it = std::find_if(palettes_.begin(), palettes_.end(), [&name](const auto &t)
|
||||
{ return t.name == name; });
|
||||
|
||||
if (it != palettes_.end())
|
||||
{
|
||||
return it->palette;
|
||||
}
|
||||
|
||||
std::cerr << "Error: Paleta no encontrada " << name << std::endl;
|
||||
throw std::runtime_error("Paleta no encontrada: " + name);
|
||||
}
|
||||
|
||||
// Obtiene el fichero de texto a partir de un nombre
|
||||
std::shared_ptr<TextFile> Resource::getTextFile(const std::string &name)
|
||||
{
|
||||
@@ -252,6 +257,21 @@ void Resource::loadSurfaces()
|
||||
}
|
||||
}
|
||||
|
||||
// Carga las paletas
|
||||
void Resource::loadPalettes()
|
||||
{
|
||||
std::cout << "\n>> PALETTES" << std::endl;
|
||||
auto list = Asset::get()->getListByType(AssetType::PALETTE);
|
||||
palettes_.clear();
|
||||
|
||||
for (const auto &l : list)
|
||||
{
|
||||
auto name = getFileName(l);
|
||||
palettes_.emplace_back(ResourcePalette(name, loadPalette(l)));
|
||||
updateLoadingProgress();
|
||||
}
|
||||
}
|
||||
|
||||
// Carga los ficheros de texto
|
||||
void Resource::loadTextFiles()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user