rendered paste bodyIndex: src/game/Player.cpp
===================================================================
--- src/game/Player.cpp (revision 5314)
+++ src/game/Player.cpp (working copy)
@@ -14468,16 +14468,6 @@
}
}
-void Player::Uncharm()
-{
- Unit* charm = GetCharm();
- if(!charm) return;
-
- charm->RemoveSpellsCausingAura(SPELL_AURA_MOD_CHARM);
- charm->RemoveSpellsCausingAura(SPELL_AURA_MOD_POSSESS);
-
-}
-
void Player::Say(const std::string text, const uint32 language)
{
WorldPacket data(SMSG_MESSAGECHAT, 200);
Index: src/game/Player.h
===================================================================
--- src/game/Player.h (revision 5314)
+++ src/game/Player.h (working copy)
@@ -974,7 +974,6 @@
void UpdateInnerTime (int time) { time_inn_enter = time; };
void RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent = false);
- void Uncharm();
void Say(const std::string text, const uint32 language);
void Yell(const std::string text, const uint32 language);
Index: src/game/Unit.cpp
===================================================================
--- src/game/Unit.cpp (revision 5314)
+++ src/game/Unit.cpp (working copy)
@@ -6245,6 +6245,17 @@
SetUInt64Value(UNIT_FIELD_CHARM,charmed ? charmed->GetGUID() : 0);
}
+void Unit::Uncharm()
+{
+ Unit* charm = GetCharm();
+ if(!charm) return;
+ // stop combat
+ charm->CombatStop();
+ // remove auras from Charm
+ charm->RemoveSpellsCausingAura(SPELL_AURA_MOD_CHARM);
+ charm->RemoveSpellsCausingAura(SPELL_AURA_MOD_POSSESS);
+}
+
void Unit::UnsummonAllTotems()
{
for (int8 i = 0; i < 4; ++i)
@@ -7580,6 +7591,7 @@
{
RemoveAllAurasOnDeath();
UnsummonAllTotems();
+ Uncharm();
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, false);
ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false);
Index: src/game/Unit.h
===================================================================
--- src/game/Unit.h (revision 5314)
+++ src/game/Unit.h (working copy)
@@ -956,6 +956,7 @@
void ModifyAuraState(AuraState flag, bool apply);
bool HasAuraState(AuraState flag) const { return HasFlag(UNIT_FIELD_AURASTATE, 1<<(flag-1)); }
void UnsummonAllTotems();
+ void Uncharm();
int32 SpellBaseDamageBonus(int32 SchoolMask);
int32 SpellBaseHealingBonus(int32 SchoolMask);
int32 SpellBaseDamageBonusForVictim(int32 SchoolMask, Unit *pVictim);