diff options
| author | Seyden <saiifii@live.de> | 2023-01-28 15:36:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-28 15:36:28 +0100 |
| commit | b5886f6a2d1756357a9240703306e9efc82771d7 (patch) | |
| tree | a4581ccb1436817693f480fcaa076fadfab3365a /src/server/game/Phasing | |
| parent | b5176eb6c2ae640a1cdf22d3d0a483d1b48ecbb6 (diff) | |
Core/Quests: Dont immediately update object visibility at PhaseShift and wait for the AI Hooks to be called in Player::RewardQuest (#28516)
Diffstat (limited to 'src/server/game/Phasing')
| -rw-r--r-- | src/server/game/Phasing/PhasingHandler.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Phasing/PhasingHandler.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Phasing/PhasingHandler.cpp b/src/server/game/Phasing/PhasingHandler.cpp index 5521d7f0d57..b4eef7b5e90 100644 --- a/src/server/game/Phasing/PhasingHandler.cpp +++ b/src/server/game/Phasing/PhasingHandler.cpp @@ -366,7 +366,7 @@ void PhasingHandler::OnAreaChange(WorldObject* object) UpdateVisibilityIfNeeded(object, true, changed); } -void PhasingHandler::OnConditionChange(WorldObject* object) +bool PhasingHandler::OnConditionChange(WorldObject* object, bool updateVisibility /*= true*/) { PhaseShift& phaseShift = object->GetPhaseShift(); PhaseShift& suppressedPhaseShift = object->GetSuppressedPhaseShift(); @@ -478,7 +478,8 @@ void PhasingHandler::OnConditionChange(WorldObject* object) unit->RemoveNotOwnSingleTargetAuras(true); } - UpdateVisibilityIfNeeded(object, true, changed); + UpdateVisibilityIfNeeded(object, updateVisibility, changed); + return changed; } void PhasingHandler::SendToPlayer(Player const* player, PhaseShift const& phaseShift) diff --git a/src/server/game/Phasing/PhasingHandler.h b/src/server/game/Phasing/PhasingHandler.h index 6da249558a7..5a751dcc725 100644 --- a/src/server/game/Phasing/PhasingHandler.h +++ b/src/server/game/Phasing/PhasingHandler.h @@ -52,7 +52,7 @@ public: static void OnMapChange(WorldObject* object); static void OnAreaChange(WorldObject* object); - static void OnConditionChange(WorldObject* object); + static bool OnConditionChange(WorldObject* object, bool updateVisibility = true); static void SendToPlayer(Player const* player, PhaseShift const& phaseShift); static void SendToPlayer(Player const* player); |
