112 lines
2.3 KiB
C++
112 lines
2.3 KiB
C++
#include "load_param.h"
|
|
#include <iostream>
|
|
#include <fstream>
|
|
|
|
// Asigna variables a partir de dos cadenas
|
|
bool setOptions(param_t *param, std::string var, std::string value);
|
|
|
|
// Establece valores por defecto a las variables
|
|
void initParam(param_t *param)
|
|
{
|
|
// Tamaño original del juego
|
|
param->gameWidth = 320;
|
|
param->gameHeight = 240;
|
|
|
|
// Tamaño para el marcador
|
|
param->scoreboard = {0, 240 - 32, 320, 32};
|
|
|
|
// Valores para el FADE_RANDOM_SQUARE
|
|
param->numSquaresWidth = 80;
|
|
param->numSquaresHeight = 60;
|
|
param->fadeRandomSquaresDelay = 1;
|
|
param->fadeRandomSquaresMult = 8;
|
|
param->fadePostDuration = 20;
|
|
}
|
|
|
|
// Establece valores para los parametros a partir de un fichero de texto
|
|
bool loadParam(param_t *param, std::string filePath)
|
|
{
|
|
// Pone valores por defecto a las variables
|
|
initParam(param);
|
|
|
|
// Indicador de éxito en la carga
|
|
bool success = true;
|
|
|
|
// Variables para manejar el fichero
|
|
std::string line;
|
|
std::ifstream file(filePath);
|
|
|
|
// Si el fichero se puede abrir
|
|
if (file.good())
|
|
{
|
|
while (std::getline(file, line))
|
|
{
|
|
// Comprueba que la linea no sea un comentario
|
|
if (line.substr(0, 1) != "#")
|
|
{
|
|
// Encuentra la posición del caracter '='
|
|
int pos = line.find(" ");
|
|
// Procesa las dos subcadenas
|
|
if (!setOptions(param, line.substr(0, pos), line.substr(pos + 1, line.length())))
|
|
{
|
|
success = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Cierra el fichero
|
|
file.close();
|
|
}
|
|
|
|
return success;
|
|
}
|
|
|
|
// Asigna variables a partir de dos cadenas
|
|
bool setOptions(param_t *param, std::string var, std::string value)
|
|
{
|
|
// Indicador de éxito en la asignación
|
|
bool success = true;
|
|
|
|
// Opciones de video
|
|
if (var == "gameWidth")
|
|
{
|
|
param->gameWidth = std::stoi(value);
|
|
}
|
|
|
|
else if (var == "gameHeight")
|
|
{
|
|
param->gameHeight = std::stoi(value);
|
|
}
|
|
|
|
else if (var == "numSquaresWidth")
|
|
{
|
|
param->numSquaresWidth = std::stoi(value);
|
|
}
|
|
|
|
else if (var == "numSquaresHeight")
|
|
{
|
|
param->numSquaresHeight = std::stoi(value);
|
|
}
|
|
|
|
else if (var == "fadeRandomSquaresDelay")
|
|
{
|
|
param->fadeRandomSquaresDelay = std::stoi(value);
|
|
}
|
|
|
|
else if (var == "fadeRandomSquaresMult")
|
|
{
|
|
param->fadeRandomSquaresMult = std::stoi(value);
|
|
}
|
|
|
|
else if (var == "fadePostDuration")
|
|
{
|
|
param->fadePostDuration = std::stoi(value);
|
|
}
|
|
|
|
else
|
|
{
|
|
success = false;
|
|
}
|
|
|
|
return success;
|
|
} |