diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-09-25 21:26:31 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-09-25 21:26:31 +0200 |
| commit | e68ff4186e685de00362b12bc0b5084a4d6065dd (patch) | |
| tree | 3d93e12dfdb73f453cb705e52b2ae07f03a7fe1e /src/server/game | |
| parent | 9207304d3225c04bf15e04cf0cbbd5cf90a535ed (diff) | |
Core/Commands: Fixed .gobject move and turn
(cherry picked from commit 7eb25f1af6b74d3559b541d45da6cce50e657ba4)
Closes #3802
Closes #15598
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.h | 1 | ||||
| -rw-r--r-- | src/server/game/Entities/Transport/Transport.cpp | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 26c712730cd..b91f1b6eeee 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -843,6 +843,7 @@ class GameObject : public WorldObject, public GridObject<GameObject>, public Map float GetStationaryY() const override { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.GetPositionY(); return GetPositionY(); } float GetStationaryZ() const override { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.GetPositionZ(); return GetPositionZ(); } float GetStationaryO() const override { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.GetOrientation(); return GetOrientation(); } + void RelocateStationaryPosition(float x, float y, float z, float o) { m_stationaryPosition.Relocate(x, y, z, o); } float GetInteractionDistance(); diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index 9cd3945d44d..236675a7d29 100644 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -352,6 +352,7 @@ GameObject* Transport::CreateGOPassenger(uint32 guid, GameObjectData const* data go->m_movementInfo.transport.pos.Relocate(x, y, z, o); CalculatePassengerPosition(x, y, z, &o); go->Relocate(x, y, z, o); + go->RelocateStationaryPosition(x, y, z, o); if (!go->IsPositionValid()) { @@ -704,6 +705,7 @@ void Transport::UpdatePassengerPositions(PassengerSet& passengers) break; case TYPEID_GAMEOBJECT: GetMap()->GameObjectRelocation(passenger->ToGameObject(), x, y, z, o, false); + passenger->ToGameObject()->RelocateStationaryPosition(x, y, z, o); break; case TYPEID_DYNAMICOBJECT: GetMap()->DynamicObjectRelocation(passenger->ToDynObject(), x, y, z, o); |
