From 06d23c1006a53d8cd1b9a8259cd9967501c4db85 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Wed, 7 Jul 2021 22:40:15 +0200 Subject: [PATCH] fix(Core): prevent crash (#6677) TODO: add error log --- src/server/game/Entities/Player/Player.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index b99fa6e3e..c3a456b3c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -23549,9 +23549,16 @@ void Player::UpdateObjectVisibility(bool forced, bool fromUpdate) void Player::UpdateVisibilityForPlayer(bool mapChange) { + // After added to map seer must be a player - there is no possibility to still have different seer (all charm auras must be already removed) + if (mapChange && m_seer != this) + { + m_seer = this; + } + Acore::VisibleNotifier notifierNoLarge(*this, mapChange, false); // visit only objects which are not large; default distance Cell::VisitAllObjects(m_seer, notifierNoLarge, GetSightRange() + VISIBILITY_INC_FOR_GOBJECTS); notifierNoLarge.SendToSelf(); + Acore::VisibleNotifier notifierLarge(*this, mapChange, true); // visit only large objects; maximum distance Cell::VisitAllObjects(m_seer, notifierLarge, GetSightRange()); notifierLarge.SendToSelf();