diff options
| author | Shauren <shauren.trinity@gmail.com> | 2017-02-08 20:23:37 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-02-08 20:23:37 +0100 |
| commit | 74bb92a5822d5a52aecc9cf117309ec1e21abd92 (patch) | |
| tree | 4adf8e63901efef437c0d0c1b5352b3cc09f6d01 /src/server/game/Entities/Object | |
| parent | 3a65c706572ea0d0b66b9b79a275f8d230f7991d (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.cpp | 23 |
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 |
