From 08193cf625b6e2af54eba2bd36145837500a1c33 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 12 Apr 2018 00:13:10 +0200 Subject: Core/Phasing: Fixed setting phaseshift flags on condition updates Closes #21739 --- src/server/game/Phasing/PhasingHandler.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/server/game/Phasing/PhasingHandler.cpp') diff --git a/src/server/game/Phasing/PhasingHandler.cpp b/src/server/game/Phasing/PhasingHandler.cpp index 549093fecba..e60c87b4816 100644 --- a/src/server/game/Phasing/PhasingHandler.cpp +++ b/src/server/game/Phasing/PhasingHandler.cpp @@ -293,6 +293,7 @@ void PhasingHandler::OnConditionChange(WorldObject* object) if (itr->AreaConditions && !sConditionMgr->IsObjectMeetToConditions(srcInfo, *itr->AreaConditions)) { newSuppressions.AddPhase(itr->Id, itr->Flags, itr->AreaConditions, itr->References); + phaseShift.ModifyPhasesReferences(itr, -itr->References); itr = phaseShift.Phases.erase(itr); } else @@ -304,6 +305,7 @@ void PhasingHandler::OnConditionChange(WorldObject* object) if (sConditionMgr->IsObjectMeetToConditions(srcInfo, *ASSERT_NOTNULL(itr->AreaConditions))) { changed = phaseShift.AddPhase(itr->Id, itr->Flags, itr->AreaConditions, itr->References) || changed; + suppressedPhaseShift.ModifyPhasesReferences(itr, -itr->References); itr = suppressedPhaseShift.Phases.erase(itr); } else -- cgit v1.2.3