aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellAuras.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-06-10 10:13:45 -0500
committermegamage <none@none>2009-06-10 10:13:45 -0500
commitb8f95e054617bb5ae6bf80401865f04b43c3b57f (patch)
tree08652a33db284ba6bcfd034d2bfcd135e58d5a54 /src/game/SpellAuras.cpp
parent40e353a9ca49fcad6ffa70224c7c2137e71ed205 (diff)
*Fix the bug that players lose stats when change weapons when have disarm auras.
--HG-- branch : trunk
Diffstat (limited to 'src/game/SpellAuras.cpp')
-rw-r--r--src/game/SpellAuras.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 43f004d7701..51c27aabac3 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3907,17 +3907,19 @@ void AuraEffect::HandleAuraModDisarm(bool apply, bool Real, bool /*changeAmount*
default:
return;
}
- if(apply)
- m_target->SetFlag(field, flag);
- else
- m_target->RemoveFlag(field, flag);
if (m_target->GetTypeId() == TYPEID_PLAYER)
{
if(Item *pItem = ((Player*)m_target)->GetItemByPos( INVENTORY_SLOT_BAG_0, slot ))
((Player*)m_target)->_ApplyItemMods(pItem, slot, !apply);
}
- else if (((Creature*)m_target)->GetCurrentEquipmentId())
+
+ if(apply)
+ m_target->SetFlag(field, flag);
+ else
+ m_target->RemoveFlag(field, flag);
+
+ if (m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->GetCurrentEquipmentId())
m_target->UpdateDamagePhysical(attType);
}
@@ -5418,8 +5420,7 @@ void AuraEffect::HandleModDamageDone(bool apply, bool Real, bool changeAmount)
m_target->ApplyModUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+i,m_amount,apply);
}
}
- Pet* pet = ((Player*)m_target)->GetPet();
- if(pet)
+ if(Guardian* pet = ((Player*)m_target)->GetGuardianPet())
pet->UpdateAttackPowerAndDamage();
}
}