aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Phasing/PhasingHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-04-12 00:13:10 +0200
committerShauren <shauren.trinity@gmail.com>2018-04-12 00:13:10 +0200
commit08193cf625b6e2af54eba2bd36145837500a1c33 (patch)
tree9b94986329db493a0da87bb000b99b6a0b70a497 /src/server/game/Phasing/PhasingHandler.cpp
parenta7ef5ef8845d6fb506f55812f43eb7aa09fb5d88 (diff)
Core/Phasing: Fixed setting phaseshift flags on condition updates
Closes #21739
Diffstat (limited to 'src/server/game/Phasing/PhasingHandler.cpp')
-rw-r--r--src/server/game/Phasing/PhasingHandler.cpp2
1 files changed, 2 insertions, 0 deletions
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