diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.h b/src/server/game/Entities/AreaTrigger/AreaTrigger.h
index b7193ac7fd3..67074b04d36 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTrigger.h
+++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.h
@@ -80,10 +80,7 @@ class TC_GAME_API AreaTrigger final : public WorldObject, public GridObject
Transport* ToTransport() { if (GetGOInfo()->type == GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT) return reinterpret_cast(this); else return nullptr; }
Transport const* ToTransport() const { if (GetGOInfo()->type == GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT) return reinterpret_cast(this); else return nullptr; }
- float GetStationaryX() const override { return m_stationaryPosition.GetPositionX(); }
- float GetStationaryY() const override { return m_stationaryPosition.GetPositionY(); }
- float GetStationaryZ() const override { return m_stationaryPosition.GetPositionZ(); }
- float GetStationaryO() const override { return m_stationaryPosition.GetOrientation(); }
- Position const& GetStationaryPosition() const { return m_stationaryPosition; }
+ Position const& GetStationaryPosition() const override { return m_stationaryPosition; }
void RelocateStationaryPosition(float x, float y, float z, float o) { m_stationaryPosition.Relocate(x, y, z, o); }
+ void RelocateStationaryPosition(Position const& pos) { m_stationaryPosition.Relocate(pos); }
void AfterRelocation();
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index cdaf87c80a9..058b59a3dff 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -465,10 +465,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe
if (flags.Stationary)
{
WorldObject const* self = static_cast(this);
- *data << float(self->GetStationaryX());
- *data << float(self->GetStationaryY());
- *data << float(self->GetStationaryZ());
- *data << float(self->GetStationaryO());
+ *data << self->GetStationaryPosition().PositionXYZOStream();
}
if (flags.CombatVictim)
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 123e5891ff1..fcbcedf77a5 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -911,10 +911,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
MovementInfo m_movementInfo;
- virtual float GetStationaryX() const { return GetPositionX(); }
- virtual float GetStationaryY() const { return GetPositionY(); }
- virtual float GetStationaryZ() const { return GetPositionZ(); }
- virtual float GetStationaryO() const { return GetOrientation(); }
+ virtual Position const& GetStationaryPosition() const { return *this; }
float GetFloorZ() const;
virtual float GetCollisionHeight() const { return 0.0f; }
diff --git a/src/server/game/Entities/SceneObject/SceneObject.h b/src/server/game/Entities/SceneObject/SceneObject.h
index 8932e6f235f..c6e0b98e5d1 100644
--- a/src/server/game/Entities/SceneObject/SceneObject.h
+++ b/src/server/game/Entities/SceneObject/SceneObject.h
@@ -69,10 +69,7 @@ public:
ObjectGuid GetOwnerGUID() const override { return *m_sceneObjectData->CreatedBy; }
uint32 GetFaction() const override { return 0; }
- float GetStationaryX() const override { return _stationaryPosition.GetPositionX(); }
- float GetStationaryY() const override { return _stationaryPosition.GetPositionY(); }
- float GetStationaryZ() const override { return _stationaryPosition.GetPositionZ(); }
- float GetStationaryO() const override { return _stationaryPosition.GetOrientation(); }
+ Position const& GetStationaryPosition() const override { return _stationaryPosition; }
void RelocateStationaryPosition(Position const& pos) { _stationaryPosition.Relocate(pos); }
void SetCreatedBySpellCast(ObjectGuid castId) { _createdBySpellCast = castId; }