aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-01-02 14:20:05 +0100
committerShauren <shauren.trinity@gmail.com>2014-01-02 14:20:05 +0100
commit9d6904f03d67e6feddcbd77f9d74cd4f3b9c38ad (patch)
tree021063453917e3e49b776e77a0daf0b651d1ca00 /src
parent82181a8622f9a6981f9649b8ea99dd94d2184d11 (diff)
Core/Vehicles
* Fixed vehicle orientation on transports * Fixed exiting vehicles on moving transports
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Object/Object.cpp5
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp9
2 files changed, 11 insertions, 3 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index f18c6fdd977..8af48f277bd 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -480,7 +480,10 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
{
/// @todo Allow players to aquire this updateflag.
*data << uint32(unit->GetVehicleKit()->GetVehicleInfo()->m_ID);
- *data << float(unit->GetOrientation());
+ if (unit->HasUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
+ *data << float(unit->GetTransOffsetO());
+ else
+ *data << float(unit->GetOrientation());
}
// 0x200
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index a48f46191ba..fae4f0c6b6a 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -521,8 +521,13 @@ Vehicle* Vehicle::RemovePassenger(Unit* unit)
if (_me->IsInWorld())
{
- unit->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
- unit->m_movementInfo.transport.Reset();
+ if (!_me->GetTransport())
+ {
+ unit->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
+ unit->m_movementInfo.transport.Reset();
+ }
+ else
+ unit->m_movementInfo.transport = _me->m_movementInfo.transport;
}
// only for flyable vehicles