Horizon Official Technical Documentation
GridPlayerNotifier Struct Reference

#include <GridNotifiers.hpp>

+ Collaboration diagram for GridPlayerNotifier:

Public Member Functions

 GridPlayerNotifier (ByteBuffer &buf, const std::shared_ptr< Horizon::Zone::Unit > &unit, grid_notifier_type type=GRID_NOTIFY_AREA)
 
void notify (GridRefManager< unit_ns(Player)> &m)
 
void Visit (GridRefManager< unit_ns(Player)> &m)
 
template<class NOT_INTERESTED >
void Visit (GridRefManager< NOT_INTERESTED > &)
 
template<>
void Visit (GridRefManager< NPC > &m)
 
template<>
void Visit (GridRefManager< Elemental > &m)
 
template<>
void Visit (GridRefManager< Homunculus > &m)
 
template<>
void Visit (GridRefManager< Mercenary > &m)
 
template<>
void Visit (GridRefManager< Pet > &m)
 
template<>
void Visit (GridRefManager< Monster > &m)
 
template<>
void Visit (GridRefManager< Skill > &m)
 
template<>
void Visit (GridRefManager< Item > &m)
 

Public Attributes

std::weak_ptr< Horizon::Zone::Unit_unit
 
ByteBuffer _buf
 
grid_notifier_type _type
 

Constructor & Destructor Documentation

◆ GridPlayerNotifier()

GridPlayerNotifier::GridPlayerNotifier ( ByteBuffer buf,
const std::shared_ptr< Horizon::Zone::Unit > &  unit,
grid_notifier_type  type = GRID_NOTIFY_AREA 
)
inlineexplicit
226 : _unit(unit), _buf(buf), _type(type)
227 { }
ByteBuffer _buf
Definition: GridNotifiers.hpp:222
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:221
grid_notifier_type _type
Definition: GridNotifiers.hpp:223

Member Function Documentation

◆ notify()

void GridPlayerNotifier::notify ( GridRefManager< unit_ns(Player)> &  m)
51{
52 using namespace Horizon::Zone::Units;
53
54 std::shared_ptr<Player> pl = _unit.lock()->template downcast<Player>();
55
56 for (typename GridRefManager<Player>::iterator iter = m.begin(); iter != typename GridRefManager<Player>::iterator(nullptr); ++iter) {
57 if (iter->source() == nullptr)
58 continue;
59
60 switch (_type)
61 {
63 if (pl != nullptr && iter->source()->guid() == pl->guid())
64 continue;
65 default:
66 break;
67 }
68 iter->source()->get_session()->transmit_buffer(_buf, _buf.active_length());
69 }
70}
@ GRID_NOTIFY_AREA_WOS
Definition: ClientDefinitions.hpp:82
size_t active_length() const
Definition: ByteBuffer.hpp:333
Forward declaration of GridRefManager, the class that manages GridReference.
Definition: GridRefManager.hpp:41
iterator begin()
Definition: GridRefManager.hpp:54
Definition: GameLogicProcess.hpp:43

References _buf, _type, _unit, ByteBuffer::active_length(), GridRefManager< OBJECT >::begin(), and GRID_NOTIFY_AREA_WOS.

+ Here is the call graph for this function:

◆ Visit() [1/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< Elemental > &  m)

◆ Visit() [2/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< Homunculus > &  m)

◆ Visit() [3/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< Item > &  m)

◆ Visit() [4/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< Mercenary > &  m)

◆ Visit() [5/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< Monster > &  m)

◆ Visit() [6/10]

template<class NOT_INTERESTED >
void GridPlayerNotifier::Visit ( GridRefManager< NOT_INTERESTED > &  )
inline
234{ }

◆ Visit() [7/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< NPC > &  m)

◆ Visit() [8/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< Pet > &  m)

◆ Visit() [9/10]

template<>
void GridPlayerNotifier::Visit ( GridRefManager< Skill > &  m)

◆ Visit() [10/10]

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

Member Data Documentation

◆ _buf

ByteBuffer GridPlayerNotifier::_buf

Referenced by notify().

◆ _type

grid_notifier_type GridPlayerNotifier::_type

Referenced by notify().

◆ _unit

std::weak_ptr<Horizon::Zone::Unit> GridPlayerNotifier::_unit

Referenced by notify().


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