aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-02-08 20:23:37 +0100
committerShauren <shauren.trinity@gmail.com>2017-02-08 20:23:37 +0100
commit74bb92a5822d5a52aecc9cf117309ec1e21abd92 (patch)
tree4adf8e63901efef437c0d0c1b5352b3cc09f6d01 /src/server/game/Entities/Object
parent3a65c706572ea0d0b66b9b79a275f8d230f7991d (diff)
Core/Maps: Adjusted WorldObject::GetGridActivationRange() to never be less than map visibility distance for active objects to ensure equal ranges for activation/deactivation of grids
Updates #19072
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 7610c9981c5..3f58b6cc092 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1496,23 +1496,18 @@ void WorldObject::UpdateAllowedPositionZ(float x, float y, float &z) const
float WorldObject::GetGridActivationRange() const
{
- if (ToPlayer())
+ if (isActiveObject())
{
- if (ToPlayer()->GetCinematicMgr()->IsOnCinematic())
- return DEFAULT_VISIBILITY_INSTANCE;
+ if (GetTypeId() == TYPEID_PLAYER && ToPlayer()->GetCinematicMgr->IsOnCinematic())
+ return std::max(DEFAULT_VISIBILITY_INSTANCE, GetMap()->GetVisibilityRange());
+
return GetMap()->GetVisibilityRange();
}
- else if (ToCreature())
- return ToCreature()->m_SightDistance;
- else if (ToDynObject())
- {
- if (isActiveObject())
- return GetMap()->GetVisibilityRange();
- else
- return 0.0f;
- }
- else
- return 0.0f;
+
+ if (Creature const* thisCreature = ToCreature())
+ return thisCreature->m_SightDistance;
+
+ return 0.0f;
}
float WorldObject::GetVisibilityRange() const