#include "jail_engine/jscore.h" #include "online.h" #include #include #include // 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(); }