diff --git a/Source/pack.cpp b/Source/pack.cpp index 21a8e936f..adf5fe8d6 100644 --- a/Source/pack.cpp +++ b/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) {