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
This commit is contained in:
@@ -589,7 +589,7 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
|
|||||||
case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE:
|
case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE:
|
||||||
{
|
{
|
||||||
uint64 guid; // current vehicle guid
|
uint64 guid; // current vehicle guid
|
||||||
if (!recv_data.readPackGUID(guid) || vehicle_base->GetGUID() != guid)
|
if (!recv_data.readPackGUID(guid))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ReadMovementInfo(recv_data, &vehicle_base->m_movementInfo);
|
ReadMovementInfo(recv_data, &vehicle_base->m_movementInfo);
|
||||||
@@ -601,6 +601,9 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
|
|||||||
int8 seatId;
|
int8 seatId;
|
||||||
recv_data >> seatId;
|
recv_data >> seatId;
|
||||||
|
|
||||||
|
if (vehicle_base->GetGUID() != guid)
|
||||||
|
return;
|
||||||
|
|
||||||
if (!accessory)
|
if (!accessory)
|
||||||
GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
|
GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
|
||||||
else if (Unit *vehUnit = Unit::GetUnit(*GetPlayer(), accessory))
|
else if (Unit *vehUnit = Unit::GetUnit(*GetPlayer(), accessory))
|
||||||
@@ -614,13 +617,14 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
|
|||||||
case CMSG_REQUEST_VEHICLE_SWITCH_SEAT:
|
case CMSG_REQUEST_VEHICLE_SWITCH_SEAT:
|
||||||
{
|
{
|
||||||
uint64 guid; // current vehicle guid
|
uint64 guid; // current vehicle guid
|
||||||
if (!recv_data.readPackGUID(guid) || vehicle_base->GetGUID() != guid)
|
if (!recv_data.readPackGUID(guid))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int8 seatId;
|
int8 seatId;
|
||||||
recv_data >> seatId;
|
recv_data >> seatId;
|
||||||
|
|
||||||
GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
|
if (vehicle_base->GetGUID() == guid)
|
||||||
|
GetPlayer()->ChangeSeat(seatId);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user