Se puede especificar con argumentos el fichero de parametros a utilizar
This commit is contained in:
44
data/config/param_320x240.txt
Normal file
44
data/config/param_320x240.txt
Normal file
@@ -0,0 +1,44 @@
|
||||
## GAME
|
||||
game.itemSize 20
|
||||
game.width 320
|
||||
game.height 240
|
||||
game.playArea.rect.x 0
|
||||
game.playArea.rect.y 0
|
||||
game.playArea.rect.w 320
|
||||
game.playArea.rect.h 200
|
||||
|
||||
## FADE
|
||||
fade.numSquaresWidth 160
|
||||
fade.numSquaresHeight 120
|
||||
fade.randomSquaresDelay 1
|
||||
fade.randomSquaresMult 500
|
||||
fade.postDuration 80
|
||||
fade.venetianSize 16
|
||||
|
||||
## SCOREBOARD
|
||||
scoreboard.x 0
|
||||
scoreboard.y 200
|
||||
scoreboard.w 320
|
||||
scoreboard.h 40
|
||||
|
||||
## TITLE
|
||||
title.pressStartPosition 170
|
||||
title.titleDuration 800
|
||||
title.arcadeEditionPosition 123
|
||||
title.titleCCPosition 80
|
||||
|
||||
## BACKGROUND
|
||||
background.attenuateColor.r 255
|
||||
background.attenuateColor.g 255
|
||||
background.attenuateColor.b 255
|
||||
background.attenuateAlpha 0
|
||||
|
||||
## BALLOONS
|
||||
balloon1.vel 2.75f
|
||||
balloon1.grav 0.09f
|
||||
balloon2.vel 3.70f
|
||||
balloon2.grav 0.10f
|
||||
balloon3.vel 4.70f
|
||||
balloon3.grav 0.10f
|
||||
balloon4.vel 5.45f
|
||||
balloon4.grav 0.10f
|
||||
@@ -47,7 +47,8 @@ Director::Director(int argc, char *argv[])
|
||||
}
|
||||
|
||||
// Carga los parametros para configurar el juego
|
||||
loadParams();
|
||||
const std::string paramFilePath = paramFileArgument == "--320x240" ? asset->get("param_320x240.txt") : asset->get("param_320x256.txt");
|
||||
loadParams(paramFilePath);
|
||||
|
||||
// Carga el fichero de configuración
|
||||
loadConfigFile();
|
||||
@@ -213,6 +214,7 @@ bool Director::initSDL()
|
||||
SDL_DisplayMode DM;
|
||||
SDL_GetCurrentDisplayMode(0, &DM);
|
||||
std::cout << "\nDisplay info: " + std::to_string(DM.w) + "x" + std::to_string(DM.h) + " @ " + std::to_string(DM.refresh_rate) + "Hz" << std::endl;
|
||||
std::cout << "Window info : " + std::to_string(param->game.width) + "x" + std::to_string(param->game.height) + " x" + std::to_string(options->video.window.size) << std::endl;
|
||||
}
|
||||
|
||||
// Establece el filtro de la textura
|
||||
@@ -297,7 +299,8 @@ bool Director::setFileList()
|
||||
// Ficheros de configuración
|
||||
asset->add(systemFolder + "/config.txt", t_data, false, true);
|
||||
asset->add(systemFolder + "/score.bin", t_data, false, true);
|
||||
asset->add(prefix + "/data/config/param.txt", t_data);
|
||||
asset->add(prefix + "/data/config/param_320x240.txt", t_data);
|
||||
asset->add(prefix + "/data/config/param_320x256.txt", t_data);
|
||||
asset->add(prefix + "/data/config/demo1.bin", t_data);
|
||||
asset->add(prefix + "/data/config/demo2.bin", t_data);
|
||||
asset->add(prefix + "/data/config/gamecontrollerdb.txt", t_data);
|
||||
@@ -429,11 +432,11 @@ bool Director::setFileList()
|
||||
}
|
||||
|
||||
// Carga los parametros para configurar el juego
|
||||
void Director::loadParams()
|
||||
void Director::loadParams(std::string filepath)
|
||||
{
|
||||
param = new param_t;
|
||||
|
||||
loadParamsFromFile(param, asset->get("param.txt"));
|
||||
loadParamsFromFile(param, filepath);
|
||||
|
||||
// Modifica las opciones desde el fichero de parametros
|
||||
options->video.window.width = options->video.window.size * param->game.width;
|
||||
@@ -519,6 +522,9 @@ void Director::checkProgramArguments(int argc, char *argv[])
|
||||
// Establece la ruta del programa
|
||||
executablePath = argv[0];
|
||||
|
||||
// Valores por defecto
|
||||
paramFileArgument = "";
|
||||
|
||||
// Comprueba el resto de parametros
|
||||
for (int i = 1; i < argc; ++i)
|
||||
{
|
||||
@@ -526,6 +532,11 @@ void Director::checkProgramArguments(int argc, char *argv[])
|
||||
{
|
||||
options->console = true;
|
||||
}
|
||||
|
||||
if (strcmp(argv[i], "--320x240") == 0)
|
||||
{
|
||||
paramFileArgument = argv[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ private:
|
||||
param_t *param; // Variable con todos los parametros del programa
|
||||
std::string executablePath; // Path del ejecutable
|
||||
std::string systemFolder; // Carpeta del sistema donde guardar datos
|
||||
std::string paramFileArgument; // Argumento para gestionar el fichero con los parametros del programa
|
||||
std::vector<sound_file_t> sounds; // Vector con los sonidos
|
||||
std::vector<music_file_t> musics; // Vector con las musicas
|
||||
|
||||
@@ -58,7 +59,7 @@ private:
|
||||
void initInput();
|
||||
|
||||
// Carga los parametros para configurar el juego
|
||||
void loadParams();
|
||||
void loadParams(std::string filepath);
|
||||
|
||||
// Inicializa las opciones del programa
|
||||
void initOptions();
|
||||
|
||||
@@ -66,6 +66,10 @@ void loadParamsFromFile(param_t *param, std::string filePath)
|
||||
// Si el fichero se puede abrir
|
||||
if (file.good())
|
||||
{
|
||||
#ifdef VERBOSE
|
||||
const std::string filename = filePath.substr(filePath.find_last_of("\\/") + 1);
|
||||
std::cout << "Reading file: " << filename << std::endl;
|
||||
#endif
|
||||
// Procesa cada linea del fichero
|
||||
while (std::getline(file, line))
|
||||
{
|
||||
@@ -136,6 +140,10 @@ void loadParamsFromFile(param_t *param, std::string filePath)
|
||||
// Cierra el fichero
|
||||
file.close();
|
||||
}
|
||||
#ifdef VERBOSE
|
||||
else
|
||||
std::cout << "Failed to load file: " << filePath << std::endl;
|
||||
#endif
|
||||
|
||||
precalculateZones(param);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user