aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Phasing
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Phasing')
-rw-r--r--src/server/game/Phasing/PhasingHandler.cpp18
-rw-r--r--src/server/game/Phasing/PhasingHandler.h4
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);