From 97ee615a8a79ef7737f233107acec5d0b9d78c2d Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 10 Jul 2023 23:08:34 +0200 Subject: [PATCH] Avoid durability overflow when packing items. (#6342) --- Source/pack.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/pack.cpp b/Source/pack.cpp index 9bd6a1f15..fe2dff9e2 100644 --- a/Source/pack.cpp +++ b/Source/pack.cpp @@ -91,8 +91,12 @@ void PackItem(ItemPack &packedItem, const Item &item, bool isHellfire) packedItem.iSeed = SDL_SwapLE32(item._iSeed); packedItem.iCreateInfo = SDL_SwapLE16(item._iCreateInfo); packedItem.bId = (item._iMagical << 1) | (item._iIdentified ? 1 : 0); - packedItem.bDur = item._iDurability; - packedItem.bMDur = item._iMaxDur; + if (item._iMaxDur > 255) + packedItem.bMDur = 254; + else + packedItem.bMDur = item._iMaxDur; + packedItem.bDur = std::min(item._iDurability, packedItem.bMDur); + packedItem.bCh = item._iCharges; packedItem.bMCh = item._iMaxCharges; if (item.IDidx == IDI_GOLD)