aboutsummaryrefslogtreecommitdiff
path: root/src/game/TotemAI.cpp
diff options
context:
space:
mode:
authormaximius <none@none>2009-10-17 15:35:07 -0700
committermaximius <none@none>2009-10-17 15:35:07 -0700
commit26b5e033ffde3d161382fc9addbfa99738379641 (patch)
treea344f369ca32945f787a02dee35c3dbe342bed7e /src/game/TotemAI.cpp
parentf21f47005dcb6b76e1abc9f35fbcd03eed191bff (diff)
*Massive cleanup (\n\n -> \n, *\n -> \n, cleanup for(...) to for (...), and some other cleanups by hand)
*Fix a possible crash in Spell::DoAllEffectOnTarget --HG-- branch : trunk
Diffstat (limited to 'src/game/TotemAI.cpp')
-rw-r--r--src/game/TotemAI.cpp17
1 files changed, 0 insertions, 17 deletions
diff --git a/src/game/TotemAI.cpp b/src/game/TotemAI.cpp
index 08c70308d1c..5dfbcf6bfdd 100644
--- a/src/game/TotemAI.cpp
+++ b/src/game/TotemAI.cpp
@@ -17,65 +17,51 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
#include "TotemAI.h"
#include "Totem.h"
#include "Creature.h"
#include "DBCStores.h"
#include "ObjectAccessor.h"
#include "SpellMgr.h"
-
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
#include "CellImpl.h"
-
int
TotemAI::Permissible(const Creature *creature)
{
if( creature->isTotem() )
return PERMIT_BASE_PROACTIVE;
-
return PERMIT_BASE_NO;
}
-
TotemAI::TotemAI(Creature *c) : CreatureAI(c), i_victimGuid(0)
{
assert(c->isTotem());
}
-
void
TotemAI::MoveInLineOfSight(Unit *)
{
}
-
void TotemAI::EnterEvadeMode()
{
m_creature->CombatStop(true);
}
-
void
TotemAI::UpdateAI(const uint32 /*diff*/)
{
if (((Totem*)m_creature)->GetTotemType() != TOTEM_ACTIVE)
return;
-
if (!m_creature->isAlive() || m_creature->IsNonMeleeSpellCasted(false))
return;
-
// Search spell
SpellEntry const *spellInfo = sSpellStore.LookupEntry(((Totem*)m_creature)->GetSpell());
if (!spellInfo)
return;
-
// Get spell range
SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(spellInfo->rangeIndex);
float max_range = GetSpellMaxRangeForHostile(srange);
-
// SPELLMOD_RANGE not applied in this place just because not existence range mods for attacking totems
-
// pointer to appropriate target if found any
Unit* victim = i_victimGuid ? ObjectAccessor::GetUnit(*m_creature, i_victimGuid) : NULL;
-
// Search victim if no, not attackable, or out of range, or friendly (possible in case duel end)
if( !victim ||
!victim->isTargetableForAttack() || !m_creature->IsWithinDistInMap(victim, max_range) ||
@@ -86,13 +72,11 @@ TotemAI::UpdateAI(const uint32 /*diff*/)
Trinity::UnitLastSearcher<Trinity::NearestAttackableUnitInObjectRangeCheck> checker(m_creature, victim, u_check);
m_creature->VisitNearbyObject(max_range, checker);
}
-
// If have target
if (victim)
{
// remember
i_victimGuid = victim->GetGUID();
-
// attack
m_creature->SetInFront(victim); // client change orientation by self
m_creature->CastSpell(victim, ((Totem*)m_creature)->GetSpell(), false);
@@ -100,7 +84,6 @@ TotemAI::UpdateAI(const uint32 /*diff*/)
else
i_victimGuid = 0;
}
-
void
TotemAI::AttackStart(Unit *)
{