From c9344c145ad1f981492c35d4aad7ca7a60e9f8f2 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 26 Feb 2021 22:10:34 +0100 Subject: Core/Auras: Implemented SPELL_AURA_PHASE_ALWAYS_VISIBLE --- src/server/game/Phasing/PhasingHandler.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (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 ad725bade8d..943144ded64 100644 --- a/src/server/game/Phasing/PhasingHandler.cpp +++ b/src/server/game/Phasing/PhasingHandler.cpp @@ -494,22 +494,26 @@ uint32 PhasingHandler::GetTerrainMapId(PhaseShift const& phaseShift, Map const* return map->GetId(); } -void PhasingHandler::SetAlwaysVisible(PhaseShift& phaseShift, bool apply) +void PhasingHandler::SetAlwaysVisible(WorldObject* object, bool apply, bool updateVisibility) { if (apply) - phaseShift.Flags |= PhaseShiftFlags::AlwaysVisible; + object->GetPhaseShift().Flags |= PhaseShiftFlags::AlwaysVisible; else - phaseShift.Flags &= ~PhaseShiftFlags::AlwaysVisible; + object->GetPhaseShift().Flags &= ~PhaseShiftFlags::AlwaysVisible; + + UpdateVisibilityIfNeeded(object, updateVisibility, true); } -void PhasingHandler::SetInversed(PhaseShift& phaseShift, bool apply) +void PhasingHandler::SetInversed(WorldObject* object, bool apply, bool updateVisibility) { if (apply) - phaseShift.Flags |= PhaseShiftFlags::Inverse; + object->GetPhaseShift().Flags |= PhaseShiftFlags::Inverse; else - phaseShift.Flags &= PhaseShiftFlags::Inverse; + object->GetPhaseShift().Flags &= PhaseShiftFlags::Inverse; + + object->GetPhaseShift().UpdateUnphasedFlag(); - phaseShift.UpdateUnphasedFlag(); + UpdateVisibilityIfNeeded(object, updateVisibility, true); } void PhasingHandler::PrintToChat(ChatHandler* chat, PhaseShift const& phaseShift) -- cgit v1.2.3