*Correct target requirement for eyes of the beast and add some crash preventing checks to charm code.

--HG--
branch : trunk
This commit is contained in:
QAston committed 2009-07-08 22:26:46 +02:00
1 parent 60e8de1d2e
commit f829ee0dc0
3 files changed
+24 -11

No files matched your search

+9 -1
View File
@@ -14033,6 +14033,10 @@ void Unit::SetCharmedBy(Unit* charmer, CharmType type)
if(GetTypeId() == TYPEID_PLAYER && ((Player*)this)->GetTransport())
return;
// Already charmed
if(GetCharmerGUID())
return;
CastStop();
CombatStop(); //TODO: CombatStop(true) may cause crash (interrupt spells)
DeleteThreatList();
@@ -14122,7 +14126,7 @@ void Unit::SetCharmedBy(Unit* charmer, CharmType type)
case CHARM_TYPE_CONVERT:
break;
}
}
}
}
void Unit::RemoveCharmedBy(Unit *charmer)
@@ -14130,6 +14134,10 @@ void Unit::RemoveCharmedBy(Unit *charmer)
if(!isCharmed())
return;
// Charm was not set for unit - return
if (charmer && charmer->m_Controlled.find(this) == charmer->m_Controlled.end())
return;
if(!charmer)
charmer = GetCharmer();
else if(charmer != GetCharmer()) // one aura overrides another?