diff options
author | n0n4m3 <none@none> | 2009-12-19 10:12:40 +0100 |
---|---|---|
committer | n0n4m3 <none@none> | 2009-12-19 10:12:40 +0100 |
commit | 243f33b5eae4e5dc96e8134c650ea74daa07ee35 (patch) | |
tree | 39d943868b1bbe0116000f748bd72b7b76087683 /src/game/Map.h | |
parent | 7a3e524df2c57cb8625f08f3b8bef5befe641142 (diff) |
Implement new visibility system, based on Silverice patch for mangos
--HG--
branch : trunk
Diffstat (limited to 'src/game/Map.h')
-rw-r--r-- | src/game/Map.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/game/Map.h b/src/game/Map.h index 981a48bbbb6..9144624b23d 100644 --- a/src/game/Map.h +++ b/src/game/Map.h @@ -405,6 +405,8 @@ class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::Obj virtual bool RemoveBones(uint64 guid, float x, float y); void UpdateObjectVisibility(WorldObject* obj, Cell cell, CellPair cellpair); + void UpdatePlayerVisibility( Player* player, Cell cell, CellPair cellpair ); + void UpdateObjectsVisibilityFor(Player* player, Cell cell, CellPair cellpair ); void resetMarkedCells() { marked_cells.reset(); } bool isCellMarked(uint32 pCellId) { return marked_cells.test(pCellId); } @@ -517,6 +519,10 @@ class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::Obj MapRefManager m_mapRefManager; MapRefManager::iterator m_mapRefIter; + PeriodicTimer m_ObjectVisibilityNotifyTimer; + PeriodicTimer m_PlayerVisibilityNotifyTimer; + PeriodicTimer m_RelocationNotifyTimer; + typedef std::set<WorldObject*> ActiveNonPlayers; ActiveNonPlayers m_activeNonPlayers; ActiveNonPlayers::iterator m_activeNonPlayersIter; @@ -537,6 +543,11 @@ class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::Obj IntervalTimer m_notifyTimer; + void ProcessObjectsVisibility(); + void ProcesssPlayersVisibility(); + void ProcessRelocationNotifies(); + void ResetNotifies(uint16 notify_mask); + bool i_notifyLock, i_scriptLock; std::vector<Unit*> i_unitsToNotifyBacklog; std::vector<Unit*> i_unitsToNotify; |