diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-07-23 19:13:33 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-07-23 19:13:33 +0200 |
| commit | 16a06346aea16ffd6ee84081cedfdb0c75ac0b38 (patch) | |
| tree | 61661f0914f1a19cc7f6a9bd04eabf9f8f6e846a /src/server/game/Phasing | |
| parent | 82138bec18751eb889f364169cb53481eb90cdbd (diff) | |
Core/Maps: Move terrain data handling out of Map class
Partial port of cmangos/mangos-wotlk@ff5232c64809207b5fa59d62e9870f58a36b6f3f
Diffstat (limited to 'src/server/game/Phasing')
| -rw-r--r-- | src/server/game/Phasing/PhasingHandler.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Phasing/PhasingHandler.h | 4 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/server/game/Phasing/PhasingHandler.cpp b/src/server/game/Phasing/PhasingHandler.cpp index 50e7afe586f..92e2995a514 100644 --- a/src/server/game/Phasing/PhasingHandler.cpp +++ b/src/server/game/Phasing/PhasingHandler.cpp @@ -29,6 +29,7 @@ #include "PhaseShift.h" #include "Player.h" #include "SpellAuraEffects.h" +#include "TerrainMgr.h" #include "Vehicle.h" #include <boost/container/flat_set.hpp> #include <boost/container/small_vector.hpp> @@ -72,7 +73,7 @@ public: for (ObjectGuid summonGuid : unit->m_SummonSlot) if (!summonGuid.IsEmpty()) - if (Creature* summon = unit->GetMap()->GetCreature(summonGuid)) + if (Creature* summon = ObjectAccessor::GetCreature(*unit, summonGuid)) if (_visited.insert(summon).second) func(summon); @@ -562,10 +563,10 @@ bool PhasingHandler::InDbPhaseShift(WorldObject const* object, uint8 phaseUseFla return object->GetPhaseShift().CanSee(phaseShift); } -uint32 PhasingHandler::GetTerrainMapId(PhaseShift const& phaseShift, Map const* map, float x, float y) +uint32 PhasingHandler::GetTerrainMapId(PhaseShift const& phaseShift, TerrainInfo const* terrain, float x, float y) { if (phaseShift.VisibleMapIds.empty()) - return map->GetId(); + return terrain->GetId(); if (phaseShift.VisibleMapIds.size() == 1) return phaseShift.VisibleMapIds.begin()->first; @@ -575,10 +576,10 @@ uint32 PhasingHandler::GetTerrainMapId(PhaseShift const& phaseShift, Map const* int32 gy = (MAX_NUMBER_OF_GRIDS - 1) - gridCoord.y_coord; for (std::pair<uint32 const, PhaseShift::VisibleMapIdRef> const& visibleMap : phaseShift.VisibleMapIds) - if (map->HasChildMapGridFile(visibleMap.first, gx, gy)) + if (terrain->HasChildTerrainGridFile(visibleMap.first, gx, gy)) return visibleMap.first; - return map->GetId(); + return terrain->GetId(); } void PhasingHandler::SetAlwaysVisible(WorldObject* object, bool apply, bool updateVisibility) diff --git a/src/server/game/Phasing/PhasingHandler.h b/src/server/game/Phasing/PhasingHandler.h index dfb8eb7aa94..25a89c829b4 100644 --- a/src/server/game/Phasing/PhasingHandler.h +++ b/src/server/game/Phasing/PhasingHandler.h @@ -23,10 +23,10 @@ #include <vector> class ChatHandler; -class Map; class ObjectGuid; class PhaseShift; class Player; +class TerrainInfo; class WorldObject; namespace WorldPackets { @@ -64,7 +64,7 @@ public: static void InitDbVisibleMapId(PhaseShift& phaseShift, int32 visibleMapId); static bool InDbPhaseShift(WorldObject const* object, uint8 phaseUseFlags, uint16 phaseId, uint32 phaseGroupId); - static uint32 GetTerrainMapId(PhaseShift const& phaseShift, Map const* map, float x, float y); + static uint32 GetTerrainMapId(PhaseShift const& phaseShift, TerrainInfo const* terrain, float x, float y); static void SetAlwaysVisible(WorldObject* object, bool apply, bool updateVisibility); static void SetInversed(WorldObject* object, bool apply, bool updateVisibility); |
