From 8e634ff02cb66edd30d6bd567de86ffbf373d9c8 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sun, 2 May 2021 00:56:02 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=20Remove=20`=5FiAnimWidth?= =?UTF-8?q?`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No longer needed as of #1796 We could probably go further and not expose `ItemAnimWidth`, but it'd be dangerous because sometimes `_iAnimData` is null. --- Source/items.cpp | 3 --- Source/items.h | 4 +++- Source/loadsave.cpp | 9 ++++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Source/items.cpp b/Source/items.cpp index 1889aba01..16678ba8c 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -23,7 +23,6 @@ namespace devilution { namespace { std::optional itemanims[ITEMTYPES]; -constexpr int ItemAnimWidth = 96; } // namespace @@ -2259,7 +2258,6 @@ void SetupItem(int i) it = ItemCAnimTbl[items[i]._iCurs]; items[i]._iAnimData = itemanims[it] ? &*itemanims[it] : nullptr; items[i]._iAnimLen = ItemAnimLs[it]; - items[i]._iAnimWidth = ItemAnimWidth; items[i]._iIdentified = false; items[i]._iPostDraw = false; @@ -2969,7 +2967,6 @@ void RespawnItem(ItemStruct *item, bool FlipFlag) it = ItemCAnimTbl[item->_iCurs]; item->_iAnimData = &*itemanims[it]; item->_iAnimLen = ItemAnimLs[it]; - item->_iAnimWidth = ItemAnimWidth; item->_iPostDraw = false; item->_iRequest = false; if (FlipFlag) { diff --git a/Source/items.h b/Source/items.h index 6d288e8ee..0ab96bc2f 100644 --- a/Source/items.h +++ b/Source/items.h @@ -163,6 +163,9 @@ enum icreateinfo_flag2 { // clang-format on }; +// All item animation frames have this width. +constexpr int ItemAnimWidth = 96; + struct ItemStruct { int32_t _iSeed; uint16_t _iCreateInfo; @@ -172,7 +175,6 @@ struct ItemStruct { CelSprite *_iAnimData; // PSX name -> ItemFrame uint8_t _iAnimLen; // Number of frames in current animation uint8_t _iAnimFrame; // Current frame of animation. - int _iAnimWidth; bool _iDelFlag; // set when item is flagged for deletion, deprecated in 1.02 uint8_t _iSelFlag; bool _iPostDraw; diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 4f84cdc25..8850c3fe3 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -218,9 +218,7 @@ static void LoadItemData(LoadHelper *file, ItemStruct *pItem) file->skip(4); // Skip pointer _iAnimData pItem->_iAnimLen = file->nextLE(); pItem->_iAnimFrame = file->nextLE(); - pItem->_iAnimWidth = file->nextLE(); - // Skip _iAnimWidth2 - file->skip(4); + file->skip(8); // Skip _iAnimWidth and _iAnimWidth2 file->skip(4); // Unused since 1.02 pItem->_iSelFlag = file->nextLE(); file->skip(3); // Alignment @@ -1206,9 +1204,10 @@ static void SaveItem(SaveHelper *file, ItemStruct *pItem) file->skip(4); // Skip pointer _iAnimData file->writeLE(pItem->_iAnimLen); file->writeLE(pItem->_iAnimFrame); - file->writeLE(pItem->_iAnimWidth); + // write _iAnimWidth for vanilla compatibility + file->writeLE(ItemAnimWidth); // write _iAnimWidth2 for vanilla compatibility - file->writeLE(CalculateWidth2(pItem->_iAnimWidth)); + file->writeLE(CalculateWidth2(ItemAnimWidth)); file->skip(4); // Unused since 1.02 file->writeLE(pItem->_iSelFlag); file->skip(3); // Alignment