From bfd289db88b79ede40db545d57d4c048ee8d1b1d Mon Sep 17 00:00:00 2001 From: staphen Date: Sat, 9 Nov 2024 11:47:47 -0500 Subject: [PATCH] Clear unique item flags in LoadGameLevel() --- Source/diablo.cpp | 1 + Source/items.cpp | 6 +++++- Source/items.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index d8974ce86..54302f031 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -2884,6 +2884,7 @@ void LoadGameLevelFirstFlagEntry() qtextflag = false; if (!HeadlessMode) { InitInv(); + ClearUniqueItemFlags(); InitQuestText(); InitInfoBoxGfx(); InitHelp(); diff --git a/Source/items.cpp b/Source/items.cpp index 96c1f1d94..995707cd3 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -2413,6 +2413,11 @@ bool IsUniqueAvailable(int i) return gbIsHellfire || i <= 89; } +void ClearUniqueItemFlags() +{ + memset(UniqueItemFlags, 0, sizeof(UniqueItemFlags)); +} + void InitItemGFX() { char arglist[64]; @@ -2422,7 +2427,6 @@ void InitItemGFX() *BufCopy(arglist, "items\\", ItemDropNames[i]) = '\0'; itemanims[i] = LoadCel(arglist, ItemAnimWidth); } - memset(UniqueItemFlags, 0, sizeof(UniqueItemFlags)); } void InitItems() diff --git a/Source/items.h b/Source/items.h index 014f90e41..67d9afe7a 100644 --- a/Source/items.h +++ b/Source/items.h @@ -487,6 +487,7 @@ extern DVL_API_FOR_TEST bool UniqueItemFlags[128]; uint8_t GetOutlineColor(const Item &item, bool checkReq); bool IsItemAvailable(int i); bool IsUniqueAvailable(int i); +void ClearUniqueItemFlags(); void InitItemGFX(); void InitItems(); void CalcPlrItemVals(Player &player, bool Loadgfx);