forked from jaildesigner-jailgames/jaildoctors_dilemma
Modificado el metodo de carga de habitaciones
This commit is contained in:
@@ -56,7 +56,7 @@ bool Room::load(std::string _file_path)
|
||||
printf("Reading file %s\n", filename.c_str());
|
||||
while (std::getline(file, line))
|
||||
{
|
||||
// Si la linea contiene el texto [enemy] se realiza un proceso distinto
|
||||
// Si la linea contiene el texto [enemy] se realiza el proceso de carga de un enemigo
|
||||
if (line == "[enemy]")
|
||||
{
|
||||
enemy_t enemy;
|
||||
@@ -80,6 +80,84 @@ bool Room::load(std::string _file_path)
|
||||
// Añade el enemigo al vector de enemigos
|
||||
enemy_list.push_back(new Enemy(enemy));
|
||||
}
|
||||
|
||||
// Si la linea contiene el texto [tilemap] se realiza el proceso de carga del fichero tmx
|
||||
else if (line == "[tilemap]")
|
||||
{
|
||||
//printf("Loading tilemap...\n");
|
||||
do
|
||||
{
|
||||
std::getline(file, line);
|
||||
if (line.find(".tmx") != std::string::npos)
|
||||
{
|
||||
//printf("Reading file %s\n", asset->get(line).c_str());
|
||||
std::ifstream file2(asset->get(line)); // Abre el fichero tmx
|
||||
if (file2.good())
|
||||
{
|
||||
bool data_read = false;
|
||||
while (std::getline(file2, line)) // Lee el fichero linea a linea
|
||||
{
|
||||
if (!data_read)
|
||||
{ // Lee lineas hasta que encuentre donde empiezan los datos del mapa
|
||||
int pos = 0;
|
||||
do
|
||||
{
|
||||
std::getline(file2, line);
|
||||
//printf("parsing: %s\n", line.c_str());
|
||||
|
||||
pos = line.find("data encoding");
|
||||
//printf("pos: %i\n", pos);
|
||||
|
||||
} while (pos == std::string::npos);
|
||||
|
||||
do
|
||||
{ // Se introducen los valores separados por comas en un vector
|
||||
data_read = true;
|
||||
std::getline(file2, line);
|
||||
if (line != "</data>")
|
||||
{
|
||||
//printf("data: %s\n", line.c_str());
|
||||
std::stringstream ss(line);
|
||||
std::string tmp;
|
||||
while (getline(ss, tmp, ','))
|
||||
{
|
||||
//printf("tile: %s\n", tmp.c_str());
|
||||
tilemap.push_back(std::stoi(tmp));
|
||||
}
|
||||
}
|
||||
} while (line != "</data>");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (line != "[tilemap-end]");
|
||||
}
|
||||
|
||||
// Si la linea contiene el texto [item] se realiza el proceso de carga de un item
|
||||
else if (line == "[item]")
|
||||
{
|
||||
// enemy_t enemy;
|
||||
// enemy.asset = asset;
|
||||
// enemy.renderer = renderer;
|
||||
|
||||
do
|
||||
{
|
||||
std::getline(file, line);
|
||||
|
||||
// Encuentra la posición del caracter '='
|
||||
int pos = line.find("=");
|
||||
// Procesa las dos subcadenas
|
||||
// if (!setEnemy(&enemy, line.substr(0, pos), line.substr(pos + 1, line.length())))
|
||||
//{
|
||||
// printf("Warning: file %s\n, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
||||
// success = false;
|
||||
//}
|
||||
} while (line != "[item-end]");
|
||||
|
||||
// Añade el enemigo al vector de enemigos
|
||||
// enemy_list.push_back(new Enemy(enemy));
|
||||
}
|
||||
|
||||
// En caso contrario se parsea el fichero para buscar las variables y los valores
|
||||
else
|
||||
{
|
||||
@@ -114,11 +192,7 @@ bool Room::setVars(std::string _var, std::string _value)
|
||||
// Indicador de éxito en la asignación
|
||||
bool success = true;
|
||||
|
||||
if (_var == "id")
|
||||
{
|
||||
id = _value;
|
||||
}
|
||||
else if (_var == "name")
|
||||
if (_var == "name")
|
||||
{
|
||||
name = _value;
|
||||
}
|
||||
@@ -156,6 +230,9 @@ bool Room::setVars(std::string _var, std::string _value)
|
||||
tilemap.push_back(std::stoi(tmp));
|
||||
}
|
||||
}
|
||||
else if (_var == "")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
success = false;
|
||||
@@ -210,6 +287,9 @@ bool Room::setEnemy(enemy_t *enemy, std::string _var, std::string _value)
|
||||
{
|
||||
enemy->color = stringToColor(_value);
|
||||
}
|
||||
else if (_var == "[enemy-end]")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
success = false;
|
||||
|
||||
Reference in New Issue
Block a user