diff options
| author | Jeremy <Golrag@users.noreply.github.com> | 2023-11-14 18:40:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-14 18:40:39 +0100 |
| commit | e72bde5236d41a7f66abb25ce9e118eeb1c5aa92 (patch) | |
| tree | 312d90d3dde899b05c59f95e0ac3f7c4fdfeb51a /src/server/game/Maps | |
| parent | 740136af41c60787ca84d5819cf7503d69def073 (diff) | |
Core/BattlegroundMap: Load all cells when created & mark all creatures as active (#29410)
Diffstat (limited to 'src/server/game/Maps')
| -rw-r--r-- | src/server/game/Maps/Map.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Maps/Map.h | 2 | ||||
| -rw-r--r-- | src/server/game/Maps/MapManager.cpp | 4 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index c778396dd88..95b1f3a204d 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -548,6 +548,9 @@ bool Map::AddToMap(T* obj) return false; //Should delete object } + if (IsAlwaysActive()) + obj->setActive(true); + Cell cell(cellCoord); if (obj->isActiveObject()) EnsureGridLoadedForActiveObject(cell, obj); @@ -3295,6 +3298,11 @@ bool Map::IsGarrison() const return i_mapEntry && i_mapEntry->IsGarrison(); } +bool Map::IsAlwaysActive() const +{ + return IsBattlegroundOrArena(); +} + bool Map::GetEntrancePos(int32 &mapid, float &x, float &y) { if (!i_mapEntry) diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 425e7dfcd23..454718916cf 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -338,6 +338,8 @@ class TC_GAME_API Map : public GridRefManager<NGridType> bool IsBattlegroundOrArena() const; bool IsScenario() const; bool IsGarrison() const; + // Currently, this means that every entity added to this map will be marked as active + bool IsAlwaysActive() const; bool GetEntrancePos(int32& mapid, float& x, float& y); void AddObjectToRemoveList(WorldObject* obj); diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index 0c2d686d10d..40ac78eaff3 100644 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -122,6 +122,10 @@ BattlegroundMap* MapManager::CreateBattleground(uint32 mapId, uint32 instanceId, ASSERT(map->IsBattlegroundOrArena()); map->SetBG(bg); bg->SetBgMap(map); + + if (sWorld->getBoolConfig(CONFIG_BATTLEGROUNDMAP_LOAD_GRIDS)) + map->LoadAllCells(); + return map; } |
