Browse Source

Clean up packing/unpacking players

pull/1947/head
Anders Jenbo 5 years ago
parent
commit
ca65550a5a
  1. 52
      Source/pack.cpp

52
Source/pack.cpp

@ -81,35 +81,21 @@ void PackPlayer(PkPlayerStruct *pPack, const PlayerStruct &player, bool manashie
for (int i = 37; i < 47; i++)
pPack->pSplLvl2[i - 37] = player._pSplLvl[i];
PkItemStruct *pki = &pPack->InvBody[0];
const ItemStruct *pi = &player.InvBody[0];
for (int i = 0; i < NUM_INVLOC; i++) {
PackItem(pki, pi);
pki++;
pi++;
PackItem(&pPack->InvBody[i], &player.InvBody[i]);
}
pki = &pPack->InvList[0];
pi = &player.InvList[0];
for (int i = 0; i < NUM_INV_GRID_ELEM; i++) {
PackItem(pki, pi);
pki++;
pi++;
PackItem(&pPack->InvList[i], &player.InvList[i]);
}
for (int i = 0; i < NUM_INV_GRID_ELEM; i++)
pPack->InvGrid[i] = player.InvGrid[i];
pPack->_pNumInv = player._pNumInv;
pki = &pPack->SpdList[0];
pi = &player.SpdList[0];
for (int i = 0; i < MAXBELTITEMS; i++) {
PackItem(pki, pi);
pki++;
pi++;
PackItem(&pPack->SpdList[i], &player.SpdList[i]);
}
pPack->wReflections = SDL_SwapLE16(player.wReflections);
@ -239,40 +225,28 @@ void UnPackPlayer(const PkPlayerStruct *pPack, int pnum, bool netSync)
for (int i = 37; i < 47; i++)
player._pSplLvl[i] = pPack->pSplLvl2[i - 37];
const PkItemStruct *pki = &pPack->InvBody[0];
ItemStruct *pi = &player.InvBody[0];
for (int i = 0; i < NUM_INVLOC; i++) {
bool isHellfire = netSync ? ((pki->dwBuff & CF_HELLFIRE) != 0) : pPack->bIsHellfire;
UnPackItem(pki, pi, isHellfire);
pki++;
pi++;
auto packedItem = pPack->InvBody[i];
bool isHellfire = netSync ? ((packedItem.dwBuff & CF_HELLFIRE) != 0) : pPack->bIsHellfire;
UnPackItem(&packedItem, &player.InvBody[i], isHellfire);
}
pki = &pPack->InvList[0];
pi = &player.InvList[0];
for (int i = 0; i < NUM_INV_GRID_ELEM; i++) {
bool isHellfire = netSync ? ((pki->dwBuff & CF_HELLFIRE) != 0) : pPack->bIsHellfire;
UnPackItem(pki, pi, isHellfire);
pki++;
pi++;
auto packedItem = pPack->InvList[i];
bool isHellfire = netSync ? ((packedItem.dwBuff & CF_HELLFIRE) != 0) : pPack->bIsHellfire;
UnPackItem(&packedItem, &player.InvList[i], isHellfire);
}
for (int i = 0; i < NUM_INV_GRID_ELEM; i++)
player.InvGrid[i] = pPack->InvGrid[i];
player._pNumInv = pPack->_pNumInv;
VerifyGoldSeeds(&player);
pki = &pPack->SpdList[0];
pi = &player.SpdList[0];
VerifyGoldSeeds(player);
for (int i = 0; i < MAXBELTITEMS; i++) {
bool isHellfire = netSync ? ((pki->dwBuff & CF_HELLFIRE) != 0) : pPack->bIsHellfire;
UnPackItem(pki, pi, isHellfire);
pki++;
pi++;
auto packedItem = pPack->SpdList[i];
bool isHellfire = netSync ? ((packedItem.dwBuff & CF_HELLFIRE) != 0) : pPack->bIsHellfire;
UnPackItem(&packedItem, &player.SpdList[i], isHellfire);
}
if (pnum == myplr) {

Loading…
Cancel
Save