*Inform creature/dynobj seers in visiblechangesnotifier
--HG-- branch : trunk
This commit is contained in:
@@ -38,9 +38,36 @@ VisibleChangesNotifier::Visit(PlayerMapType &m)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
iter->getSource()->UpdateVisibilityOf(&i_object);
|
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
|
void
|
||||||
PlayerVisibilityNotifier::Notify()
|
PlayerVisibilityNotifier::Notify()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -81,6 +81,8 @@ namespace Trinity
|
|||||||
explicit VisibleChangesNotifier(WorldObject &object) : i_object(object) {}
|
explicit VisibleChangesNotifier(WorldObject &object) : i_object(object) {}
|
||||||
template<class T> void Visit(GridRefManager<T> &) {}
|
template<class T> void Visit(GridRefManager<T> &) {}
|
||||||
void Visit(PlayerMapType &);
|
void Visit(PlayerMapType &);
|
||||||
|
void Visit(CreatureMapType &);
|
||||||
|
void Visit(DynamicObjectMapType &);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL GridUpdater
|
struct TRINITY_DLL_DECL GridUpdater
|
||||||
|
|||||||
Reference in New Issue
Block a user