diff options
author | Shauren <shauren.trinity@gmail.com> | 2015-04-06 00:39:29 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2015-04-06 00:39:29 +0200 |
commit | 38fcea46dad9445be791777be718619624934319 (patch) | |
tree | 5a7e651b1f68ad6f2dcac4b136372c2fa719d17a /src | |
parent | 9d59d038f8b09ed036448e755cb0b102396a4ca1 (diff) |
Core/PacketIO: Fixed creature movement on transports (and vehicle enter/exit)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Movement/Spline/MoveSplineInit.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MovementPackets.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MovementPackets.h | 1 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp index 8e6fdd96280..973f348c2bb 100644 --- a/src/server/game/Movement/Spline/MoveSplineInit.cpp +++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp @@ -119,6 +119,12 @@ namespace Movement packet.MoverGUID = unit->GetGUID(); packet.Pos = real_position; packet.InitializeSplineData(move_spline); + if (transport) + { + packet.SplineData.Move.TransportGUID = unit->GetTransGUID(); + packet.SplineData.Move.VehicleSeat = unit->GetTransSeat(); + } + unit->SendMessageToSet(packet.Write(), true); return move_spline.Duration(); diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index d684cc26315..2f239dfdd63 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -422,6 +422,8 @@ void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveS movementSpline.PackedDeltas.push_back(middle - realPath[i]); } } + + movementSpline.Mode = spline.mode(); } WorldPacket const* WorldPackets::Movement::MonsterMove::Write() @@ -597,7 +599,7 @@ void WorldPackets::Movement::MoveTeleportAck::Read() _worldPacket >> MoveTime; } -ByteBuffer operator>>(ByteBuffer& data, WorldPackets::Movement::MovementAck& ack) +ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Movement::MovementAck& ack) { data >> ack.movementInfo; data >> ack.AckIndex; diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h index 3b8479076eb..9f8ec7bb52b 100644 --- a/src/server/game/Server/Packets/MovementPackets.h +++ b/src/server/game/Server/Packets/MovementPackets.h @@ -402,5 +402,6 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo& movementInfo); ByteBuffer& operator>>(ByteBuffer& data, MovementInfo::TransportInfo& transportInfo); ByteBuffer& operator<<(ByteBuffer& data, MovementInfo::TransportInfo const& transportInfo); +ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Movement::MovementAck& movementAck); #endif // MovementPackets_h__ |