*Inform creature/dynobj seers in visiblechangesnotifier
--HG-- branch : trunk
This commit is contained in:
@@ -38,9 +38,36 @@ VisibleChangesNotifier::Visit(PlayerMapType &m)
|
||||
continue;
|
||||
|
||||
iter->getSource()->UpdateVisibilityOf(&i_object);
|
||||
|
||||
if(!iter->getSource()->GetSharedVisionList().empty())
|
||||
for(SharedVisionList::const_iterator i = iter->getSource()->GetSharedVisionList().begin();
|
||||
i != iter->getSource()->GetSharedVisionList().end(); ++i)
|
||||
if((*i)->m_seer == iter->getSource())
|
||||
(*i)->UpdateVisibilityOf(&i_object);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
VisibleChangesNotifier::Visit(CreatureMapType &m)
|
||||
{
|
||||
for(CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
|
||||
if(!iter->getSource()->GetSharedVisionList().empty())
|
||||
for(SharedVisionList::const_iterator i = iter->getSource()->GetSharedVisionList().begin();
|
||||
i != iter->getSource()->GetSharedVisionList().end(); ++i)
|
||||
if((*i)->m_seer == iter->getSource())
|
||||
(*i)->UpdateVisibilityOf(&i_object);
|
||||
}
|
||||
|
||||
void
|
||||
VisibleChangesNotifier::Visit(DynamicObjectMapType &m)
|
||||
{
|
||||
for(DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
|
||||
if(IS_PLAYER_GUID(iter->getSource()->GetCasterGUID()))
|
||||
if(Player* caster = (Player*)iter->getSource()->GetCaster())
|
||||
if(caster->m_seer == iter->getSource())
|
||||
caster->UpdateVisibilityOf(&i_object);
|
||||
}
|
||||
|
||||
void
|
||||
PlayerVisibilityNotifier::Notify()
|
||||
{
|
||||
|
||||
@@ -81,6 +81,8 @@ namespace Trinity
|
||||
explicit VisibleChangesNotifier(WorldObject &object) : i_object(object) {}
|
||||
template<class T> void Visit(GridRefManager<T> &) {}
|
||||
void Visit(PlayerMapType &);
|
||||
void Visit(CreatureMapType &);
|
||||
void Visit(DynamicObjectMapType &);
|
||||
};
|
||||
|
||||
struct TRINITY_DLL_DECL GridUpdater
|
||||
|
||||
Reference in New Issue
Block a user