aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Phasing
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-07-23 19:13:33 +0200
committerShauren <shauren.trinity@gmail.com>2022-07-23 19:13:33 +0200
commit16a06346aea16ffd6ee84081cedfdb0c75ac0b38 (patch)
tree61661f0914f1a19cc7f6a9bd04eabf9f8f6e846a /src/server/game/Phasing
parent82138bec18751eb889f364169cb53481eb90cdbd (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.cpp11
-rw-r--r--src/server/game/Phasing/PhasingHandler.h4
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);