diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-02-26 22:10:34 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-02-26 22:10:34 +0100 |
commit | c9344c145ad1f981492c35d4aad7ca7a60e9f8f2 (patch) | |
tree | 1ddc52547a32e620ae263b16d6d87463f2e482e2 /src/server/game/Phasing | |
parent | f269f60d8a5f6b0982eb46dc583e2618c98931fb (diff) |
Core/Auras: Implemented SPELL_AURA_PHASE_ALWAYS_VISIBLE
Diffstat (limited to 'src/server/game/Phasing')
-rw-r--r-- | src/server/game/Phasing/PhasingHandler.cpp | 18 | ||||
-rw-r--r-- | src/server/game/Phasing/PhasingHandler.h | 4 |
2 files changed, 13 insertions, 9 deletions
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) diff --git a/src/server/game/Phasing/PhasingHandler.h b/src/server/game/Phasing/PhasingHandler.h index 701820e2dcc..a2ee1cfc046 100644 --- a/src/server/game/Phasing/PhasingHandler.h +++ b/src/server/game/Phasing/PhasingHandler.h @@ -63,8 +63,8 @@ public: static uint32 GetTerrainMapId(PhaseShift const& phaseShift, Map const* map, float x, float y); - static void SetAlwaysVisible(PhaseShift& phaseShift, bool apply); - static void SetInversed(PhaseShift& phaseShift, bool apply); + static void SetAlwaysVisible(WorldObject* object, bool apply, bool updateVisibility); + static void SetInversed(WorldObject* object, bool apply, bool updateVisibility); static void PrintToChat(ChatHandler* chat, PhaseShift const& phaseShift); static std::string FormatPhases(PhaseShift const& phaseShift); |