Empezado a escribir datos de estadisticas en el servidor

This commit is contained in:
2022-11-19 12:07:36 +01:00
parent bc84968b23
commit c35be7d21c
5 changed files with 50 additions and 12 deletions

View File

@@ -22,7 +22,7 @@ Director::Director(int argc, char *argv[])
#endif
// Crea e inicializa las opciones del programa
iniOptions();
initOptions();
// Comprueba los parametros del programa
checkProgramArguments(argc, argv);
@@ -59,7 +59,7 @@ Director::Director(int argc, char *argv[])
music = JA_LoadMusic(asset->get("title.ogg").c_str());
// Inicializa los servicios online
//initOnline();
initOnline();
}
Director::~Director()
@@ -132,7 +132,7 @@ void Director::initOnline()
}
// Crea e inicializa las opciones del programa
void Director::iniOptions()
void Director::initOptions()
{
// Crea el puntero a la estructura de opciones
options = new options_t;
@@ -161,9 +161,13 @@ void Director::iniOptions()
// Online
options->online.enabled = false;
options->online.server = "";
options->online.port = 0;
options->online.server = "jaildoctor.duckdns.org";
options->online.port = 9911;
#ifdef DEBUG
options->online.gameID = "jaildoctors_dilemma_test";
#else
options->online.gameID = "jaildoctors_dilemma";
#endif
options->online.jailerID = "";
}

View File

@@ -51,12 +51,12 @@ private:
section_t section; // Sección y subsección actual del programa;
std::string systemFolder; // Carpeta del sistema donde guardar datos
// Crea e inicializa las opciones del programa
void initOptions();
// Inicializa los servicios online
void initOnline();
// Crea e inicializa las opciones del programa
void iniOptions();
// Comprueba los parametros del programa
void checkProgramArguments(int argc, char *argv[]);

View File

@@ -40,7 +40,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
text = new Text(resource->getOffset("smb2.txt"), resource->getTexture("smb2.png"), renderer);
music = JA_LoadMusic(asset->get("game.ogg").c_str());
deathSound = JA_LoadSound(asset->get("death.wav").c_str());
stats = new Stats(asset->get("stats.csv"));
stats = new Stats(asset->get("stats.csv"), options);
stats->addVisit(room->getName());
// Inicializa el resto de variables

View File

@@ -1,11 +1,13 @@
#include "stats.h"
#include "common/jscore.h"
#include <iostream>
#include <fstream>
#include <sstream>
// Constructor
Stats::Stats(std::string file)
Stats::Stats(std::string file, options_t *options)
{
this->options = options;
filePath = file;
list.clear();
loadFromFile();
@@ -17,6 +19,7 @@ Stats::~Stats()
#ifndef DEBUG
saveToFile();
#endif
saveToServer();
list.clear();
}
@@ -131,6 +134,15 @@ bool Stats::loadFromFile()
return success;
}
// Carga las estadisticas desde un servidor
bool Stats::loadFromServer()
{
if (options->online.enabled)
{
jscore::getUserData(options->online.gameID, options->online.jailerID);
}
}
// Guarda las estadisticas en un fichero
void Stats::saveToFile()
{
@@ -156,3 +168,16 @@ void Stats::saveToFile()
// Cierra el fichero
file.close();
}
// Guarda las estadisticas en un servidor
void Stats::saveToServer()
{
if (options->online.enabled)
{
for (auto item : list)
{
const std::string data = item.name + ";" + std::to_string(item.visited) + ";" + std::to_string(item.died);
jscore::setUserData(options->online.gameID, options->online.jailerID, data);
}
}
}

View File

@@ -17,6 +17,9 @@ struct stats_t
class Stats
{
private:
// Punteros y objetos
options_t *options;
// Variables
std::vector<stats_t> list; // Lista con las estadisticas por habitación
std::string filePath; // Fichero con las estadísticas
@@ -27,12 +30,18 @@ private:
// Carga las estadisticas desde un fichero
bool loadFromFile();
// Carga las estadisticas desde un servidor
bool loadFromServer();
// Guarda las estadisticas en un fichero
void saveToFile();
// Guarda las estadisticas en un servidor
void saveToServer();
public:
// Constructor
Stats(std::string file);
Stats(std::string file, options_t *options);
// Destructor
~Stats();