mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-28 16:16:27 +00:00
feat(Core/Grids): Implement visibility notifier (#15919)
* Cherry-picked from TrinityCore (unable to find author)
This commit is contained in:
@@ -28,7 +28,7 @@ class MapInstanced : public Map
|
||||
public:
|
||||
using InstancedMaps = std::unordered_map<uint32, Map*>;
|
||||
|
||||
MapInstanced(uint32 id);
|
||||
MapInstanced(uint32 id, std::chrono::seconds expiry);
|
||||
~MapInstanced() override {}
|
||||
|
||||
// functions overwrite Map versions
|
||||
@@ -46,6 +46,19 @@ public:
|
||||
}
|
||||
bool DestroyInstance(InstancedMaps::iterator& itr);
|
||||
|
||||
void AddGridMapReference(GridCoord const& p)
|
||||
{
|
||||
++GridMapReference[p.x_coord][p.y_coord];
|
||||
SetUnloadReferenceLock(GridCoord((MAX_NUMBER_OF_GRIDS - 1) - p.x_coord, (MAX_NUMBER_OF_GRIDS - 1) - p.y_coord), true);
|
||||
}
|
||||
|
||||
void RemoveGridMapReference(GridCoord const& p)
|
||||
{
|
||||
--GridMapReference[p.x_coord][p.y_coord];
|
||||
if (!GridMapReference[p.x_coord][p.y_coord])
|
||||
SetUnloadReferenceLock(GridCoord((MAX_NUMBER_OF_GRIDS - 1) - p.x_coord, (MAX_NUMBER_OF_GRIDS - 1) - p.y_coord), false);
|
||||
}
|
||||
|
||||
InstancedMaps& GetInstancedMaps() { return m_InstancedMaps; }
|
||||
void InitVisibilityDistance() override;
|
||||
|
||||
@@ -54,5 +67,7 @@ private:
|
||||
BattlegroundMap* CreateBattleground(uint32 InstanceId, Battleground* bg);
|
||||
|
||||
InstancedMaps m_InstancedMaps;
|
||||
|
||||
uint16 GridMapReference[MAX_NUMBER_OF_GRIDS][MAX_NUMBER_OF_GRIDS];
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user