mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/PacketIO: Updated and enabled vehicle opcodes
This commit is contained in:
@@ -24,104 +24,106 @@
|
||||
#include "ObjectAccessor.h"
|
||||
#include "VehiclePackets.h"
|
||||
|
||||
void WorldSession::HandleDismissControlledVehicle(WorldPacket &recvData)
|
||||
void WorldSession::HandleMoveDismissVehicle(WorldPackets::Vehicle::MoveDismissVehicle& moveDismissVehicle)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: Recvd CMSG_MOVE_DISMISS_VEHICLE");
|
||||
|
||||
ObjectGuid vehicleGUID = _player->GetCharmGUID();
|
||||
|
||||
if (!vehicleGUID) // something wrong here...
|
||||
{
|
||||
recvData.rfinish(); // prevent warnings spam
|
||||
if (vehicleGUID.IsEmpty())
|
||||
return;
|
||||
}
|
||||
|
||||
MovementInfo mi;
|
||||
_player->ValidateMovementInfo(&mi);
|
||||
|
||||
_player->m_movementInfo = mi;
|
||||
_player->ValidateMovementInfo(&moveDismissVehicle.Status);
|
||||
_player->m_movementInfo = moveDismissVehicle.Status;
|
||||
|
||||
_player->ExitVehicle();
|
||||
}
|
||||
|
||||
void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket& recvData)
|
||||
void WorldSession::HandleRequestVehiclePrevSeat(WorldPackets::Vehicle::RequestVehiclePrevSeat& /*requestVehiclePrevSeat*/)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: Recvd CMSG_MOVE_CHANGE_VEHICLE_SEATS");
|
||||
|
||||
Unit* vehicle_base = GetPlayer()->GetVehicleBase();
|
||||
if (!vehicle_base)
|
||||
{
|
||||
recvData.rfinish(); // prevent warnings spam
|
||||
return;
|
||||
}
|
||||
|
||||
VehicleSeatEntry const* seat = GetPlayer()->GetVehicle()->GetSeatForPassenger(GetPlayer());
|
||||
if (!seat->CanSwitchFromSeat())
|
||||
{
|
||||
recvData.rfinish(); // prevent warnings spam
|
||||
TC_LOG_ERROR("network", "HandleChangeSeatsOnControlledVehicle, Opcode: %u, %s tried to switch seats but current seatflags %u don't permit that.",
|
||||
recvData.GetOpcode(), GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
|
||||
TC_LOG_ERROR("network", "HandleRequestVehiclePrevSeat: %s tried to switch seats but current seatflags %u don't permit that.",
|
||||
GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (recvData.GetOpcode())
|
||||
{
|
||||
case CMSG_REQUEST_VEHICLE_PREV_SEAT:
|
||||
GetPlayer()->ChangeSeat(-1, false);
|
||||
break;
|
||||
case CMSG_REQUEST_VEHICLE_NEXT_SEAT:
|
||||
GetPlayer()->ChangeSeat(-1, true);
|
||||
break;
|
||||
case CMSG_MOVE_CHANGE_VEHICLE_SEATS:
|
||||
{
|
||||
MovementInfo movementInfo;
|
||||
GetPlayer()->ValidateMovementInfo(&movementInfo);
|
||||
vehicle_base->m_movementInfo = movementInfo;
|
||||
|
||||
ObjectGuid accessory; // = extra.Data.guid;
|
||||
int8 seatId = -1;//extra.Data.byteData;
|
||||
|
||||
if (vehicle_base->GetGUID() != movementInfo.guid)
|
||||
return;
|
||||
|
||||
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))
|
||||
vehUnit->HandleSpellClick(GetPlayer(), seatId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CMSG_REQUEST_VEHICLE_SWITCH_SEAT:
|
||||
{
|
||||
ObjectGuid guid; // current vehicle guid
|
||||
recvData >> guid.ReadAsPacked();
|
||||
|
||||
int8 seatId;
|
||||
recvData >> seatId;
|
||||
|
||||
if (vehicle_base->GetGUID() == guid)
|
||||
GetPlayer()->ChangeSeat(seatId);
|
||||
else if (Unit* vehUnit = ObjectAccessor::GetUnit(*GetPlayer(), guid))
|
||||
if (Vehicle* vehicle = vehUnit->GetVehicleKit())
|
||||
if (vehicle->HasEmptySeat(seatId))
|
||||
vehUnit->HandleSpellClick(GetPlayer(), seatId);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
GetPlayer()->ChangeSeat(-1, false);
|
||||
}
|
||||
|
||||
void WorldSession::HandleEnterPlayerVehicle(WorldPacket& data)
|
||||
void WorldSession::HandleRequestVehicleNextSeat(WorldPackets::Vehicle::RequestVehicleNextSeat& /*requestVehicleNextSeat*/)
|
||||
{
|
||||
// Read guid
|
||||
ObjectGuid guid;
|
||||
data >> guid;
|
||||
Unit* vehicle_base = GetPlayer()->GetVehicleBase();
|
||||
if (!vehicle_base)
|
||||
return;
|
||||
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
VehicleSeatEntry const* seat = GetPlayer()->GetVehicle()->GetSeatForPassenger(GetPlayer());
|
||||
if (!seat->CanSwitchFromSeat())
|
||||
{
|
||||
TC_LOG_ERROR("network", "HandleRequestVehicleNextSeat: %s tried to switch seats but current seatflags %u don't permit that.",
|
||||
GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
|
||||
return;
|
||||
}
|
||||
|
||||
GetPlayer()->ChangeSeat(-1, true);
|
||||
}
|
||||
|
||||
void WorldSession::HandleMoveChangeVehicleSeats(WorldPackets::Vehicle::MoveChangeVehicleSeats& moveChangeVehicleSeats)
|
||||
{
|
||||
Unit* vehicle_base = GetPlayer()->GetVehicleBase();
|
||||
if (!vehicle_base)
|
||||
return;
|
||||
|
||||
VehicleSeatEntry const* seat = GetPlayer()->GetVehicle()->GetSeatForPassenger(GetPlayer());
|
||||
if (!seat->CanSwitchFromSeat())
|
||||
{
|
||||
TC_LOG_ERROR("network", "HandleMoveChangeVehicleSeats: %s tried to switch seats but current seatflags %u don't permit that.",
|
||||
GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
|
||||
return;
|
||||
}
|
||||
|
||||
GetPlayer()->ValidateMovementInfo(&moveChangeVehicleSeats.Status);
|
||||
|
||||
if (vehicle_base->GetGUID() != moveChangeVehicleSeats.Status.guid)
|
||||
return;
|
||||
|
||||
vehicle_base->m_movementInfo = moveChangeVehicleSeats.Status;
|
||||
|
||||
if (moveChangeVehicleSeats.DstVehicle.IsEmpty())
|
||||
GetPlayer()->ChangeSeat(-1, moveChangeVehicleSeats.DstSeatIndex != 255);
|
||||
else if (Unit* vehUnit = ObjectAccessor::GetUnit(*GetPlayer(), moveChangeVehicleSeats.DstVehicle))
|
||||
if (Vehicle* vehicle = vehUnit->GetVehicleKit())
|
||||
if (vehicle->HasEmptySeat(moveChangeVehicleSeats.DstSeatIndex))
|
||||
vehUnit->HandleSpellClick(GetPlayer(), int8(moveChangeVehicleSeats.DstSeatIndex));
|
||||
}
|
||||
|
||||
void WorldSession::HandleRequestVehicleSwitchSeat(WorldPackets::Vehicle::RequestVehicleSwitchSeat& requestVehicleSwitchSeat)
|
||||
{
|
||||
Unit* vehicle_base = GetPlayer()->GetVehicleBase();
|
||||
if (!vehicle_base)
|
||||
return;
|
||||
|
||||
VehicleSeatEntry const* seat = GetPlayer()->GetVehicle()->GetSeatForPassenger(GetPlayer());
|
||||
if (!seat->CanSwitchFromSeat())
|
||||
{
|
||||
TC_LOG_ERROR("network", "HandleRequestVehicleSwitchSeat: %s tried to switch seats but current seatflags %u don't permit that.",
|
||||
GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
|
||||
return;
|
||||
}
|
||||
|
||||
if (vehicle_base->GetGUID() == requestVehicleSwitchSeat.Vehicle)
|
||||
GetPlayer()->ChangeSeat(int8(requestVehicleSwitchSeat.SeatIndex));
|
||||
else if (Unit* vehUnit = ObjectAccessor::GetUnit(*GetPlayer(), requestVehicleSwitchSeat.Vehicle))
|
||||
if (Vehicle* vehicle = vehUnit->GetVehicleKit())
|
||||
if (vehicle->HasEmptySeat(int8(requestVehicleSwitchSeat.SeatIndex)))
|
||||
vehUnit->HandleSpellClick(GetPlayer(), int8(requestVehicleSwitchSeat.SeatIndex));
|
||||
}
|
||||
|
||||
void WorldSession::HandleRideVehicleInteract(WorldPackets::Vehicle::RideVehicleInteract& rideVehicleInteract)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(rideVehicleInteract.Vehicle))
|
||||
{
|
||||
if (!player->GetVehicleKit())
|
||||
return;
|
||||
@@ -134,31 +136,27 @@ void WorldSession::HandleEnterPlayerVehicle(WorldPacket& data)
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::HandleEjectPassenger(WorldPacket& data)
|
||||
void WorldSession::HandleEjectPassenger(WorldPackets::Vehicle::EjectPassenger& ejectPassenger)
|
||||
{
|
||||
Vehicle* vehicle = _player->GetVehicleKit();
|
||||
if (!vehicle)
|
||||
{
|
||||
data.rfinish(); // prevent warnings spam
|
||||
TC_LOG_ERROR("network", "HandleEjectPassenger: %s is not in a vehicle!", GetPlayer()->GetGUID().ToString().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
ObjectGuid guid;
|
||||
data >> guid;
|
||||
|
||||
if (guid.IsUnit())
|
||||
if (ejectPassenger.Passenger.IsUnit())
|
||||
{
|
||||
Unit* unit = ObjectAccessor::GetUnit(*_player, guid);
|
||||
Unit* unit = ObjectAccessor::GetUnit(*_player, ejectPassenger.Passenger);
|
||||
if (!unit) // creatures can be ejected too from player mounts
|
||||
{
|
||||
TC_LOG_ERROR("network", "%s tried to eject %s from vehicle, but the latter was not found in world!", GetPlayer()->GetGUID().ToString().c_str(), guid.ToString().c_str());
|
||||
TC_LOG_ERROR("network", "%s tried to eject %s from vehicle, but the latter was not found in world!", GetPlayer()->GetGUID().ToString().c_str(), ejectPassenger.Passenger.ToString().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
if (!unit->IsOnVehicle(vehicle->GetBase()))
|
||||
{
|
||||
TC_LOG_ERROR("network", "%s tried to eject %s, but they are not in the same vehicle", GetPlayer()->GetGUID().ToString().c_str(), guid.ToString().c_str());
|
||||
TC_LOG_ERROR("network", "%s tried to eject %s, but they are not in the same vehicle", GetPlayer()->GetGUID().ToString().c_str(), ejectPassenger.Passenger.ToString().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -167,16 +165,14 @@ void WorldSession::HandleEjectPassenger(WorldPacket& data)
|
||||
if (seat->IsEjectable())
|
||||
unit->ExitVehicle();
|
||||
else
|
||||
TC_LOG_ERROR("network", "%s attempted to eject %s from non-ejectable seat.", GetPlayer()->GetGUID().ToString().c_str(), guid.ToString().c_str());
|
||||
TC_LOG_ERROR("network", "%s attempted to eject %s from non-ejectable seat.", GetPlayer()->GetGUID().ToString().c_str(), ejectPassenger.Passenger.ToString().c_str());
|
||||
}
|
||||
else
|
||||
TC_LOG_ERROR("network", "HandleEjectPassenger: %s tried to eject invalid %s ", GetPlayer()->GetGUID().ToString().c_str(), guid.ToString().c_str());
|
||||
TC_LOG_ERROR("network", "HandleEjectPassenger: %s tried to eject invalid %s ", GetPlayer()->GetGUID().ToString().c_str(), ejectPassenger.Passenger.ToString().c_str());
|
||||
}
|
||||
|
||||
void WorldSession::HandleRequestVehicleExit(WorldPacket& /*recvData*/)
|
||||
void WorldSession::HandleRequestVehicleExit(WorldPackets::Vehicle::RequestVehicleExit& /*requestVehicleExit*/)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: Recvd CMSG_REQUEST_VEHICLE_EXIT");
|
||||
|
||||
if (Vehicle* vehicle = GetPlayer()->GetVehicle())
|
||||
{
|
||||
if (VehicleSeatEntry const* seat = vehicle->GetSeatForPassenger(GetPlayer()))
|
||||
|
||||
@@ -39,3 +39,31 @@ WorldPacket const* WorldPackets::Vehicle::SetVehicleRecID::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Vehicle::MoveDismissVehicle::Read()
|
||||
{
|
||||
_worldPacket >> Status;
|
||||
}
|
||||
|
||||
void WorldPackets::Vehicle::MoveChangeVehicleSeats::Read()
|
||||
{
|
||||
_worldPacket >> Status;
|
||||
_worldPacket >> DstVehicle;
|
||||
_worldPacket >> DstSeatIndex;
|
||||
}
|
||||
|
||||
void WorldPackets::Vehicle::RequestVehicleSwitchSeat::Read()
|
||||
{
|
||||
_worldPacket >> Vehicle;
|
||||
_worldPacket >> SeatIndex;
|
||||
}
|
||||
|
||||
void WorldPackets::Vehicle::RideVehicleInteract::Read()
|
||||
{
|
||||
_worldPacket >> Vehicle;
|
||||
}
|
||||
|
||||
void WorldPackets::Vehicle::EjectPassenger::Read()
|
||||
{
|
||||
_worldPacket >> Passenger;
|
||||
}
|
||||
|
||||
@@ -25,11 +25,10 @@ namespace WorldPackets
|
||||
{
|
||||
namespace Vehicle
|
||||
{
|
||||
|
||||
class MoveSetVehicleRecID final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
MoveSetVehicleRecID() : ServerPacket(SMSG_MOVE_SET_VEHICLE_REC_ID) { }
|
||||
MoveSetVehicleRecID() : ServerPacket(SMSG_MOVE_SET_VEHICLE_REC_ID, 16 + 4 + 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
@@ -52,7 +51,7 @@ namespace WorldPackets
|
||||
class SetVehicleRecID final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
SetVehicleRecID() : ServerPacket(SMSG_SET_VEHICLE_REC_ID) { }
|
||||
SetVehicleRecID() : ServerPacket(SMSG_SET_VEHICLE_REC_ID, 16 + 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
@@ -67,6 +66,83 @@ namespace WorldPackets
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
|
||||
class MoveDismissVehicle final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
MoveDismissVehicle(WorldPacket&& packet) : ClientPacket(CMSG_MOVE_DISMISS_VEHICLE, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
MovementInfo Status;
|
||||
};
|
||||
|
||||
class RequestVehiclePrevSeat final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RequestVehiclePrevSeat(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_VEHICLE_PREV_SEAT, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class RequestVehicleNextSeat final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RequestVehicleNextSeat(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_VEHICLE_NEXT_SEAT, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class MoveChangeVehicleSeats final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
MoveChangeVehicleSeats(WorldPacket&& packet) : ClientPacket(CMSG_MOVE_CHANGE_VEHICLE_SEATS, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid DstVehicle;
|
||||
MovementInfo Status;
|
||||
uint8 DstSeatIndex = 255;
|
||||
};
|
||||
|
||||
class RequestVehicleSwitchSeat final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RequestVehicleSwitchSeat(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Vehicle;
|
||||
uint8 SeatIndex = 255;
|
||||
};
|
||||
|
||||
class RideVehicleInteract final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RideVehicleInteract(WorldPacket&& packet) : ClientPacket(CMSG_RIDE_VEHICLE_INTERACT, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Vehicle;
|
||||
};
|
||||
|
||||
class EjectPassenger final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
EjectPassenger(WorldPacket&& packet) : ClientPacket(CMSG_EJECT_PASSENGER, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Passenger;
|
||||
};
|
||||
|
||||
class RequestVehicleExit final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RequestVehicleExit(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_VEHICLE_EXIT, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -352,7 +352,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_DO_MASTER_LOOT_ROLL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_DO_READY_CHECK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckOpcode );
|
||||
DEFINE_HANDLER(CMSG_DUEL_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Duel::DuelResponse, &WorldSession::HandleDuelResponseOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_EJECT_PASSENGER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_EJECT_PASSENGER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::EjectPassenger, &WorldSession::HandleEjectPassenger);
|
||||
DEFINE_HANDLER(CMSG_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::EmoteClient, &WorldSession::HandleEmoteOpcode);
|
||||
DEFINE_HANDLER(CMSG_ENABLE_NAGLE, STATUS_NEVER, PROCESS_INPLACE, WorldPacket, &WorldSession::Handle_EarlyProccess);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_ENABLE_TAXI_NODE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleTaxiQueryAvailableNodes );
|
||||
@@ -513,9 +513,9 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOUNT_SPECIAL_ANIM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMountSpecialAnimOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_MOVE_CHANGE_TRANSPORT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_CHANGE_VEHICLE_SEATS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
|
||||
DEFINE_HANDLER(CMSG_MOVE_CHANGE_VEHICLE_SEATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::MoveChangeVehicleSeats, &WorldSession::HandleMoveChangeVehicleSeats);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_CHARM_TELEPORT_CHEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_DISMISS_VEHICLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDismissControlledVehicle );
|
||||
DEFINE_HANDLER(CMSG_MOVE_DISMISS_VEHICLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::MoveDismissVehicle, &WorldSession::HandleMoveDismissVehicle);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_MOVE_FALL_LAND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
DEFINE_HANDLER(CMSG_MOVE_FALL_RESET, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes);
|
||||
@@ -678,16 +678,16 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_RATED_BATTLEFIELD_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestRatedBattlefieldInfo);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_RESEARCH_HISTORY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_STABLED_PETS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_VEHICLE_EXIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestVehicleExit );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RequestVehicleExit, &WorldSession::HandleRequestVehicleExit);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RequestVehicleNextSeat, &WorldSession::HandleRequestVehicleNextSeat);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RequestVehiclePrevSeat, &WorldSession::HandleRequestVehiclePrevSeat);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RequestVehicleSwitchSeat, &WorldSession::HandleRequestVehicleSwitchSeat);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_WOW_TOKEN_MARKET_PRICE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_RESET_CHALLENGE_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_RESET_INSTANCES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleResetInstancesOpcode );
|
||||
DEFINE_HANDLER(CMSG_RESURRECT_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::ResurrectResponse, &WorldSession::HandleResurrectResponse);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REVERT_MONUMENT_APPEARANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_RIDE_VEHICLE_INTERACT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleEnterPlayerVehicle );
|
||||
DEFINE_HANDLER(CMSG_RIDE_VEHICLE_INTERACT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RideVehicleInteract, &WorldSession::HandleRideVehicleInteract);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles );
|
||||
DEFINE_HANDLER(CMSG_SAVE_EQUIPMENT_SET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::EquipmentSet::SaveEquipmentSet, &WorldSession::HandleEquipmentSetSave);
|
||||
DEFINE_HANDLER(CMSG_SAVE_GUILD_EMBLEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Guild::SaveGuildEmblem, &WorldSession::HandleSaveGuildEmblem);
|
||||
|
||||
@@ -416,6 +416,14 @@ namespace WorldPackets
|
||||
|
||||
namespace Vehicle
|
||||
{
|
||||
class MoveDismissVehicle;
|
||||
class RequestVehiclePrevSeat;
|
||||
class RequestVehicleNextSeat;
|
||||
class MoveChangeVehicleSeats;
|
||||
class RequestVehicleSwitchSeat;
|
||||
class RideVehicleInteract;
|
||||
class EjectPassenger;
|
||||
class RequestVehicleExit;
|
||||
class MoveSetVehicleRecIdAck;
|
||||
}
|
||||
|
||||
@@ -945,10 +953,15 @@ class WorldSession
|
||||
|
||||
void HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMovement& packet);
|
||||
void HandleSetActiveMoverOpcode(WorldPackets::Movement::SetActiveMover& packet);
|
||||
void HandleDismissControlledVehicle(WorldPacket& recvData);
|
||||
void HandleRequestVehicleExit(WorldPacket& recvData);
|
||||
void HandleMoveDismissVehicle(WorldPackets::Vehicle::MoveDismissVehicle& moveDismissVehicle);
|
||||
void HandleRequestVehiclePrevSeat(WorldPackets::Vehicle::RequestVehiclePrevSeat& requestVehiclePrevSeat);
|
||||
void HandleRequestVehicleNextSeat(WorldPackets::Vehicle::RequestVehicleNextSeat& requestVehicleNextSeat);
|
||||
void HandleMoveChangeVehicleSeats(WorldPackets::Vehicle::MoveChangeVehicleSeats& moveChangeVehicleSeats);
|
||||
void HandleRequestVehicleSwitchSeat(WorldPackets::Vehicle::RequestVehicleSwitchSeat& requestVehicleSwitchSeat);
|
||||
void HandleRideVehicleInteract(WorldPackets::Vehicle::RideVehicleInteract& rideVehicleInteract);
|
||||
void HandleEjectPassenger(WorldPackets::Vehicle::EjectPassenger& ejectPassenger);
|
||||
void HandleRequestVehicleExit(WorldPackets::Vehicle::RequestVehicleExit& requestVehicleExit);
|
||||
void HandleMoveSetVehicleRecAck(WorldPackets::Vehicle::MoveSetVehicleRecIdAck& setVehicleRecIdAck);
|
||||
void HandleChangeSeatsOnControlledVehicle(WorldPacket& recvData);
|
||||
void HandleMoveTimeSkippedOpcode(WorldPacket& recvData);
|
||||
|
||||
void HandleRequestRaidInfoOpcode(WorldPacket& recvData);
|
||||
@@ -1355,8 +1368,6 @@ class WorldSession
|
||||
void HandleUITimeRequest(WorldPackets::Misc::UITimeRequest& /*request*/);
|
||||
void HandleQuestNPCQuery(WorldPacket& recvData);
|
||||
void HandleQuestPOIQuery(WorldPackets::Query::QuestPOIQuery& packet);
|
||||
void HandleEjectPassenger(WorldPacket& data);
|
||||
void HandleEnterPlayerVehicle(WorldPacket& data);
|
||||
void HandleUpdateProjectilePosition(WorldPacket& recvPacket);
|
||||
void HandleUpdateMissileTrajectory(WorldPacket& recvPacket);
|
||||
void HandleViolenceLevel(WorldPackets::Misc::ViolenceLevel& violenceLevel);
|
||||
|
||||
Reference in New Issue
Block a user