aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-04-06 00:39:29 +0200
committerShauren <shauren.trinity@gmail.com>2015-04-06 00:39:29 +0200
commit38fcea46dad9445be791777be718619624934319 (patch)
tree5a7e651b1f68ad6f2dcac4b136372c2fa719d17a /src
parent9d59d038f8b09ed036448e755cb0b102396a4ca1 (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.cpp6
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp4
-rw-r--r--src/server/game/Server/Packets/MovementPackets.h1
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__