aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/SpellAuras.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 51c27aabac3..30e81e39587 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3908,16 +3908,20 @@ void AuraEffect::HandleAuraModDisarm(bool apply, bool Real, bool /*changeAmount*
return;
}
+ if(!apply)
+ m_target->RemoveFlag(field, flag);
+
if (m_target->GetTypeId() == TYPEID_PLAYER)
{
+ // This is between the two because there is a check in _ApplyItemMods
+ // we must make sure that flag is always removed when call that function
+ // refer to DurabilityPointsLoss
if(Item *pItem = ((Player*)m_target)->GetItemByPos( INVENTORY_SLOT_BAG_0, slot ))
((Player*)m_target)->_ApplyItemMods(pItem, slot, !apply);
}
if(apply)
- m_target->SetFlag(field, flag);
- else
- m_target->RemoveFlag(field, flag);
+ m_target->SetFlag(field, flag);
if (m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->GetCurrentEquipmentId())
m_target->UpdateDamagePhysical(attType);