From 1d31c5eb6f8f11b1f822b7de9b55beaa626fdc45 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Thu, 10 Nov 2022 01:17:52 +0300 Subject: [PATCH] Remove the correct bound item when the effect expires --- apps/openmw/mwmechanics/spelleffects.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwmechanics/spelleffects.cpp b/apps/openmw/mwmechanics/spelleffects.cpp index dd5d8756b7..df8f1f4c64 100644 --- a/apps/openmw/mwmechanics/spelleffects.cpp +++ b/apps/openmw/mwmechanics/spelleffects.cpp @@ -217,10 +217,13 @@ namespace bool wasEquipped = currentItem != store.end() && Misc::StringUtils::ciEqual(currentItem->getCellRef().getRefId(), itemId); - if (actor != MWMechanics::getPlayer()) - { + if (wasEquipped) + store.remove(*currentItem, 1, actor); + else store.remove(itemId, 1, actor); + if (actor != MWMechanics::getPlayer()) + { // Equip a replacement if (!wasEquipped) return; @@ -258,8 +261,6 @@ namespace action.execute(actor); } } - - store.remove(itemId, 1, actor); } bool isCorprusEffect(const MWMechanics::ActiveSpells::ActiveEffect& effect, bool harmfulOnly = false)