forked from jaildesigner-jailgames/jaildoctors_dilemma
Empezado a escribir datos de estadisticas en el servidor
This commit is contained in:
@@ -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 = "";
|
||||
}
|
||||
|
||||
|
||||
@@ -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[]);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
@@ -155,4 +167,17 @@ 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,9 +17,12 @@ 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
|
||||
std::string filePath; // Fichero con las estadísticas
|
||||
|
||||
// Busca una entrada en la lista por nombre
|
||||
int findByName(std::string name);
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user