aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/VehicleHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-04-11 01:14:32 +0200
committerShauren <shauren.trinity@gmail.com>2013-04-11 01:14:32 +0200
commitf370c4e4d64dfd220c0f2e1157890315f069f340 (patch)
treec6df4212812e23095e2ced3952d0acb7fa8460c9 /src/server/game/Handlers/VehicleHandler.cpp
parent238f7e92530ab544ba401c29d469fdcdc7b367b1 (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.cpp41
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