Files
jdd_opendingux/source/online.cpp

102 lines
2.7 KiB
C++

#include "jail_engine/jscore.h"
#include "online.h"
#include <fstream>
#include <iostream>
#include <sstream>
// Constructor
Online::Online(options_t *options)
{
this->options = options;
allData = "";
statsData = "";
cheevosData = "";
STATS_FLAG_INI = "STATS_FLAG_INI";
STATS_FLAG_END = "STATS_FLAG_END";
CHEEVOS_FLAG_INI = "CHEEVOS_FLAG_INI";
CHEEVOS_FLAG_END = "CHEEVOS_FLAG_END";
getAllData();
std::cout << "allData: " << allData << std::endl;
std::cout << "statsData: " << statsData << std::endl;
std::cout << "cheevosData: " << cheevosData << std::endl;
}
// Destructor
Online::~Online()
{
}
// Obtiene todos los datos y los coloca en sus respectivas variables
void Online::getAllData()
{
if (!options->online.enabled)
{
allData = jscore::getUserData(options->online.gameID, options->online.jailerID);
}
if (allData.length() == 0)
{
return;
}
// Obtiene el inicio y el fin de la cadena con las estadisticas
const size_t statsIni = allData.find(STATS_FLAG_INI) + STATS_FLAG_INI.length();
const size_t statsEnd = allData.find(STATS_FLAG_END);
const size_t statsDataLenght = statsEnd - statsIni;
// Obtiene la cadena con las estadisticas
if (statsIni != std::string::npos && statsEnd != std::string::npos)
statsData = allData.substr(statsIni, statsDataLenght);
// Obtiene el inicio y el fin de la cadena con los logros
const size_t cheevosIni = allData.find(CHEEVOS_FLAG_INI) + CHEEVOS_FLAG_INI.length();
const size_t cheevosEnd = allData.find(CHEEVOS_FLAG_END);
const size_t cheevosDataLenght = cheevosEnd - cheevosIni;
// Obtiene la cadena con los logros
if (cheevosIni != std::string::npos && cheevosEnd != std::string::npos)
cheevosData = allData.substr(cheevosIni, cheevosDataLenght);
}
// Coloca todos los datos desde las variables en la cadena allData
void Online::setAllData()
{
allData = STATS_FLAG_INI + statsData + STATS_FLAG_END + CHEEVOS_FLAG_INI + cheevosData + CHEEVOS_FLAG_END;
if (options->online.enabled)
{
jscore::setUserData(options->online.gameID, options->online.jailerID, allData);
}
}
// Obtiene las estadísticas guardadas en el servidor
std::string Online::getStats()
{
getAllData();
return statsData;
}
// Guarda las estadísticas en el servidor
void Online::setStats(std::string data)
{
getAllData();
statsData = data;
setAllData();
}
// Obtiene los logros guardadas en el servidor
std::string Online::getCheevos()
{
getAllData();
return cheevosData;
}
// Guarda los logros en el servidor
void Online::setCheevos(std::string data)
{
getAllData();
cheevosData = data;
setAllData();
}