diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 23 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 9 |
2 files changed, 11 insertions, 21 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 diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index d2bc9cdfb51..943f4bd759b 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -721,14 +721,9 @@ void Map::Update(const uint32 t_diff) VisitNearbyCellsOf(player, grid_object_update, world_object_update); - // If player is using far sight, visit that object too + // If player is using far sight or mind vision, visit that object too if (WorldObject* viewPoint = player->GetViewpoint()) - { - if (Creature* viewCreature = viewPoint->ToCreature()) - VisitNearbyCellsOf(viewCreature, grid_object_update, world_object_update); - else if (DynamicObject* viewObject = viewPoint->ToDynObject()) - VisitNearbyCellsOf(viewObject, grid_object_update, world_object_update); - } + VisitNearbyCellsOf(viewPoint, grid_object_update, world_object_update); // Handle updates for creatures in combat with player and are more than 60 yards away if (player->IsInCombat()) |