aboutsummaryrefslogtreecommitdiff
path: root/src/game/AggressorAI.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-04-14 19:54:49 -0500
committermegamage <none@none>2009-04-14 19:54:49 -0500
commit3a658002180e30de4e7037a14e2b4fc0788b5d40 (patch)
treef62abe1bfc8ec2fbf5fff81c5eb73c6cb1e99a04 /src/game/AggressorAI.cpp
parent4f4c6aeaf533419a7933e8ff0ee6f09d976a04b7 (diff)
[7667] Add to CreatureAI field pointing to creature itself. Use it instead diff. fields in subclases. Author: VladimirMangos
Also send pointer to AI constructors ans mark constructors as explicit. This changes allow move now some generic often used AI code to CreatureAI helper functions. --HG-- branch : trunk
Diffstat (limited to 'src/game/AggressorAI.cpp')
-rw-r--r--src/game/AggressorAI.cpp52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/game/AggressorAI.cpp b/src/game/AggressorAI.cpp
index a1120e8365e..37a876bb059 100644
--- a/src/game/AggressorAI.cpp
+++ b/src/game/AggressorAI.cpp
@@ -37,78 +37,78 @@ AggressorAI::Permissible(const Creature *creature)
return PERMIT_BASE_NO;
}
-AggressorAI::AggressorAI(Creature *c) : CreatureAI(c), i_creature(*c), i_victimGuid(0), i_state(STATE_NORMAL), i_tracker(TIME_INTERVAL_LOOK)
+AggressorAI::AggressorAI(Creature *c) : CreatureAI(c), i_victimGuid(0), i_state(STATE_NORMAL), i_tracker(TIME_INTERVAL_LOOK)
{
}
void AggressorAI::EnterEvadeMode()
{
- if( !i_creature.isAlive() )
+ if( !m_creature->isAlive() )
{
- DEBUG_LOG("Creature stopped attacking cuz his dead [guid=%u]", i_creature.GetGUIDLow());
+ DEBUG_LOG("Creature stopped attacking cuz his dead [guid=%u]", m_creature->GetGUIDLow());
i_victimGuid = 0;
- i_creature.CombatStop();
- i_creature.DeleteThreatList();
+ m_creature->CombatStop();
+ m_creature->DeleteThreatList();
return;
}
- Unit* victim = ObjectAccessor::GetUnit(i_creature, i_victimGuid );
+ Unit* victim = ObjectAccessor::GetUnit(*m_creature, i_victimGuid );
if( !victim )
{
- DEBUG_LOG("Creature stopped attacking because victim is non exist [guid=%u]", i_creature.GetGUIDLow());
+ DEBUG_LOG("Creature stopped attacking because victim is non exist [guid=%u]", m_creature->GetGUIDLow());
}
else if( !victim->isAlive() )
{
- DEBUG_LOG("Creature stopped attacking cuz his victim is dead [guid=%u]", i_creature.GetGUIDLow());
+ DEBUG_LOG("Creature stopped attacking cuz his victim is dead [guid=%u]", m_creature->GetGUIDLow());
}
else if( victim->HasStealthAura() )
{
- DEBUG_LOG("Creature stopped attacking cuz his victim is stealth [guid=%u]", i_creature.GetGUIDLow());
+ DEBUG_LOG("Creature stopped attacking cuz his victim is stealth [guid=%u]", m_creature->GetGUIDLow());
}
else if( victim->isInFlight() )
{
- DEBUG_LOG("Creature stopped attacking cuz his victim is fly away [guid=%u]", i_creature.GetGUIDLow());
+ DEBUG_LOG("Creature stopped attacking cuz his victim is fly away [guid=%u]", m_creature->GetGUIDLow());
}
else
{
- DEBUG_LOG("Creature stopped attacking due to target out run him [guid=%u]", i_creature.GetGUIDLow());
+ DEBUG_LOG("Creature stopped attacking due to target out run him [guid=%u]", m_creature->GetGUIDLow());
//i_state = STATE_LOOK_AT_VICTIM;
//i_tracker.Reset(TIME_INTERVAL_LOOK);
}
- if(!i_creature.GetCharmerOrOwner())
+ if(!m_creature->GetCharmerOrOwner())
{
- i_creature.RemoveAllAuras();
+ m_creature->RemoveAllAuras();
// Remove TargetedMovementGenerator from MotionMaster stack list, and add HomeMovementGenerator instead
- if( i_creature.GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE )
- i_creature.GetMotionMaster()->MoveTargetedHome();
+ if( m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE )
+ m_creature->GetMotionMaster()->MoveTargetedHome();
}
- else if (i_creature.GetOwner() && i_creature.GetOwner()->isAlive())
- i_creature.GetMotionMaster()->MoveFollow(i_creature.GetOwner(),PET_FOLLOW_DIST,PET_FOLLOW_ANGLE);
+ else if (m_creature->GetOwner() && m_creature->GetOwner()->isAlive())
+ m_creature->GetMotionMaster()->MoveFollow(m_creature->GetOwner(),PET_FOLLOW_DIST,PET_FOLLOW_ANGLE);
- i_creature.DeleteThreatList();
+ m_creature->DeleteThreatList();
i_victimGuid = 0;
- i_creature.CombatStop();
- i_creature.SetLootRecipient(NULL);
+ m_creature->CombatStop();
+ m_creature->SetLootRecipient(NULL);
}
void
AggressorAI::UpdateAI(const uint32 /*diff*/)
{
- // update i_victimGuid if i_creature.getVictim() !=0 and changed
+ // update i_victimGuid if m_creature->getVictim() !=0 and changed
if(!UpdateVictim())
return;
- i_victimGuid = i_creature.getVictim()->GetGUID();
+ i_victimGuid = m_creature->getVictim()->GetGUID();
- if( i_creature.isAttackReady() )
+ if( m_creature->isAttackReady() )
{
- if( i_creature.IsWithinMeleeRange(i_creature.getVictim()))
+ if( m_creature->IsWithinMeleeRange(m_creature->getVictim()))
{
- i_creature.AttackerStateUpdate(i_creature.getVictim());
- i_creature.resetAttackTimer();
+ m_creature->AttackerStateUpdate(m_creature->getVictim());
+ m_creature->resetAttackTimer();
}
}
}