integracions de texture.cpp amb ResourceHelper

This commit is contained in:
2025-08-19 13:13:27 +02:00
parent 6bf8490776
commit 58cf78e1e3

View File

@@ -367,16 +367,33 @@ auto Texture::readPalFile(const std::string &file_path) -> Palette {
Palette palette{};
palette.fill(0); // Inicializar todo con 0 (transparente por defecto)
std::ifstream file(file_path);
if (!file.is_open()) {
throw std::runtime_error("No se pudo abrir el archivo .pal");
// Intentar cargar desde ResourceHelper primero
auto resource_data = ResourceHelper::loadFile(file_path);
std::istringstream stream;
bool using_resource_data = false;
if (!resource_data.empty()) {
std::string content(resource_data.begin(), resource_data.end());
stream.str(content);
using_resource_data = true;
}
// Fallback a archivo directo
std::ifstream file;
if (!using_resource_data) {
file.open(file_path);
if (!file.is_open()) {
throw std::runtime_error("No se pudo abrir el archivo .pal");
}
}
std::istream& input_stream = using_resource_data ? stream : static_cast<std::istream&>(file);
std::string line;
int line_number = 0;
int color_index = 0;
while (std::getline(file, line)) {
while (std::getline(input_stream, line)) {
++line_number;
// Ignorar las tres primeras líneas del archivo
@@ -401,6 +418,8 @@ auto Texture::readPalFile(const std::string &file_path) -> Palette {
}
}
file.close();
if (!using_resource_data && file.is_open()) {
file.close();
}
return palette;
}