config/ dins del pack: assets, params, stages, pools, formations

This commit is contained in:
2026-05-17 08:38:46 +02:00
parent a39cd45bf1
commit 0d14e10de5
18 changed files with 95 additions and 2282 deletions
+11 -10
View File
@@ -10,9 +10,10 @@
#include <string> // Para string, basic_string, stoi, stof, hash, allocator, operator==, char_traits, operator+, operator>>, getline
#include <unordered_map> // Para unordered_map, operator==, _Node_iterator_base
#include "game/ui/notifier.hpp" // Para Notifier
#include "utils/color.hpp" // Para Color
#include "utils/utils.hpp" // Para Zone, stringToBool, getFileName
#include "core/resources/resource_helper.hpp" // Para ResourceHelper::loadFile
#include "game/ui/notifier.hpp" // Para Notifier
#include "utils/color.hpp" // Para Color
#include "utils/utils.hpp" // Para Zone, stringToBool, getFileName
// Variable global - ahora se inicializa automáticamente con valores por defecto
Param param;
@@ -42,22 +43,24 @@ void Param::precalculateZones() {
game.game_area.third_quarter_y = game.game_area.rect.h / 4 * 3;
}
// Carga los parámetros desde un archivo
// Carga los parámetros desde un archivo (busca primer al pack, fallback al filesystem)
void loadParamsFromFile(const std::string& file_path) {
// Los parámetros ya están inicializados con valores por defecto
// Solo necesitamos abrir el archivo y sobrescribir los valores que aparezcan
std::ifstream file(file_path);
if (!file.is_open()) {
auto buffer = ResourceHelper::loadFile(file_path);
if (buffer.empty()) {
std::cout << "Error: No se pudo abrir el archivo " << file_path << '\n';
throw std::runtime_error("No se pudo abrir el archivo: " + file_path);
}
std::string content(buffer.begin(), buffer.end());
std::istringstream stream(content);
std::string line;
std::string param_name;
std::string param_value;
while (std::getline(file, line)) {
while (std::getline(stream, line)) {
// Elimina comentarios
auto comment_pos = line.find('#');
if (comment_pos != std::string::npos) {
@@ -73,8 +76,6 @@ void loadParamsFromFile(const std::string& file_path) {
}
}
file.close();
// Recalcula las zonas después de cargar todos los parámetros
param.precalculateZones();
}