diff options
author | Shauren <shauren.trinity@gmail.com> | 2013-04-11 01:14:32 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2013-04-11 01:14:32 +0200 |
commit | f370c4e4d64dfd220c0f2e1157890315f069f340 (patch) | |
tree | c6df4212812e23095e2ced3952d0acb7fa8460c9 /src/server/game/Handlers/VehicleHandler.cpp | |
parent | 238f7e92530ab544ba401c29d469fdcdc7b367b1 (diff) |
Core/PacketIO: Updated and enabled CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE and updated structure of movement packet sent in CMSG_CAST_(PET_)SPELL
Diffstat (limited to 'src/server/game/Handlers/VehicleHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/VehicleHandler.cpp | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/src/server/game/Handlers/VehicleHandler.cpp b/src/server/game/Handlers/VehicleHandler.cpp index ff277f2607b..f16e708d4c1 100644 --- a/src/server/game/Handlers/VehicleHandler.cpp +++ b/src/server/game/Handlers/VehicleHandler.cpp @@ -22,6 +22,7 @@ #include "Player.h" #include "Log.h" #include "ObjectAccessor.h" +#include "MovementStructures.h" void WorldSession::HandleDismissControlledVehicle(WorldPacket &recvData) { @@ -71,22 +72,38 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket& recvData) case CMSG_REQUEST_VEHICLE_NEXT_SEAT: GetPlayer()->ChangeSeat(-1, true); break; - /*case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE: + case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE: { - uint64 guid; // current vehicle guid - recvData.readPackGUID(guid); - + static MovementStatusElements const accessoryGuid[] = + { + MSEExtraInt8, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte7, + }; + + Movement::ExtraMovementStatusElement extra(accessoryGuid); MovementInfo movementInfo; - ReadMovementInfo(recvData, &movementInfo); + GetPlayer()->ReadMovementInfo(recvData, &movementInfo, &extra); vehicle_base->m_movementInfo = movementInfo; - uint64 accessory; // accessory guid - recvData.readPackGUID(accessory); + uint64 accessory = extra.Data.guid; + int8 seatId = extra.Data.byteData; - int8 seatId; - recvData >> seatId; - - if (vehicle_base->GetGUID() != guid) + if (vehicle_base->GetGUID() != movementInfo.guid) return; if (!accessory) @@ -98,7 +115,7 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket& recvData) vehUnit->HandleSpellClick(GetPlayer(), seatId); } break; - }*/ + } case CMSG_REQUEST_VEHICLE_SWITCH_SEAT: { uint64 guid; // current vehicle guid |