Posibilidad de activar o desactivar el modo online

This commit is contained in:
2022-11-15 22:34:26 +01:00
parent 3ac9c1afce
commit a0042b91cc
5 changed files with 59 additions and 21 deletions

View File

@@ -21,8 +21,10 @@ Director::Director(std::string path)
section.name = PROG_SECTION_QUIT;
}
// Crea el puntero a la estructura y carga el fichero de configuración
options = new options_t;
// Inicializa las opciones del programa
initOptions();
// Carga el fichero de configuración
loadConfigFile();
// Inicializa SDL
@@ -292,9 +294,11 @@ bool Director::setFileList()
return asset->check();
}
// Carga el fichero de configuración
bool Director::loadConfigFile()
// Inicializa las opciones del programa
void Director::initOptions()
{
options = new options_t;
// Pone unos valores por defecto
options->input.clear();
@@ -322,10 +326,17 @@ bool Director::loadConfigFile()
options->keepAspect = true;
options->borderSize = 0.0f;
options->borderEnabled = false;
// Online
options->online.enabled = true;
options->online.gameID = "coffee_crisis";
options->online.jailerID = "";
options->online.score = 0;
}
// Carga el fichero de configuración
bool Director::loadConfigFile()
{
// Indicador de éxito en la carga
bool success = true;
@@ -512,6 +523,13 @@ void Director::run()
// Inicializa los servicios online
void Director::initOnline()
{
if (!options->online.enabled)
{
screen->showText("Modo Online deshabilitado");
std::cout << "Modo Online deshabilitado" << std::endl;
return;
}
// Obtiene la información online
if (jscore::initOnlineScore(options->online.gameID))
{
@@ -535,28 +553,32 @@ void Director::initOnline()
f.close();
}
}
else
{ // Escribe en el fichero
f << "";
}
f.close();
if (options->online.jailerID == "")
{
{ // Jailer ID no definido
screen->showText("No ha especificado ningun Jailer ID");
std::cout << "No ha especificado ningun Jailer ID" << std::endl;
}
else
{
{ // Jailer ID iniciado
screen->showText(options->online.jailerID + " ha iniciado sesion");
std::cout << options->online.jailerID << " ha iniciado sesion" << std::endl;
}
// Obten la puntuación online
const int points = jscore::getUserPoints(options->online.gameID, options->online.jailerID);
if (points == 0)
{
screen->showText("No se ha podido obtener la puntuacion online");
std::cout << "No se ha podido obtener la puntuacion online" << std::endl;
}
else
{
options->online.score = points;
// Obten la puntuación online
const int points = jscore::getUserPoints(options->online.gameID, options->online.jailerID);
if (points == 0)
{ // Fallo de conexión o no hay registros
screen->showText("No se ha podido obtener la puntuacion online");
std::cout << "No se ha podido obtener la puntuacion online" << std::endl;
}
else
{
options->online.score = points;
}
}
}