aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSpp <none@none>2010-04-10 20:39:31 +0200
committerSpp <none@none>2010-04-10 20:39:31 +0200
commit6bad540360139b2340ee4e571f9b3ca0820e0597 (patch)
tree64f987449cf05deb47645504dfddd2f73515b531 /src
parenta100b4c6b106de2c398bf5eff061899a61550be9 (diff)
Fix CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE and CMSG_REQUEST_VEHICLE_SWITCH_SEAT handlers
Modified version of Havenard's patch Closes issue 1452 --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/MovementHandler.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp
index c0809b67fbc..c06d9581d0b 100644
--- a/src/game/MovementHandler.cpp
+++ b/src/game/MovementHandler.cpp
@@ -589,7 +589,7 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE:
{
uint64 guid; // current vehicle guid
- if (!recv_data.readPackGUID(guid) || vehicle_base->GetGUID() != guid)
+ if (!recv_data.readPackGUID(guid))
return;
ReadMovementInfo(recv_data, &vehicle_base->m_movementInfo);
@@ -601,6 +601,9 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
int8 seatId;
recv_data >> seatId;
+ if (vehicle_base->GetGUID() != guid)
+ return;
+
if (!accessory)
GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
else if (Unit *vehUnit = Unit::GetUnit(*GetPlayer(), accessory))
@@ -614,13 +617,14 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
case CMSG_REQUEST_VEHICLE_SWITCH_SEAT:
{
uint64 guid; // current vehicle guid
- if (!recv_data.readPackGUID(guid) || vehicle_base->GetGUID() != guid)
+ if (!recv_data.readPackGUID(guid))
return;
int8 seatId;
recv_data >> seatId;
- GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
+ if (vehicle_base->GetGUID() == guid)
+ GetPlayer()->ChangeSeat(seatId);
}
break;
default: