AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Acore::NearestHostileUnitCheck Class Reference

#include "GridNotifiers.h"

Public Member Functions

 NearestHostileUnitCheck (Creature const *creature, float dist=0, bool playerOnly=false)
 
bool operator() (Unit *u)
 

Private Member Functions

 NearestHostileUnitCheck (NearestHostileUnitCheck const &)
 

Private Attributes

Creature const * me
 
float m_range
 
bool i_playerOnly
 

Detailed Description

Constructor & Destructor Documentation

◆ NearestHostileUnitCheck() [1/2]

Acore::NearestHostileUnitCheck::NearestHostileUnitCheck ( Creature const *  creature,
float  dist = 0,
bool  playerOnly = false 
)
inlineexplicit
1190 : me(creature), i_playerOnly(playerOnly)
1191 {
1192 m_range = (dist == 0 ? 9999 : dist);
1193 }
bool i_playerOnly
Definition: GridNotifiers.h:1212
Creature const * me
Definition: GridNotifiers.h:1210
float m_range
Definition: GridNotifiers.h:1211

References m_range.

◆ NearestHostileUnitCheck() [2/2]

Acore::NearestHostileUnitCheck::NearestHostileUnitCheck ( NearestHostileUnitCheck const &  )
private

Member Function Documentation

◆ operator()()

bool Acore::NearestHostileUnitCheck::operator() ( Unit u)
inline
1195 {
1196 if (!me->IsWithinDistInMap(u, m_range, true, false))
1197 return false;
1198
1199 if (!me->IsValidAttackTarget(u))
1200 return false;
1201
1202 if (i_playerOnly && u->GetTypeId() != TYPEID_PLAYER)
1203 return false;
1204
1205 m_range = me->GetDistance(u); // use found unit range as new range limit for next check
1206 return true;
1207 }
@ TYPEID_PLAYER
Definition: ObjectGuid.h:38
TypeID GetTypeId() const
Definition: Object.h:121
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition: Object.cpp:1321
float GetDistance(WorldObject const *obj) const
Definition: Object.cpp:1245
bool IsValidAttackTarget(Unit const *target, SpellInfo const *bySpell=nullptr) const
Definition: Unit.cpp:13776

References WorldObject::GetDistance(), Object::GetTypeId(), i_playerOnly, Unit::IsValidAttackTarget(), WorldObject::IsWithinDistInMap(), m_range, me, and TYPEID_PLAYER.

Member Data Documentation

◆ i_playerOnly

bool Acore::NearestHostileUnitCheck::i_playerOnly
private

Referenced by operator()().

◆ m_range

float Acore::NearestHostileUnitCheck::m_range
private

◆ me

Creature const* Acore::NearestHostileUnitCheck::me
private

Referenced by operator()().