parse CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE opcode in proper way

--HG--
branch : trunk
This commit is contained in:
silver1ce
2010-01-15 19:23:59 +02:00
parent b8ea34958c
commit 0451e45e06
2 changed files with 29 additions and 32 deletions

View File

@@ -585,32 +585,38 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
if(!GetPlayer()->GetVehicle())
return;
if(recv_data.GetOpcode() == CMSG_REQUEST_VEHICLE_PREV_SEAT)
switch (recv_data.GetOpcode())
{
case CMSG_REQUEST_VEHICLE_PREV_SEAT:
GetPlayer()->ChangeSeat(-1, false);
return;
}
else if(recv_data.GetOpcode() == CMSG_REQUEST_VEHICLE_NEXT_SEAT)
{
break;
case CMSG_REQUEST_VEHICLE_NEXT_SEAT:
GetPlayer()->ChangeSeat(-1, true);
return;
break;
case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE:
{
uint64 guid; // current vehicle guid
if(!recv_data.readPackGUID(guid))
return;
ReadMovementInfo(recv_data, &GetPlayer()->GetVehicleBase()->m_movementInfo);
uint64 accessory; // accessory guid
if(!recv_data.readPackGUID(accessory))
return;
int8 seatId;
recv_data >> seatId;
if(!accessory)
GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
else if(Unit *vehUnit = ObjectAccessor::GetUnit(*GetPlayer(), accessory))
if(Vehicle *vehicle = vehUnit->GetVehicleKit())
if(vehicle->HasEmptySeat(seatId))
GetPlayer()->EnterVehicle(vehicle, seatId);
}
break;
}
else if(recv_data.GetOpcode() == CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE)
ReadMovementInfo(recv_data, &GetPlayer()->GetVehicleBase()->m_movementInfo);
uint64 guid;
if(!recv_data.readPackGUID(guid))
return;
int8 seatId;
recv_data >> seatId;
if(!guid)
GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
else if(Unit *vehUnit = ObjectAccessor::GetUnit(*GetPlayer(), guid))
if(Vehicle *vehicle = vehUnit->GetVehicleKit())
if(vehicle->HasEmptySeat(seatId))
GetPlayer()->EnterVehicle(vehicle, seatId);
}
void WorldSession::HandleRequestVehicleExit(WorldPacket &recv_data)