diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 79a1c3be3..3bfc5bad8 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -328,7 +328,7 @@ void LoadPlayer(LoadHelper &file, Player &player) player.position.tile.y = file.NextLE(); player.position.future.x = file.NextLE(); player.position.future.y = file.NextLE(); - file.Skip(8); // Skip _ptargx and _ptargy + file.Skip(2); // Skip _ptargx and _ptargy player.position.last.x = file.NextLE(); player.position.last.y = file.NextLE(); player.position.old.x = file.NextLE(); @@ -340,15 +340,13 @@ void LoadPlayer(LoadHelper &file, Player &player) player._pdir = static_cast(file.NextLE()); file.Skip(4); // Unused player._pgfxnum = file.NextLE(); - file.Skip(4); // Skip pointer pData + file.Skip(); // Skip pointer pData player.AnimInfo = {}; player.AnimInfo.TicksPerFrame = file.NextLE() + 1; player.AnimInfo.TickCounterOfCurrentFrame = file.NextLE(); player.AnimInfo.NumberOfFrames = file.NextLE(); player.AnimInfo.CurrentFrame = file.NextLE() - 1; - file.Skip(4); // Skip _pAnimWidth - file.Skip(4); // Skip _pAnimWidth2 - file.Skip(4); // Skip _peflag + file.Skip(3); // Skip _pAnimWidth, _pAnimWidth2, _peflag player._plid = file.NextLE(); player._pvid = file.NextLE(); @@ -407,12 +405,12 @@ void LoadPlayer(LoadHelper &file, Player &player) player._pMaxHPBase = file.NextLE(); player._pHitPoints = file.NextLE(); player._pMaxHP = file.NextLE(); - file.Skip(sizeof(int32_t)); // Skip _pHPPer - always derived from hp and maxHP. + file.Skip(); // Skip _pHPPer - always derived from hp and maxHP. player._pManaBase = file.NextLE(); player._pMaxManaBase = file.NextLE(); player._pMana = file.NextLE(); player._pMaxMana = file.NextLE(); - file.Skip(sizeof(int32_t)); // Skip _pManaPer - always derived from mana and maxMana + file.Skip(); // Skip _pManaPer - always derived from mana and maxMana player._pLevel = file.NextLE(); player._pMaxLvl = file.NextLE(); file.Skip(2); // Alignment @@ -430,10 +428,10 @@ void LoadPlayer(LoadHelper &file, Player &player) player.position.temp.y = file.NextLE(); player.tempDirection = static_cast(file.NextLE()); player.spellLevel = file.NextLE(); - file.Skip(4); // skip _pVar5, was used for storing position of a tile which should have its HorizontalMovingPlayer flag removed after walking + file.Skip(); // skip _pVar5, was used for storing position of a tile which should have its HorizontalMovingPlayer flag removed after walking player.position.offset2.deltaX = file.NextLE(); player.position.offset2.deltaY = file.NextLE(); - file.Skip(4); // Skip actionFrame + file.Skip(); // Skip actionFrame for (uint8_t i = 0; i < giNumberOfLevels; i++) player._pLvlVisited[i] = file.NextBool8(); @@ -441,33 +439,33 @@ void LoadPlayer(LoadHelper &file, Player &player) for (uint8_t i = 0; i < giNumberOfLevels; i++) player._pSLvlVisited[i] = file.NextBool8(); - file.Skip(2); // Alignment - file.Skip(4); // skip _pGFXLoad - file.Skip(4 * 8); // Skip pointers _pNAnim + file.Skip(2); // Alignment + file.Skip(); // skip _pGFXLoad + file.Skip(8); // Skip pointers _pNAnim player._pNFrames = file.NextLE(); - file.Skip(4); // skip _pNWidth - file.Skip(4 * 8); // Skip pointers _pWAnim + file.Skip(); // skip _pNWidth + file.Skip(8); // Skip pointers _pWAnim player._pWFrames = file.NextLE(); - file.Skip(4); // skip _pWWidth - file.Skip(4 * 8); // Skip pointers _pAAnim + file.Skip(); // skip _pWWidth + file.Skip(8); // Skip pointers _pAAnim player._pAFrames = file.NextLE(); - file.Skip(4); // skip _pAWidth + file.Skip(); // skip _pAWidth player._pAFNum = file.NextLE(); - file.Skip(4 * 8); // Skip pointers _pLAnim - file.Skip(4 * 8); // Skip pointers _pFAnim - file.Skip(4 * 8); // Skip pointers _pTAnim + file.Skip(8); // Skip pointers _pLAnim + file.Skip(8); // Skip pointers _pFAnim + file.Skip(8); // Skip pointers _pTAnim player._pSFrames = file.NextLE(); - file.Skip(4); // skip _pSWidth + file.Skip(); // skip _pSWidth player._pSFNum = file.NextLE(); - file.Skip(4 * 8); // Skip pointers _pHAnim + file.Skip(8); // Skip pointers _pHAnim player._pHFrames = file.NextLE(); - file.Skip(4); // skip _pHWidth - file.Skip(4 * 8); // Skip pointers _pDAnim + file.Skip(); // skip _pHWidth + file.Skip(8); // Skip pointers _pDAnim player._pDFrames = file.NextLE(); - file.Skip(4); // skip _pDWidth - file.Skip(4 * 8); // Skip pointers _pBAnim + file.Skip(); // skip _pDWidth + file.Skip(8); // Skip pointers _pBAnim player._pBFrames = file.NextLE(); - file.Skip(4); // skip _pBWidth + file.Skip(); // skip _pBWidth for (Item &item : player.InvBody) LoadItemData(file, item); @@ -1202,32 +1200,32 @@ void SavePlayer(SaveHelper &file, const Player &player) file.Skip(2); // Alignment - file.Skip(); // Skip _pGFXLoad - file.Skip(4 * 8); // Skip pointers _pNAnim + file.Skip(); // Skip _pGFXLoad + file.Skip(8); // Skip pointers _pNAnim file.WriteLE(player._pNFrames); - file.Skip(4); // Skip _pNWidth - file.Skip(4 * 8); // Skip pointers _pWAnim + file.Skip(); // Skip _pNWidth + file.Skip(8); // Skip pointers _pWAnim file.WriteLE(player._pWFrames); - file.Skip(4); // Skip _pWWidth - file.Skip(4 * 8); // Skip pointers _pAAnim + file.Skip(); // Skip _pWWidth + file.Skip(8); // Skip pointers _pAAnim file.WriteLE(player._pAFrames); - file.Skip(4); // Skip _pAWidth + file.Skip(); // Skip _pAWidth file.WriteLE(player._pAFNum); - file.Skip(4 * 8); // Skip pointers _pLAnim - file.Skip(4 * 8); // Skip pointers _pFAnim - file.Skip(4 * 8); // Skip pointers _pTAnim + file.Skip(8); // Skip pointers _pLAnim + file.Skip(8); // Skip pointers _pFAnim + file.Skip(8); // Skip pointers _pTAnim file.WriteLE(player._pSFrames); - file.Skip(4); // Skip _pSWidth + file.Skip(); // Skip _pSWidth file.WriteLE(player._pSFNum); - file.Skip(4 * 8); // Skip pointers _pHAnim + file.Skip(8); // Skip pointers _pHAnim file.WriteLE(player._pHFrames); - file.Skip(4); // Skip _pHWidth - file.Skip(4 * 8); // Skip pointers _pDAnim + file.Skip(); // Skip _pHWidth + file.Skip(8); // Skip pointers _pDAnim file.WriteLE(player._pDFrames); - file.Skip(4); // Skip _pDWidth - file.Skip(4 * 8); // Skip pointers _pBAnim + file.Skip(); // Skip _pDWidth + file.Skip(8); // Skip pointers _pBAnim file.WriteLE(player._pBFrames); - file.Skip(4); // Skip _pBWidth + file.Skip(); // Skip _pBWidth for (const Item &item : player.InvBody) SaveItem(file, item); @@ -2193,7 +2191,7 @@ void LoadGame(bool firstflag) void SaveHeroItems(MpqWriter &saveWriter, Player &player) { - size_t itemCount = NUM_INVLOC + NUM_INV_GRID_ELEM + MAXBELTITEMS; + size_t itemCount = static_cast(NUM_INVLOC) + NUM_INV_GRID_ELEM + MAXBELTITEMS; SaveHelper file(saveWriter, "heroitems", itemCount * (gbIsHellfire ? HellfireItemSaveSize : DiabloItemSaveSize) + sizeof(uint8_t)); file.WriteLE(gbIsHellfire ? 1 : 0);