diff options
Diffstat (limited to 'src/server/game/Phasing/PhasingHandler.cpp')
-rw-r--r-- | src/server/game/Phasing/PhasingHandler.cpp | 18 |
1 files changed, 11 insertions, 7 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) |