Horizon Official Technical Documentation
GridUnitSearcher Struct Reference

#include <GridNotifiers.hpp>

+ Collaboration diagram for GridUnitSearcher:

Public Member Functions

 GridUnitSearcher (uint32_t guid)
 
std::shared_ptr< Horizon::Zone::Unitget_result () const
 
template<class T >
void search (GridRefManager< T > &m)
 
void Visit (GridRefManager< unit_ns(Player)> &m)
 
void Visit (GridRefManager< unit_ns(NPC)> &m)
 
void Visit (GridRefManager< unit_ns(Elemental)> &m)
 
void Visit (GridRefManager< unit_ns(Homunculus)> &m)
 
void Visit (GridRefManager< unit_ns(Mercenary)> &m)
 
void Visit (GridRefManager< unit_ns(Pet)> &m)
 
void Visit (GridRefManager< unit_ns(Monster)> &m)
 
void Visit (GridRefManager< unit_ns(Skill)> &m)
 
void Visit (GridRefManager< unit_ns(Item)> &m)
 
template<class NOT_INTERESTED >
void Visit (GridRefManager< NOT_INTERESTED > &)
 

Public Attributes

std::weak_ptr< Horizon::Zone::Unit_result
 
GUIDCheckPredicate _predicate
 

Constructor & Destructor Documentation

◆ GridUnitSearcher()

GridUnitSearcher::GridUnitSearcher ( uint32_t  guid)
inlineexplicit
122 : _predicate(guid)
123 { }
GUIDCheckPredicate _predicate
Definition: GridNotifiers.hpp:119

Member Function Documentation

◆ get_result()

std::shared_ptr< Horizon::Zone::Unit > GridUnitSearcher::get_result ( ) const
273{ return _result.lock(); }
std::weak_ptr< Horizon::Zone::Unit > _result
Definition: GridNotifiers.hpp:118

References _result.

Referenced by Horizon::Zone::Unit::get_nearby_unit().

+ Here is the caller graph for this function:

◆ search()

template<class T >
void GridUnitSearcher::search ( GridRefManager< T > &  m)
255{
256 // Found check.
257 if (!_result.expired())
258 return;
259
260 using namespace Horizon::Zone;
261 for (typename GridRefManager<T>::iterator iter = m.begin(); iter != typename GridRefManager<T>::iterator(nullptr); ++iter) {
262 if (iter->source() == nullptr)
263 continue;
264
265 std::weak_ptr<Unit> unit = iter->source()->shared_from_this();
266 if (!unit.expired() && _predicate(unit)) {
267 _result = unit;
268 return;
269 }
270 }
271}
Forward declaration of GridRefManager, the class that manages GridReference.
Definition: GridRefManager.hpp:41
iterator begin()
Definition: GridRefManager.hpp:54
Definition: NPCDefinitions.hpp:54

References _predicate, _result, and GridRefManager< OBJECT >::begin().

+ Here is the call graph for this function:

◆ Visit() [1/10]

template<class NOT_INTERESTED >
void GridUnitSearcher::Visit ( GridRefManager< NOT_INTERESTED > &  )
inline
141{ }

◆ Visit() [2/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Elemental)> &  m)

◆ Visit() [3/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Homunculus)> &  m)

◆ Visit() [4/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Item)> &  m)

◆ Visit() [5/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Mercenary)> &  m)

◆ Visit() [6/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Monster)> &  m)

◆ Visit() [7/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(NPC)> &  m)

◆ Visit() [8/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Pet)> &  m)

◆ Visit() [9/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Player)> &  m)

◆ Visit() [10/10]

void GridUnitSearcher::Visit ( GridRefManager< unit_ns(Skill)> &  m)

Member Data Documentation

◆ _predicate

GUIDCheckPredicate GridUnitSearcher::_predicate

Referenced by search().

◆ _result

std::weak_ptr<Horizon::Zone::Unit> GridUnitSearcher::_result

Referenced by get_result(), and search().


The documentation for this struct was generated from the following files: