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
+17 -14
View File
@@ -5,17 +5,17 @@
#include <cctype> // Para isdigit
#include <cstddef> // Para size_t
#include <exception> // Para exception
#include <fstream> // Para basic_istream, basic_ifstream, ifstream, istringstream
#include <iterator> // Para reverse_iterator
#include <map> // Para map, operator==, _Rb_tree_iterator
#include <sstream> // Para basic_istringstream
#include <string> // Para string, char_traits, allocator, operator==, stoi, getline, operator<=>, basic_string
#include <utility> // Para std::cmp_less
#include "core/resources/asset.hpp" // Para Asset
#include "game/entities/balloon.hpp" // Para Balloon
#include "utils/param.hpp" // Para Param, ParamGame, param
#include "utils/utils.hpp" // Para Zone, BLOCK
#include "core/resources/asset.hpp" // Para Asset
#include "core/resources/resource_helper.hpp" // Para ResourceHelper::loadFile
#include "game/entities/balloon.hpp" // Para Balloon
#include "utils/param.hpp" // Para Param, ParamGame, param
#include "utils/utils.hpp" // Para Zone, BLOCK
void BalloonFormations::initFormations() {
// Calcular posiciones base
@@ -60,16 +60,19 @@ void BalloonFormations::initFormations() {
}
auto BalloonFormations::loadFormationsFromFile(const std::string& filename, const std::map<std::string, float>& variables) -> bool {
std::ifstream file(filename);
if (!file.is_open()) {
auto buffer = ResourceHelper::loadFile(filename);
if (buffer.empty()) {
return false;
}
std::string content(buffer.begin(), buffer.end());
std::istringstream stream(content);
std::string line;
int current_formation = -1;
std::vector<SpawnParams> current_params;
while (std::getline(file, line)) {
while (std::getline(stream, line)) {
// Eliminar espacios en blanco al inicio y final
line = trim(line);
@@ -113,7 +116,6 @@ auto BalloonFormations::loadFormationsFromFile(const std::string& filename, cons
addTestFormation();
#endif
file.close();
return true;
}
@@ -272,18 +274,21 @@ void BalloonFormations::initFormationPools() {
}
auto BalloonFormations::loadPoolsFromFile(const std::string& filename) -> bool {
std::ifstream file(filename);
if (!file.is_open()) {
auto buffer = ResourceHelper::loadFile(filename);
if (buffer.empty()) {
return false;
}
std::string content(buffer.begin(), buffer.end());
std::istringstream stream(content);
std::string line;
pools_.clear(); // Limpiar pools existentes
// Map temporal para ordenar los pools por ID
std::map<int, std::vector<int>> temp_pools;
while (std::getline(file, line)) {
while (std::getline(stream, line)) {
// Eliminar espacios en blanco al inicio y final
line = trim(line);
@@ -299,8 +304,6 @@ auto BalloonFormations::loadPoolsFromFile(const std::string& filename) -> bool {
}
}
file.close();
// Convertir el map ordenado a vector
// Redimensionar el vector para el pool con ID más alto
if (!temp_pools.empty()) {