6#ifndef SKYFIRE_GRIDNOTIFIERS_H
7#define SKYFIRE_GRIDNOTIFIERS_H
126 team = player->GetTeam();
161 template<
class Check>
182 template<
class Check>
203 template<
class Check>
240 i_do(itr->GetSource());
249 i_do(itr->GetSource());
257 i_do(itr->GetSource());
266 i_do(itr->GetSource());
275 i_do(itr->GetSource());
284 i_do(itr->GetSource());
292 template<
class Check>
308 template<
class Check>
323 template<
class Check>
338 template<
class Functor>
347 if (itr->GetSource()->InSamePhase(
_phaseMask))
348 _func(itr->GetSource());
361 template<
class Check>
378 template<
class Check>
395 template<
class Check>
413 template<
class Check>
429 template<
class Check>
444 template<
class Check>
472 i_do(itr->GetSource());
480 template<
class Check>
495 template<
class Check>
510 template<
class Check>
539 i_do(itr->GetSource());
559 i_do(itr->GetSource());
576 template<
class NOT_INTERESTED>
bool operator()(NOT_INTERESTED*) {
return false; }
591 template<
class NOT_INTERESTED>
bool operator()(NOT_INTERESTED*) {
return false; }
849 &&
i_funit->IsValidAttackTarget(u)
894 if (G3D::fuzzyEq(
_range, 0))
902 else if (!
_refUnit->IsInPartyWith(u))
1040 m_range = (dist == 0 ? 9999 : dist);
1047 if (!
me->IsValidAttackTarget(u))
1069 m_range = (dist == 0 ? 9999 : dist);
1070 m_force = (dist == 0 ? false :
true);
1077 if (!
me->CanSeeOrDetect(u))
1080 if (!
me->IsWithinLOSInMap(u))
1085 if (!
me->IsValidAttackTarget(u))
1088 else if (!
me->CanStartAttack(u,
false))
1116 if (!
_me->IsValidAttackTarget(u))
1151 if (!
i_funit->IsWithinLOSInMap(u))
1178 if (!
i_obj->IsWithinLOSInMap(u))
1383 return object->GetGUID() ==
_GUID;
1432 template<
class Builder>
1451 template<
class Builder>
static constexpr TypeID TYPEID_UNIT
GridRefManager< Corpse > CorpseMapType
GridRefManager< DynamicObject > DynamicObjectMapType
GridRefManager< Creature > CreatureMapType
GridRefManager< Player > PlayerMapType
GridRefManager< AreaTrigger > AreaTriggerMapType
CoordPair< TOTAL_NUMBER_OF_CELLS_PER_MAP > CellCoord
@ GRID_MAP_TYPE_MASK_PLAYER
@ GRID_MAP_TYPE_MASK_CREATURE
@ GRID_MAP_TYPE_MASK_GAMEOBJECT
@ GRID_MAP_TYPE_MASK_DYNAMICOBJECT
@ GRID_MAP_TYPE_MASK_CORPSE
@ GRID_MAP_TYPE_MASK_AREATRIGGER
GridRefManager< GameObject > GameObjectMapType
Grid< Player, AllWorldObjectTypes, AllGridObjectTypes > GridType
@ GAMEOBJECT_TYPE_SPELL_FOCUS
@ GAMEOBJECT_TYPE_FISHINGHOLE
@ CREATURE_TYPE_NON_COMBAT_PET
void Respawn(bool force=false)
uint32 GetDBTableGUIDLow() const
bool CanAssistTo(const Unit *u, const Unit *enemy, bool checkfaction=true) const
GameObjectTemplate const * GetGOInfo() const
uint32 GetDBTableGUIDLow() const
bool IsInRange(float x, float y, float z, float radius) const
GameobjectTypes GetGoType() const
LinkedListHead::Iterator< GridReference< OBJECT > > iterator
std::set< uint64 > ClientGUIDs
bool HaveAtClient(WorldObject const *u) const
WorldSession * GetSession() const
bool IsGameMaster() const
AllCreaturesOfEntryInRange(const WorldObject *object, uint32 entry, float maxRange)
const WorldObject * m_pObject
bool operator()(Unit *unit)
AllFriendlyCreaturesInGrid(Unit const *obj)
bool operator()(GameObject *go)
AllGameObjectsWithEntryInRange(const WorldObject *object, uint32 entry, float maxRange)
const WorldObject * m_pObject
bool operator()(WorldObject *go)
const WorldObject * m_pObject
AllWorldObjectsInRange(const WorldObject *object, float maxRange)
SpellInfo const * _spellInfo
WorldObject const * i_obj
AnyAoETargetUnitInObjectRangeCheck(WorldObject const *obj, Unit const *funit, float range)
bool operator()(Creature *u)
AnyAssistCreatureInRangeCheck(Unit *funit, Unit *enemy, float range)
Unit const *const i_searchObj
AnyDeadUnitObjectInRangeCheck(Unit *searchObj, float range)
bool operator()(NOT_INTERESTED *)
bool operator()(Player *u)
SpellInfo const * i_spellInfo
bool operator()(NOT_INTERESTED *)
WorldObjectSpellTargetCheck i_check
AnyDeadUnitSpellTargetInRangeCheck(Unit *searchObj, float range, SpellInfo const *spellInfo, SpellTargetCheckTypes check)
bool operator()(Player *u)
WorldObject const * i_obj
AnyFriendlyUnitInObjectRangeCheck(WorldObject const *obj, Unit const *funit, float range, bool playerOnly=false)
WorldObject const * _source
AnyGroupedUnitInObjectRangeCheck(WorldObject const *obj, Unit const *funit, float range, bool raid)
bool operator()(Player *u)
AnyPlayerInObjectRangeCheck(WorldObject const *obj, float range, bool reqAlive=true)
bool operator()(const Unit *u)
AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck(Unit const *funit, float range)
WorldObject const * i_obj
AnyUnfriendlyNoTotemUnitInObjectRangeCheck(WorldObject const *obj, Unit const *funit, float range)
WorldObject const * i_obj
AnyUnfriendlyUnitInObjectRangeCheck(WorldObject const *obj, Unit const *funit, float range)
WorldObject const * i_obj
AnyUnitInObjectRangeCheck(WorldObject const *obj, float range)
void operator()(Creature *u)
CallOfHelpCreatureInRangeDo(Unit *funit, Unit *enemy, float range)
bool operator()(Creature *u)
CreatureWithDbGUIDCheck(WorldObject const *, uint32 lowguid)
FriendlyCCedInRange(Unit const *obj, float range)
FriendlyMissingBuffInRange(Unit const *obj, float range, uint32 spellid)
GameObjectFocusCheck(Unit const *unit, uint32 focusId)
bool operator()(GameObject *go) const
GameObjectInRangeCheck(float _x, float _y, float _z, float _range, uint32 _entry=0)
bool operator()(GameObject *go)
bool operator()(GameObject const *go) const
GameObjectWithDbGUIDCheck(WorldObject const &, uint32 db_guid)
HeightDifferenceCheck(WorldObject *go, float diff, bool reverse)
bool operator()(WorldObject *unit) const
WorldObject * _baseObject
LocalizedPacketDo(Builder &builder)
std::vector< WorldPacket * > i_data_cache
void operator()(Player *p)
std::vector< WorldPacket * > WorldPacketList
std::vector< WorldPacketList > i_data_cache
LocalizedPacketListDo(Builder &builder)
void operator()(Player *p)
MostHPMissingInRange(Unit const *obj, float range, uint32 hp)
NearestAssistCreatureInCreatureRangeCheck(NearestAssistCreatureInCreatureRangeCheck const &)
float GetLastRange() const
NearestAssistCreatureInCreatureRangeCheck(Creature *obj, Unit *enemy, float range)
bool operator()(Creature *u)
NearestAttackableUnitInObjectRangeCheck(NearestAttackableUnitInObjectRangeCheck const &)
WorldObject const * i_obj
NearestAttackableUnitInObjectRangeCheck(WorldObject const *obj, Unit const *funit, float range)
bool operator()(Creature *u)
NearestCreatureEntryWithLiveStateInObjectRangeCheck(WorldObject const &obj, uint32 entry, bool alive, float range)
NearestCreatureEntryWithLiveStateInObjectRangeCheck(NearestCreatureEntryWithLiveStateInObjectRangeCheck const &)
WorldObject const & i_obj
float GetLastRange() const
WorldObject const & i_obj
NearestGameObjectCheck(WorldObject const &obj)
bool operator()(GameObject *go)
float GetLastRange() const
NearestGameObjectCheck(NearestGameObjectCheck const &)
float GetLastRange() const
NearestGameObjectEntryInObjectRangeCheck(WorldObject const &obj, uint32 entry, float range)
NearestGameObjectEntryInObjectRangeCheck(NearestGameObjectEntryInObjectRangeCheck const &)
WorldObject const & i_obj
bool operator()(GameObject *go)
NearestGameObjectFishingHole(NearestGameObjectFishingHole const &)
WorldObject const & i_obj
NearestGameObjectFishingHole(WorldObject const &obj, float range)
float GetLastRange() const
bool operator()(GameObject *go)
bool operator()(GameObject *go)
NearestGameObjectTypeInObjectRangeCheck(WorldObject const &obj, GameobjectTypes type, float range)
float GetLastRange() const
WorldObject const & i_obj
NearestGameObjectTypeInObjectRangeCheck(NearestGameObjectTypeInObjectRangeCheck const &)
NearestHostileUnitCheck(Creature const *creature, float dist=0, bool playerOnly=false)
NearestHostileUnitCheck(NearestHostileUnitCheck const &)
NearestHostileUnitInAggroRangeCheck(NearestHostileUnitInAggroRangeCheck const &)
NearestHostileUnitInAggroRangeCheck(Creature const *creature, bool useLOS=false)
NearestHostileUnitInAttackDistanceCheck(NearestHostileUnitInAttackDistanceCheck const &)
float GetLastRange() const
NearestHostileUnitInAttackDistanceCheck(Creature const *creature, float dist=0)
bool operator()(Player *u)
WorldObject const * i_obj
NearestPlayerInObjectRangeCheck(NearestPlayerInObjectRangeCheck const &)
NearestPlayerInObjectRangeCheck(WorldObject const *obj, float range)
bool operator()(WorldObject *object)
ObjectGUIDCheck(uint64 GUID)
ObjectTypeIdCheck(TypeID typeId, bool equals)
bool operator()(WorldObject *object)
PlayerAtMinimumRangeAway(Unit const *unit, float fMinRange)
bool operator()(Player *player)
void operator()(GameObject *u) const
void operator()(WorldObject *) const
void operator()(Creature *u) const
void operator()(Corpse *) const
bool operator()(Unit *unit) const
UnitAuraCheck(bool present, uint32 spellId, uint64 casterGUID=0)
bool operator()(WorldObject *object) const
virtual void AttackStart(Unit *)
bool isTargetableForAttack(bool checkFakeDeath=true) const
uint32 GetMaxHealth() const
bool HasAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
uint32 GetCreatureType() const
bool HasUnitState(const uint32 f) const
bool IsFriendlyTo(Unit const *unit) const
bool IsHostileTo(Unit const *unit) const
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true) const
bool IsWithinLOSInMap(WorldObject const *obj) const
Player session in the World.
struct GameObjectTemplate::@046065176235271051340241126110345143267101032070::@076241013146174060203322361030304357327036335177 spellFocus
struct GameObjectTemplate::@046065176235271051340241126110345143267101032070::@243266127071011160240350104214013054067132104252 fishinghole
float GetPositionZ() const
void Visit(GridRefManager< T > &)
AIRelocationNotifier(Unit &unit)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(CreatureMapType &m)
CreatureLastSearcher(WorldObject const *searcher, Creature *&result, Check &check)
CreatureListSearcher(WorldObject const *searcher, std::list< Creature * > &objects, Check &check)
std::list< Creature * > & i_objects
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(CreatureMapType &m)
CreatureRelocationNotifier(Creature &c)
void Visit(GridRefManager< T > &)
void Visit(CreatureMapType &m)
CreatureSearcher(WorldObject const *searcher, Creature *&result, Check &check)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(CreatureMapType &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
CreatureWorker(WorldObject const *searcher, Do &_do)
void Visit(GridRefManager< T > &)
DelayedUnitRelocation(Cell &c, CellCoord &pair, Map &map, float radius)
void Visit(GameObjectMapType &m)
GameObjectLastSearcher(WorldObject const *searcher, GameObject *&result, Check &check)
void Visit(GridRefManager< NOT_INTERESTED > &)
std::list< GameObject * > & i_objects
GameObjectListSearcher(WorldObject const *searcher, std::list< GameObject * > &objects, Check &check)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(GameObjectMapType &m)
void Visit(GameObjectMapType &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
GameObjectSearcher(WorldObject const *searcher, GameObject *&result, Check &check)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(GameObjectMapType &m)
GameObjectWorker(WorldObject const *searcher, Functor &func)
void Visit(GameObjectMapType &m)
void updateObjects(GridRefManager< T > &m)
GridUpdater(GridType &grid, uint32 diff)
void Visit(DynamicObjectMapType &m)
void Visit(CreatureMapType &m)
void Visit(PlayerMapType &m)
void Visit(AreaTriggerMapType &m)
void Visit(CorpseMapType &m)
void Visit(PlayerMapType &m)
Player const * skipped_receiver
void Visit(GridRefManager< SKIP > &)
void SendPacket(Player *player) const
MessageDistDeliverer(WorldObject *src, WorldPacket *msg, float dist, bool own_team_only=false, Player const *skipped=NULL)
void Visit(PlayerMapType &)
void Visit(GridRefManager< T > &m)
void Visit(CorpseMapType &)
ObjectUpdater(const uint32 diff)
void Visit(GridRefManager< NOT_INTERESTED > &)
PlayerDistWorker(WorldObject const *searcher, float _dist, Do &_do)
WorldObject const * i_searcher
void Visit(PlayerMapType &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
PlayerLastSearcher(WorldObject const *searcher, Player *&result, Check &check)
void Visit(PlayerMapType &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(PlayerMapType &m)
std::list< Player * > & i_objects
PlayerListSearcher(WorldObject const *searcher, std::list< Player * > &objects, Check &check)
void Visit(GridRefManager< T > &m)
PlayerRelocationNotifier(Player &player)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(PlayerMapType &m)
PlayerSearcher(WorldObject const *searcher, Player *&result, Check &check)
void Visit(GridRefManager< NOT_INTERESTED > &)
PlayerWorker(WorldObject const *searcher, Do &_do)
void Visit(PlayerMapType &m)
void Visit(CreatureMapType &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
UnitLastSearcher(WorldObject const *searcher, Unit *&result, Check &check)
void Visit(PlayerMapType &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
UnitListSearcher(WorldObject const *searcher, std::list< Unit * > &objects, Check &check)
std::list< Unit * > & i_objects
void Visit(CreatureMapType &m)
UnitSearcher(WorldObject const *searcher, Unit *&result, Check &check)
void Visit(GridRefManager< NOT_INTERESTED > &)
VisibleChangesNotifier(WorldObject &object)
void Visit(GridRefManager< T > &)
void Visit(GridRefManager< T > &m)
std::set< Unit * > i_visibleNow
VisibleNotifier(Player &player)
Player::ClientGUIDs vis_guids
void Visit(GameObjectMapType &m)
WorldObjectLastSearcher(WorldObject const *searcher, WorldObject *&result, Check &check, uint32 mapTypeMask=GRID_MAP_TYPE_MASK_ALL)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(PlayerMapType &m)
WorldObjectListSearcher(WorldObject const *searcher, std::list< WorldObject * > &objects, Check &check, uint32 mapTypeMask=GRID_MAP_TYPE_MASK_ALL)
std::list< WorldObject * > & i_objects
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(GameObjectMapType &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
WorldObjectSearcher(WorldObject const *searcher, WorldObject *&result, Check &check, uint32 mapTypeMask=GRID_MAP_TYPE_MASK_ALL)
void Visit(GridRefManager< NOT_INTERESTED > &)
void Visit(CreatureMapType &m)
void Visit(DynamicObjectMapType &m)
void Visit(GameObjectMapType &m)
void Visit(PlayerMapType &m)
WorldObjectWorker(WorldObject const *searcher, Do const &_do, uint32 mapTypeMask=GRID_MAP_TYPE_MASK_ALL)
void Visit(AreaTriggerMapType &m)
void Visit(CorpseMapType &m)