Mes recomanacions de cppcheck

This commit is contained in:
2024-10-13 19:26:27 +02:00
parent 46540ad7c3
commit babf02226c
22 changed files with 291 additions and 369 deletions

View File

@@ -1,7 +1,10 @@
#include "param.h"
#include <fstream> // for char_traits, basic_ostream, basic_ifstream, basi...
#include <iostream> // for cout
#include "utils.h" // for Param, ParamGame, Zone, ParamBalloon
#include <sstream>
#include <string>
#include <stdexcept>
#include "utils.h" // for Param, ParamGame, Zone, ParamBalloon
Param param;
@@ -40,7 +43,7 @@ void initParam()
param.title.title_c_c_position = 11;
// BACKGROUND
param.background.attenuate_color = {255, 255, 255};
param.background.attenuate_color = (Color){255, 255, 255};
param.background.attenuate_alpha = 32;
// BALLOONS
@@ -52,10 +55,18 @@ void initParam()
param.balloon_3.grav = 0.10f;
param.balloon_4.vel = 4.95f;
param.balloon_4.grav = 0.10f;
// NOTIFICATION
param.notification.pos_v = NotifyPosition::TOP;
param.notification.pos_h = NotifyPosition::LEFT;
param.notification.sound = false;
param.notification.color.r = 48;
param.notification.color.g = 48;
param.notification.color.b = 48;
}
// Establece valores para los parametros a partir de un fichero de texto
void loadParamsFromFile(std::string file_path)
/*void loadParamsFromFile(std::string file_path)
{
// Pone valores por defecto a las variables
initParam();
@@ -80,8 +91,15 @@ void loadParamsFromFile(std::string file_path)
param1.clear();
param2.clear();
// Elimina los comentarios
line = line.substr(0, line.find("#"));
// Elimina los comentarios al final de una linea
{
// line = line.substr(0, line.find("#"));
auto pos = line.find("#");
if (pos != std::string::npos)
{
line.resize(pos);
}
}
// Ignora los espacios en blanco
int pos = 0;
@@ -148,6 +166,50 @@ void loadParamsFromFile(std::string file_path)
std::cout << "Failed to load file: " << file_path << std::endl;
#endif
precalculateZones();
}*/
void loadParamsFromFile(const std::string &file_path)
{
// Inicializa los parámetros con valores por defecto
initParam();
// Abre el archivo
std::ifstream file(file_path);
if (!file.is_open())
{
#ifdef VERBOSE
std::cerr << "Error: No se pudo abrir el archivo " << file_path << std::endl;
#endif
throw std::runtime_error("No se pudo abrir el archivo: " + file_path);
}
#ifdef VERBOSE
const std::string file_name = file_path.substr(file_path.find_last_of("\\/") + 1);
std::cout << "Reading file: " << file_name << std::endl;
#endif
std::string line, param1, param2;
while (std::getline(file, line))
{
// Elimina comentarios
auto comment_pos = line.find('#');
if (comment_pos != std::string::npos)
{
line = line.substr(0, comment_pos);
}
// Usa un stream para separar palabras
std::istringstream iss(line);
if (iss >> param1 >> param2)
{
setParams(param1, param2);
}
}
// Cierra el archivo
file.close();
// Realiza cálculos adicionales después de cargar los parámetros
precalculateZones();
}