#include "memory.hpp" #include "cpp-base64/base64.h" #include #include Player *Memory::loadFromCode(std::string code) { code = base64_decode(code); char playerName[16] = {0}; int playerHP = 0; int playerAtk = 0; int playerDef = 0; int playerLevel = 0; int playerExp = 0; int result = sscanf(code.c_str(), "PlayerLevel=%d;PlayerExp=%d;PlayerHP=%d;PlayerAtk=%d;PlayerDef=%d;PlayerName=%15s", &playerLevel, &playerExp, &playerHP, &playerAtk, &playerDef, playerName); std::string playerTrueName = playerName; if (result == 6) { return new Player(playerTrueName, playerHP, playerAtk, playerDef, playerLevel, playerExp); } else { return nullptr; } } std::string Memory::saveToCode(Player *player) { char code[256]; snprintf(code, sizeof(code), "PlayerLevel=%d;PlayerExp=%d;PlayerHP=%d;PlayerAtk=%d;PlayerDef=%d;PlayerName=%s", player->getLevel(), player->getExp(), player->getMaxHP(), player->getAtk(), player->getDef(), player->getName().c_str()); return base64_encode(reinterpret_cast(code), strlen(code)); }