AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Acore::WorldObjectSearcher< Check > Struct Template Reference

#include "GridNotifiers.h"

Public Member Functions

 WorldObjectSearcher (WorldObject const *searcher, WorldObject *&result, Check &check, uint32 mapTypeMask=GRID_MAP_TYPE_MASK_ALL)
 
void Visit (GameObjectMapType &m)
 
void Visit (PlayerMapType &m)
 
void Visit (CreatureMapType &m)
 
void Visit (CorpseMapType &m)
 
void Visit (DynamicObjectMapType &m)
 
template<class NOT_INTERESTED >
void Visit (GridRefMgr< NOT_INTERESTED > &)
 

Public Attributes

uint32 i_mapTypeMask
 
uint32 i_phaseMask
 
WorldObject *& i_object
 
Check & i_check
 

Detailed Description

template<class Check>
struct Acore::WorldObjectSearcher< Check >

Constructor & Destructor Documentation

◆ WorldObjectSearcher()

template<class Check >
Acore::WorldObjectSearcher< Check >::WorldObjectSearcher ( WorldObject const *  searcher,
WorldObject *&  result,
Check &  check,
uint32  mapTypeMask = GRID_MAP_TYPE_MASK_ALL 
)
inline
203 : i_mapTypeMask(mapTypeMask), i_phaseMask(searcher->GetPhaseMask()), i_object(result), i_check(check) {}
uint32 i_mapTypeMask
Definition: GridNotifiers.h:197
uint32 i_phaseMask
Definition: GridNotifiers.h:198
WorldObject *& i_object
Definition: GridNotifiers.h:199
Check & i_check
Definition: GridNotifiers.h:200

Member Function Documentation

◆ Visit() [1/6]

template<class Check >
void Acore::WorldObjectSearcher< Check >::Visit ( CorpseMapType m)
124{
126 return;
127
128 // already found
129 if (i_object)
130 return;
131
132 for (CorpseMapType::iterator itr = m.begin(); itr != m.end(); ++itr)
133 {
134 if (!itr->GetSource()->InSamePhase(i_phaseMask))
135 continue;
136
137 if (i_check(itr->GetSource()))
138 {
139 i_object = itr->GetSource();
140 return;
141 }
142 }
143}
@ GRID_MAP_TYPE_MASK_CORPSE
Definition: GridDefines.h:69
Definition: LinkedList.h:139
iterator begin()
Definition: GridRefMgr.h:35
iterator end()
Definition: GridRefMgr.h:36

References GridRefMgr< OBJECT >::begin(), GridRefMgr< OBJECT >::end(), and GRID_MAP_TYPE_MASK_CORPSE.

◆ Visit() [2/6]

template<class Check >
void Acore::WorldObjectSearcher< Check >::Visit ( CreatureMapType m)
101{
103 return;
104
105 // already found
106 if (i_object)
107 return;
108
109 for (CreatureMapType::iterator itr = m.begin(); itr != m.end(); ++itr)
110 {
111 if (!itr->GetSource()->InSamePhase(i_phaseMask))
112 continue;
113
114 if (i_check(itr->GetSource()))
115 {
116 i_object = itr->GetSource();
117 return;
118 }
119 }
120}
@ GRID_MAP_TYPE_MASK_CREATURE
Definition: GridDefines.h:70

References GridRefMgr< OBJECT >::begin(), GridRefMgr< OBJECT >::end(), and GRID_MAP_TYPE_MASK_CREATURE.

◆ Visit() [3/6]

template<class Check >
void Acore::WorldObjectSearcher< Check >::Visit ( DynamicObjectMapType m)
147{
149 return;
150
151 // already found
152 if (i_object)
153 return;
154
155 for (DynamicObjectMapType::iterator itr = m.begin(); itr != m.end(); ++itr)
156 {
157 if (!itr->GetSource()->InSamePhase(i_phaseMask))
158 continue;
159
160 if (i_check(itr->GetSource()))
161 {
162 i_object = itr->GetSource();
163 return;
164 }
165 }
166}
@ GRID_MAP_TYPE_MASK_DYNAMICOBJECT
Definition: GridDefines.h:71

References GridRefMgr< OBJECT >::begin(), GridRefMgr< OBJECT >::end(), and GRID_MAP_TYPE_MASK_DYNAMICOBJECT.

◆ Visit() [4/6]

template<class Check >
void Acore::WorldObjectSearcher< Check >::Visit ( GameObjectMapType m)
55{
57 return;
58
59 // already found
60 if (i_object)
61 return;
62
63 for (GameObjectMapType::iterator itr = m.begin(); itr != m.end(); ++itr)
64 {
65 if (!itr->GetSource()->InSamePhase(i_phaseMask))
66 continue;
67
68 if (i_check(itr->GetSource()))
69 {
70 i_object = itr->GetSource();
71 return;
72 }
73 }
74}
@ GRID_MAP_TYPE_MASK_GAMEOBJECT
Definition: GridDefines.h:72

References GridRefMgr< OBJECT >::begin(), GridRefMgr< OBJECT >::end(), and GRID_MAP_TYPE_MASK_GAMEOBJECT.

◆ Visit() [5/6]

template<class Check >
template<class NOT_INTERESTED >
void Acore::WorldObjectSearcher< Check >::Visit ( GridRefMgr< NOT_INTERESTED > &  )
inline
211{}

◆ Visit() [6/6]

template<class Check >
void Acore::WorldObjectSearcher< Check >::Visit ( PlayerMapType m)
78{
80 return;
81
82 // already found
83 if (i_object)
84 return;
85
86 for (PlayerMapType::iterator itr = m.begin(); itr != m.end(); ++itr)
87 {
88 if (!itr->GetSource()->InSamePhase(i_phaseMask))
89 continue;
90
91 if (i_check(itr->GetSource()))
92 {
93 i_object = itr->GetSource();
94 return;
95 }
96 }
97}
@ GRID_MAP_TYPE_MASK_PLAYER
Definition: GridDefines.h:73

References GridRefMgr< OBJECT >::begin(), GridRefMgr< OBJECT >::end(), and GRID_MAP_TYPE_MASK_PLAYER.

Member Data Documentation

◆ i_check

template<class Check >
Check& Acore::WorldObjectSearcher< Check >::i_check

◆ i_mapTypeMask

template<class Check >
uint32 Acore::WorldObjectSearcher< Check >::i_mapTypeMask

◆ i_object

template<class Check >
WorldObject*& Acore::WorldObjectSearcher< Check >::i_object

◆ i_phaseMask

template<class Check >
uint32 Acore::WorldObjectSearcher< Check >::i_phaseMask