Cambiados muchos DEFINEs por variables de param

This commit is contained in:
2024-09-06 08:41:10 +02:00
parent c5bab7019c
commit 62b1ba84ac
23 changed files with 215 additions and 158 deletions

View File

@@ -5,20 +5,26 @@
// Asigna variables a partir de dos cadenas
bool setOptions(param_t *param, std::string var, std::string value);
// Calcula variables a partir de otras variables
void precalculateZones(param_t *param);
// Establece valores por defecto a las variables
void initParam(param_t *param)
{
// GAME
param->game.width = 320;
param->game.height = 240;
param->game.height = 256;
param->game.itemSize = 20;
param->game.gameArea.rect = {0, 0, param->game.width, param->game.height};
param->game.playArea.rect = {0, 0, param->game.width, 216};
precalculateZones(param);
// SCOREBOARD
param->scoreboard = {0, 200, 320, 40};
param->scoreboard = {0, 216, param->game.width, 40};
// FADE
param->fade.numSquaresWidth = 160;
param->fade.numSquaresHeight = 120;
param->fade.numSquaresWidth = param->game.width / 2;
param->fade.numSquaresHeight = param->game.height / 2;
param->fade.randomSquaresDelay = 1;
param->fade.randomSquaresMult = 500;
param->fade.postDuration = 80;
@@ -46,7 +52,7 @@ void initParam(param_t *param)
}
// Establece valores para los parametros a partir de un fichero de texto
void loadParam(param_t *param, std::string filePath)
void loadParamsFromFile(param_t *param, std::string filePath)
{
// Pone valores por defecto a las variables
initParam(param);
@@ -130,6 +136,8 @@ void loadParam(param_t *param, std::string filePath)
// Cierra el fichero
file.close();
}
precalculateZones(param);
}
// Asigna variables a partir de dos cadenas
@@ -154,6 +162,26 @@ bool setOptions(param_t *param, std::string var, std::string value)
param->game.itemSize = std::stoi(value);
}
else if (var == "game.playArea.rect.x")
{
param->game.playArea.rect.x = std::stoi(value);
}
else if (var == "game.playArea.rect.y")
{
param->game.playArea.rect.y = std::stoi(value);
}
else if (var == "game.playArea.rect.w")
{
param->game.playArea.rect.w = std::stoi(value);
}
else if (var == "game.playArea.rect.h")
{
param->game.playArea.rect.h = std::stoi(value);
}
// FADE
else if (var == "fade.numSquaresWidth")
{
@@ -296,4 +324,26 @@ bool setOptions(param_t *param, std::string var, std::string value)
}
return success;
}
// Calcula variables a partir de otras variables
void precalculateZones(param_t *param)
{
// playArea
param->game.playArea.centerX = param->game.playArea.rect.w / 2;
param->game.playArea.firstQuarterX = param->game.playArea.rect.w / 4;
param->game.playArea.thirdQuarterX = param->game.playArea.rect.w / 4 * 3;
param->game.playArea.centerY = param->game.playArea.rect.h / 2;
param->game.playArea.firstQuarterY = param->game.playArea.rect.h / 4;
param->game.playArea.thirdQuarterY = param->game.playArea.rect.h / 4 * 3;
// gameArea
param->game.gameArea.rect = {0, 0, param->game.width, param->game.height};
param->game.gameArea.centerX = param->game.gameArea.rect.w / 2;
param->game.gameArea.firstQuarterX = param->game.gameArea.rect.w / 4;
param->game.gameArea.thirdQuarterX = param->game.gameArea.rect.w / 4 * 3;
param->game.gameArea.centerY = param->game.gameArea.rect.h / 2;
param->game.gameArea.firstQuarterY = param->game.gameArea.rect.h / 4;
param->game.gameArea.thirdQuarterY = param->game.gameArea.rect.h / 4 * 3;
}