moved int64->blob parsing to a separate function

This commit is contained in:
kamilprzyb
2020-09-14 23:43:39 +02:00
parent b6cce78016
commit deebc2f51a
4 changed files with 18 additions and 11 deletions

View File

@@ -327,19 +327,12 @@ Database::DbPlayer Database::playerToDb(Player *player)
result.BatteryW = player->batteryW;
result.Mentor = player->mentor;
// quests
// quests: parsing to blob
result.QuestFlag = std::vector<char>();
// parsing long array to char vector
for (int i=0; i<16; i++)
{
int64_t temp = player->aQuestFlag[i];
for (int j = 0; j < 8; j++) {
int64_t check2 = (temp >> (8 * (7 - j)));
char toadd = check2;
result.QuestFlag.push_back(
toadd
);
}
int64_t flag = player->aQuestFlag[i];
appendBlob(&result.QuestFlag, flag);
}
@@ -539,3 +532,13 @@ void Database::getNanos(Player* player) {
}
}
#pragma endregion ShardServer
#pragma region parsingBlobs
void Database::appendBlob(std::vector<char> *blob, int64_t input) {
for (int i = 0; i < 8; i++) {
char toadd = (input >> (8 * (7 - i)));
blob->push_back(toadd);
}
}
#pragma endregion parsingBlobs

View File

@@ -110,4 +110,7 @@ namespace Database {
void getInventory(Player* player);
void getNanos(Player* player);
//parsing blobs
void appendBlob(std::vector<char>*blob, int64_t input);
}

View File

@@ -41,7 +41,7 @@ struct Player {
bool isTradeConfirm;
bool IsGM;
int64_t aQuestFlag[16];
int64_t aQuestFlag[16];
int tasks[ACTIVE_MISSION_COUNT];
sItemBase QInven[AQINVEN_COUNT];
};

View File

@@ -237,6 +237,7 @@ void PlayerManager::enterPlayer(CNSocket* sock, CNPacketData* data) {
}
// missions
// the packet requires 32 items, but the client only checks the first 16 (shrug)
for (int i = 0; i < 16; i++) {
response.PCLoadData2CL.aQuestFlag[i] = plr.aQuestFlag[i];
}