aboutsummaryrefslogtreecommitdiff
path: root/src/game/ScriptedFollowerAI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/ScriptedFollowerAI.cpp')
-rw-r--r--src/game/ScriptedFollowerAI.cpp120
1 files changed, 60 insertions, 60 deletions
diff --git a/src/game/ScriptedFollowerAI.cpp b/src/game/ScriptedFollowerAI.cpp
index b47f534556f..657b344469c 100644
--- a/src/game/ScriptedFollowerAI.cpp
+++ b/src/game/ScriptedFollowerAI.cpp
@@ -31,22 +31,22 @@ void FollowerAI::AttackStart(Unit* pWho)
if (!pWho)
return;
- if (m_creature->Attack(pWho, true))
+ if (me->Attack(pWho, true))
{
- m_creature->AddThreat(pWho, 0.0f);
- m_creature->SetInCombatWith(pWho);
- pWho->SetInCombatWith(m_creature);
+ me->AddThreat(pWho, 0.0f);
+ me->SetInCombatWith(pWho);
+ pWho->SetInCombatWith(me);
- if (m_creature->hasUnitState(UNIT_STAT_FOLLOW))
- m_creature->clearUnitState(UNIT_STAT_FOLLOW);
+ if (me->hasUnitState(UNIT_STAT_FOLLOW))
+ me->clearUnitState(UNIT_STAT_FOLLOW);
if (IsCombatMovement())
- m_creature->GetMotionMaster()->MoveChase(pWho);
+ me->GetMotionMaster()->MoveChase(pWho);
}
}
//This part provides assistance to a player that are attacked by pWho, even if out of normal aggro range
-//It will cause m_creature to attack pWho that are attacking _any_ player (which has been confirmed may happen also on offi)
+//It will cause me to attack pWho that are attacking _any_ player (which has been confirmed may happen also on offi)
//The flag (type_flag) is unconfirmed, but used here for further research and is a good candidate.
bool FollowerAI::AssistPlayerInCombat(Unit* pWho)
{
@@ -54,7 +54,7 @@ bool FollowerAI::AssistPlayerInCombat(Unit* pWho)
return false;
//experimental (unknown) flag not present
- if (!(m_creature->GetCreatureInfo()->type_flags & CREATURE_TYPEFLAGS_UNK13))
+ if (!(me->GetCreatureInfo()->type_flags & CREATURE_TYPEFLAGS_UNK13))
return false;
//not a player
@@ -62,22 +62,22 @@ bool FollowerAI::AssistPlayerInCombat(Unit* pWho)
return false;
//never attack friendly
- if (m_creature->IsFriendlyTo(pWho))
+ if (me->IsFriendlyTo(pWho))
return false;
//too far away and no free sight?
- if (m_creature->IsWithinDistInMap(pWho, MAX_PLAYER_DISTANCE) && m_creature->IsWithinLOSInMap(pWho))
+ if (me->IsWithinDistInMap(pWho, MAX_PLAYER_DISTANCE) && me->IsWithinLOSInMap(pWho))
{
//already fighting someone?
- if (!m_creature->getVictim())
+ if (!me->getVictim())
{
AttackStart(pWho);
return true;
}
else
{
- pWho->SetInCombatWith(m_creature);
- m_creature->AddThreat(pWho, 0.0f);
+ pWho->SetInCombatWith(me);
+ me->AddThreat(pWho, 0.0f);
return true;
}
}
@@ -87,28 +87,28 @@ bool FollowerAI::AssistPlayerInCombat(Unit* pWho)
void FollowerAI::MoveInLineOfSight(Unit* pWho)
{
- if (!m_creature->hasUnitState(UNIT_STAT_STUNNED) && pWho->isTargetableForAttack() && pWho->isInAccessiblePlaceFor(m_creature))
+ if (!me->hasUnitState(UNIT_STAT_STUNNED) && pWho->isTargetableForAttack() && pWho->isInAccessiblePlaceFor(me))
{
if (HasFollowState(STATE_FOLLOW_INPROGRESS) && AssistPlayerInCombat(pWho))
return;
- if (!m_creature->canFly() && m_creature->GetDistanceZ(pWho) > CREATURE_Z_ATTACK_RANGE)
+ if (!me->canFly() && me->GetDistanceZ(pWho) > CREATURE_Z_ATTACK_RANGE)
return;
- if (m_creature->IsHostileTo(pWho))
+ if (me->IsHostileTo(pWho))
{
- float fAttackRadius = m_creature->GetAttackDistance(pWho);
- if (m_creature->IsWithinDistInMap(pWho, fAttackRadius) && m_creature->IsWithinLOSInMap(pWho))
+ float fAttackRadius = me->GetAttackDistance(pWho);
+ if (me->IsWithinDistInMap(pWho, fAttackRadius) && me->IsWithinLOSInMap(pWho))
{
- if (!m_creature->getVictim())
+ if (!me->getVictim())
{
pWho->RemoveAurasDueToSpell(SPELL_AURA_MOD_STEALTH);
AttackStart(pWho);
}
- else if (m_creature->GetMap()->IsDungeon())
+ else if (me->GetMap()->IsDungeon())
{
- pWho->SetInCombatWith(m_creature);
- m_creature->AddThreat(pWho, 0.0f);
+ pWho->SetInCombatWith(me);
+ me->AddThreat(pWho, 0.0f);
}
}
}
@@ -149,34 +149,34 @@ void FollowerAI::JustRespawned()
if (!IsCombatMovement())
SetCombatMovement(true);
- if (m_creature->getFaction() != m_creature->GetCreatureInfo()->faction_A)
- m_creature->setFaction(m_creature->GetCreatureInfo()->faction_A);
+ if (me->getFaction() != me->GetCreatureInfo()->faction_A)
+ me->setFaction(me->GetCreatureInfo()->faction_A);
Reset();
}
void FollowerAI::EnterEvadeMode()
{
- m_creature->RemoveAllAuras();
- m_creature->DeleteThreatList();
- m_creature->CombatStop(true);
- m_creature->SetLootRecipient(NULL);
+ me->RemoveAllAuras();
+ me->DeleteThreatList();
+ me->CombatStop(true);
+ me->SetLootRecipient(NULL);
if (HasFollowState(STATE_FOLLOW_INPROGRESS))
{
debug_log("TSCR: FollowerAI left combat, returning to CombatStartPosition.");
- if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE)
+ if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE)
{
float fPosX, fPosY, fPosZ;
- m_creature->GetPosition(fPosX, fPosY, fPosZ);
- m_creature->GetMotionMaster()->MovePoint(POINT_COMBAT_START, fPosX, fPosY, fPosZ);
+ me->GetPosition(fPosX, fPosY, fPosZ);
+ me->GetMotionMaster()->MovePoint(POINT_COMBAT_START, fPosX, fPosY, fPosZ);
}
}
else
{
- if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE)
- m_creature->GetMotionMaster()->MoveTargetedHome();
+ if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE)
+ me->GetMotionMaster()->MoveTargetedHome();
}
Reset();
@@ -184,14 +184,14 @@ void FollowerAI::EnterEvadeMode()
void FollowerAI::UpdateAI(const uint32 uiDiff)
{
- if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !m_creature->getVictim())
+ if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !me->getVictim())
{
if (m_uiUpdateFollowTimer <= uiDiff)
{
if (HasFollowState(STATE_FOLLOW_COMPLETE) && !HasFollowState(STATE_FOLLOW_POSTEVENT))
{
debug_log("TSCR: FollowerAI is set completed, despawns.");
- m_creature->ForcedDespawn();
+ me->ForcedDespawn();
return;
}
@@ -204,7 +204,7 @@ void FollowerAI::UpdateAI(const uint32 uiDiff)
debug_log("TSCR: FollowerAI is returning to leader.");
RemoveFollowState(STATE_FOLLOW_RETURNING);
- m_creature->GetMotionMaster()->MoveFollow(pPlayer, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ me->GetMotionMaster()->MoveFollow(pPlayer, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
return;
}
@@ -214,7 +214,7 @@ void FollowerAI::UpdateAI(const uint32 uiDiff)
{
Player* pMember = pRef->getSource();
- if (pMember && m_creature->IsWithinDistInMap(pMember, MAX_PLAYER_DISTANCE))
+ if (pMember && me->IsWithinDistInMap(pMember, MAX_PLAYER_DISTANCE))
{
bIsMaxRangeExceeded = false;
break;
@@ -223,7 +223,7 @@ void FollowerAI::UpdateAI(const uint32 uiDiff)
}
else
{
- if (m_creature->IsWithinDistInMap(pPlayer, MAX_PLAYER_DISTANCE))
+ if (me->IsWithinDistInMap(pPlayer, MAX_PLAYER_DISTANCE))
bIsMaxRangeExceeded = false;
}
}
@@ -231,7 +231,7 @@ void FollowerAI::UpdateAI(const uint32 uiDiff)
if (bIsMaxRangeExceeded)
{
debug_log("TSCR: FollowerAI failed because player/group was to far away or not found");
- m_creature->ForcedDespawn();
+ me->ForcedDespawn();
return;
}
@@ -265,13 +265,13 @@ void FollowerAI::MovementInform(uint32 uiMotionType, uint32 uiPointId)
AddFollowState(STATE_FOLLOW_RETURNING);
}
else
- m_creature->ForcedDespawn();
+ me->ForcedDespawn();
}
}
void FollowerAI::StartFollow(Player* pLeader, uint32 uiFactionForFollower, const Quest* pQuest)
{
- if (m_creature->getVictim())
+ if (me->getVictim())
{
debug_log("TSCR: FollowerAI attempt to StartFollow while in combat.");
return;
@@ -287,22 +287,22 @@ void FollowerAI::StartFollow(Player* pLeader, uint32 uiFactionForFollower, const
m_uiLeaderGUID = pLeader->GetGUID();
if (uiFactionForFollower)
- m_creature->setFaction(uiFactionForFollower);
+ me->setFaction(uiFactionForFollower);
m_pQuestForFollow = pQuest;
- if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
+ if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
{
- m_creature->GetMotionMaster()->Clear();
- m_creature->GetMotionMaster()->MoveIdle();
+ me->GetMotionMaster()->Clear();
+ me->GetMotionMaster()->MoveIdle();
debug_log("TSCR: FollowerAI start with WAYPOINT_MOTION_TYPE, set to MoveIdle.");
}
- m_creature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
AddFollowState(STATE_FOLLOW_INPROGRESS);
- m_creature->GetMotionMaster()->MoveFollow(pLeader, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ me->GetMotionMaster()->MoveFollow(pLeader, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
debug_log("TSCR: FollowerAI start follow %s (GUID %u)", pLeader->GetName(), m_uiLeaderGUID);
}
@@ -321,7 +321,7 @@ Player* FollowerAI::GetLeaderForFollower()
{
Player* pMember = pRef->getSource();
- if (pMember && pMember->isAlive() && m_creature->IsWithinDistInMap(pMember, MAX_PLAYER_DISTANCE))
+ if (pMember && pMember->isAlive() && me->IsWithinDistInMap(pMember, MAX_PLAYER_DISTANCE))
{
debug_log("TSCR: FollowerAI GetLeader changed and returned new leader.");
m_uiLeaderGUID = pMember->GetGUID();
@@ -339,13 +339,13 @@ Player* FollowerAI::GetLeaderForFollower()
void FollowerAI::SetFollowComplete(bool bWithEndEvent)
{
- if (m_creature->hasUnitState(UNIT_STAT_FOLLOW))
+ if (me->hasUnitState(UNIT_STAT_FOLLOW))
{
- m_creature->clearUnitState(UNIT_STAT_FOLLOW);
+ me->clearUnitState(UNIT_STAT_FOLLOW);
- m_creature->StopMoving();
- m_creature->GetMotionMaster()->Clear();
- m_creature->GetMotionMaster()->MoveIdle();
+ me->StopMoving();
+ me->GetMotionMaster()->Clear();
+ me->GetMotionMaster()->MoveIdle();
}
if (bWithEndEvent)
@@ -368,13 +368,13 @@ void FollowerAI::SetFollowPaused(bool bPaused)
{
AddFollowState(STATE_FOLLOW_PAUSED);
- if (m_creature->hasUnitState(UNIT_STAT_FOLLOW))
+ if (me->hasUnitState(UNIT_STAT_FOLLOW))
{
- m_creature->clearUnitState(UNIT_STAT_FOLLOW);
+ me->clearUnitState(UNIT_STAT_FOLLOW);
- m_creature->StopMoving();
- m_creature->GetMotionMaster()->Clear();
- m_creature->GetMotionMaster()->MoveIdle();
+ me->StopMoving();
+ me->GetMotionMaster()->Clear();
+ me->GetMotionMaster()->MoveIdle();
}
}
else
@@ -382,6 +382,6 @@ void FollowerAI::SetFollowPaused(bool bPaused)
RemoveFollowState(STATE_FOLLOW_PAUSED);
if (Player* pLeader = GetLeaderForFollower())
- m_creature->GetMotionMaster()->MoveFollow(pLeader, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
+ me->GetMotionMaster()->MoveFollow(pLeader, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
}
}