#include "load_param.h" #include #include // 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; }