--HG--
branch : trunk
This commit is contained in:
megamage
2009-01-31 13:58:33 -06:00
273 changed files with 544 additions and 650 deletions

View File

@@ -38,7 +38,7 @@ int PetAI::Permissible(const Creature *creature)
return PERMIT_BASE_NO;
}
PetAI::PetAI(Creature *c) : i_pet(*c), i_tracker(TIME_INTERVAL_LOOK), inCombat(false)
PetAI::PetAI(Creature *c) : CreatureAI(c), i_pet(*c), i_tracker(TIME_INTERVAL_LOOK), inCombat(false)
{
m_AllySet.clear();
UpdateAllies();
@@ -73,8 +73,6 @@ void PetAI::AttackStart(Unit *u)
if(i_pet.Attack(u,true))
{
i_pet.SetInCombatWith(u);
i_pet.clearUnitState(UNIT_STAT_FOLLOW);
// TMGs call CreatureRelocation which via MoveInLineOfSight can call this function
// thus with the following clear the original TMG gets invalidated and crash, doh
@@ -89,11 +87,6 @@ void PetAI::EnterEvadeMode()
{
}
bool PetAI::IsVisible(Unit *pl) const
{
return _isVisible(pl);
}
bool PetAI::_needToStop() const
{
// This is needed for charmed creatures, as once their target was reset other effects can trigger threat
@@ -293,13 +286,6 @@ void PetAI::UpdateAI(const uint32 diff)
}
}
bool PetAI::_isVisible(Unit *u) const
{
//return false; //( ((Creature*)&i_pet)->GetDistanceSq(u) * 1.0<= sWorld.getConfig(CONFIG_SIGHT_GUARDER) && !u->m_stealth && u->isAlive());
return i_pet.GetDistance(u) < sWorld.getConfig(CONFIG_SIGHT_GUARDER)
&& u->isVisibleForOrDetect(&i_pet,true);
}
void PetAI::UpdateAllies()
{
Unit* owner = i_pet.GetCharmerOrOwner();