AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Acore::VisibleChangesNotifier Struct Reference

#include "GridNotifiers.h"

Public Member Functions

 VisibleChangesNotifier (WorldObject &object)
 
template<class T >
void Visit (GridRefMgr< T > &)
 
void Visit (PlayerMapType &)
 
void Visit (CreatureMapType &)
 
void Visit (DynamicObjectMapType &)
 

Public Attributes

WorldObjecti_object
 

Detailed Description

Constructor & Destructor Documentation

◆ VisibleChangesNotifier()

Acore::VisibleChangesNotifier::VisibleChangesNotifier ( WorldObject object)
inlineexplicit
66: i_object(object) {}
WorldObject & i_object
Definition GridNotifiers.h:64

Member Function Documentation

◆ Visit() [1/4]

void VisibleChangesNotifier::Visit ( CreatureMapType m)
109{
110 for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
111 if (iter->GetSource()->HasSharedVision())
112 for (SharedVisionList::const_iterator i = iter->GetSource()->GetSharedVisionList().begin(); i != iter->GetSource()->GetSharedVisionList().end(); ++i)
113 if ((*i)->m_seer == iter->GetSource())
114 (*i)->UpdateVisibilityOf(&i_object);
115}
iterator begin()
Definition GridRefMgr.h:35
iterator end()
Definition GridRefMgr.h:36
Definition LinkedList.h:139

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

◆ Visit() [2/4]

void VisibleChangesNotifier::Visit ( DynamicObjectMapType m)
118{
119 for (DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
120 if (iter->GetSource()->GetCasterGUID().IsPlayer())
121 if (Unit* caster = iter->GetSource()->GetCaster())
122 if (Player* player = caster->ToPlayer())
123 if (player->m_seer == iter->GetSource())
124 player->UpdateVisibilityOf(&i_object);
125}
Player * ToPlayer()
Definition Object.h:202
Definition Player.h:1072
Definition Unit.h:620

References GridRefMgr< OBJECT >::begin(), GridRefMgr< OBJECT >::end(), i_object, and Object::ToPlayer().

◆ Visit() [3/4]

template<class T >
void Acore::VisibleChangesNotifier::Visit ( GridRefMgr< T > &  )
inline
67{}

◆ Visit() [4/4]

void VisibleChangesNotifier::Visit ( PlayerMapType m)
93{
94 for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
95 {
96 if (iter->GetSource() == &i_object)
97 continue;
98
99 iter->GetSource()->UpdateVisibilityOf(&i_object);
100
101 if (iter->GetSource()->HasSharedVision())
102 for (SharedVisionList::const_iterator i = iter->GetSource()->GetSharedVisionList().begin(); i != iter->GetSource()->GetSharedVisionList().end(); ++i)
103 if ((*i)->m_seer == iter->GetSource())
104 (*i)->UpdateVisibilityOf(&i_object);
105 }
106}

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

Member Data Documentation

◆ i_object

WorldObject& Acore::VisibleChangesNotifier::i_object

Referenced by Visit(), Visit(), and Visit().


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