From cb241a35e7bbdc341a3979f1b9cc8ee49bc64d29 Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Wed, 16 Oct 2024 11:14:09 +0200 Subject: [PATCH] fix(Core/Items): Don't remove all owned auras on removing enchantments. (#20220) --- src/server/game/Entities/Unit/Unit.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 49773866e..94b60f666 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5095,10 +5095,13 @@ void Unit::RemoveAurasDueToItemSpell(uint32 spellId, ObjectGuid castItemGuid) ++iter; } - for (AuraMap::iterator iter = m_ownedAuras.begin(); iter != m_ownedAuras.end();) + for (AuraMap::iterator iter = m_ownedAuras.lower_bound(spellId); iter != m_ownedAuras.upper_bound(spellId);) { if (iter->second->GetCastItemGUID() == castItemGuid) - RemoveOwnedAura(iter, AURA_REMOVE_BY_DEFAULT); + { + RemoveOwnedAura(iter, AURA_REMOVE_BY_DEFAULT); + iter = m_ownedAuras.lower_bound(spellId); + } else ++iter; }