mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
Implemented vehicle opcodes that allow seat changing
This commit is contained in:
parent
6b49dfb4aa
commit
a7f0e6a4de
8 changed files with 178 additions and 18 deletions
|
|
@ -103,6 +103,12 @@ void MovementInfo::Read(ByteBuffer& data, uint16 opcode)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (element >= MSEGuid2Bit0 && element <= MSEGuid2Bit7)
|
||||||
|
{
|
||||||
|
guid2[element - MSEGuid2Bit0] = data.ReadBit();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (element >= MSETransportGuidBit0 && element <= MSETransportGuidBit7)
|
if (element >= MSETransportGuidBit0 && element <= MSETransportGuidBit7)
|
||||||
{
|
{
|
||||||
if (hasTransportData)
|
if (hasTransportData)
|
||||||
|
|
@ -117,6 +123,13 @@ void MovementInfo::Read(ByteBuffer& data, uint16 opcode)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (element >= MSEGuid2Byte0 && element <= MSEGuid2Byte7)
|
||||||
|
{
|
||||||
|
if (guid2[element - MSEGuid2Byte0])
|
||||||
|
guid2[element - MSEGuid2Byte0] ^= data.ReadUInt8();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (element >= MSETransportGuidByte0 && element <= MSETransportGuidByte7)
|
if (element >= MSETransportGuidByte0 && element <= MSETransportGuidByte7)
|
||||||
{
|
{
|
||||||
if (hasTransportData && t_guid[element - MSETransportGuidByte0])
|
if (hasTransportData && t_guid[element - MSETransportGuidByte0])
|
||||||
|
|
@ -256,6 +269,9 @@ void MovementInfo::Read(ByteBuffer& data, uint16 opcode)
|
||||||
case MSEMovementCounter:
|
case MSEMovementCounter:
|
||||||
data.read_skip<uint32>();
|
data.read_skip<uint32>();
|
||||||
break;
|
break;
|
||||||
|
case MSEByteParam:
|
||||||
|
data >> byteParam;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
MANGOS_ASSERT(false && "Wrong movement status element");
|
MANGOS_ASSERT(false && "Wrong movement status element");
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -738,7 +738,7 @@ class MovementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MovementInfo() : moveFlags(MOVEFLAG_NONE), moveFlags2(MOVEFLAG2_NONE), time(0),
|
MovementInfo() : moveFlags(MOVEFLAG_NONE), moveFlags2(MOVEFLAG2_NONE), time(0),
|
||||||
t_time(0), t_seat(-1), t_time2(0), s_pitch(0.0f), fallTime(0), splineElevation(0.0f) {}
|
t_time(0), t_seat(-1), t_time2(0), s_pitch(0.0f), fallTime(0), splineElevation(0.0f), byteParam(0) {}
|
||||||
|
|
||||||
// Read/Write methods
|
// Read/Write methods
|
||||||
void Read(ByteBuffer& data, uint16 opcode);
|
void Read(ByteBuffer& data, uint16 opcode);
|
||||||
|
|
@ -776,12 +776,14 @@ class MovementInfo
|
||||||
t_seat = -1;
|
t_seat = -1;
|
||||||
}
|
}
|
||||||
ObjectGuid const& GetGuid() const { return guid; }
|
ObjectGuid const& GetGuid() const { return guid; }
|
||||||
|
ObjectGuid const& GetGuid2() const { return guid2; }
|
||||||
ObjectGuid const& GetTransportGuid() const { return t_guid; }
|
ObjectGuid const& GetTransportGuid() const { return t_guid; }
|
||||||
Position const* GetTransportPos() const { return &t_pos; }
|
Position const* GetTransportPos() const { return &t_pos; }
|
||||||
int8 GetTransportSeat() const { return t_seat; }
|
int8 GetTransportSeat() const { return t_seat; }
|
||||||
uint32 GetTransportTime() const { return t_time; }
|
uint32 GetTransportTime() const { return t_time; }
|
||||||
uint32 GetTransportTime2() const { return t_time2; }
|
uint32 GetTransportTime2() const { return t_time2; }
|
||||||
uint32 GetFallTime() const { return fallTime; }
|
uint32 GetFallTime() const { return fallTime; }
|
||||||
|
int8 GetByteParam() const { return byteParam; }
|
||||||
void ChangeOrientation(float o) { pos.o = o; }
|
void ChangeOrientation(float o) { pos.o = o; }
|
||||||
void ChangePosition(float x, float y, float z, float o) { pos.x = x; pos.y = y; pos.z = z; pos.o = o; }
|
void ChangePosition(float x, float y, float z, float o) { pos.x = x; pos.y = y; pos.z = z; pos.o = o; }
|
||||||
void UpdateTime(uint32 _time) { time = _time; }
|
void UpdateTime(uint32 _time) { time = _time; }
|
||||||
|
|
@ -817,6 +819,7 @@ class MovementInfo
|
||||||
private:
|
private:
|
||||||
// common
|
// common
|
||||||
ObjectGuid guid;
|
ObjectGuid guid;
|
||||||
|
ObjectGuid guid2;
|
||||||
uint32 moveFlags; // see enum MovementFlags
|
uint32 moveFlags; // see enum MovementFlags
|
||||||
uint16 moveFlags2; // see enum MovementFlags2
|
uint16 moveFlags2; // see enum MovementFlags2
|
||||||
uint32 time;
|
uint32 time;
|
||||||
|
|
@ -837,6 +840,7 @@ class MovementInfo
|
||||||
float splineElevation;
|
float splineElevation;
|
||||||
// status info
|
// status info
|
||||||
StatusInfo si;
|
StatusInfo si;
|
||||||
|
int8 byteParam;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline WorldPacket& operator<< (WorldPacket& buf, MovementInfo const& mi)
|
inline WorldPacket& operator<< (WorldPacket& buf, MovementInfo const& mi)
|
||||||
|
|
|
||||||
|
|
@ -1130,7 +1130,7 @@ void InitializeOpcodes()
|
||||||
//OPCODE(CMSG_REFER_A_FRIEND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(CMSG_REFER_A_FRIEND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
//OPCODE(MSG_GM_CHANGE_ARENA_RATING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(MSG_GM_CHANGE_ARENA_RATING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
//OPCODE(CMSG_DECLINE_CHANNEL_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(CMSG_DECLINE_CHANNEL_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
//OPCODE(SMSG_GROUPACTION_THROTTLED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_GROUPACTION_THROTTLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(SMSG_OVERRIDE_LIGHT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_OVERRIDE_LIGHT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(SMSG_TOTEM_CREATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_TOTEM_CREATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(CMSG_TOTEM_DESTROYED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTotemDestroyed );
|
OPCODE(CMSG_TOTEM_DESTROYED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTotemDestroyed );
|
||||||
|
|
@ -1231,10 +1231,10 @@ void InitializeOpcodes()
|
||||||
OPCODE(CMSG_CHAR_CUSTOMIZE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCustomizeOpcode );
|
OPCODE(CMSG_CHAR_CUSTOMIZE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCustomizeOpcode );
|
||||||
OPCODE(SMSG_CHAR_CUSTOMIZE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_CHAR_CUSTOMIZE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(SMSG_PET_RENAMEABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_PET_RENAMEABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::Handle_NULL );
|
OPCODE(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestVehicleExit );
|
||||||
OPCODE(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
OPCODE(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestVehiclePrevSeat );
|
||||||
OPCODE(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
OPCODE(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestVehicleNextSeat );
|
||||||
OPCODE(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::Handle_NULL );
|
OPCODE(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestVehicleSwitchSeat );
|
||||||
OPCODE(CMSG_PET_LEARN_TALENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetLearnTalent );
|
OPCODE(CMSG_PET_LEARN_TALENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetLearnTalent );
|
||||||
//OPCODE(CMSG_PET_UNLEARN_TALENTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(CMSG_PET_UNLEARN_TALENTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
OPCODE(SMSG_SET_PHASE_SHIFT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_SET_PHASE_SHIFT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
|
|
@ -1268,7 +1268,7 @@ void InitializeOpcodes()
|
||||||
OPCODE(SMSG_SERVER_FIRST_ACHIEVEMENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_SERVER_FIRST_ACHIEVEMENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(SMSG_PET_LEARNED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_PET_LEARNED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(SMSG_PET_REMOVED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_PET_REMOVED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
//OPCODE(CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::Handle_NULL );
|
OPCODE(CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle );
|
||||||
OPCODE(CMSG_HEARTH_AND_RESURRECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleHearthandResurrect );
|
OPCODE(CMSG_HEARTH_AND_RESURRECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleHearthandResurrect );
|
||||||
OPCODE(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(SMSG_CRITERIA_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_CRITERIA_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
|
|
@ -1280,9 +1280,9 @@ void InitializeOpcodes()
|
||||||
//OPCODE(CMSG_SET_BREATH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(CMSG_SET_BREATH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
//OPCODE(CMSG_QUERY_VEHICLE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(CMSG_QUERY_VEHICLE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
//OPCODE(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
//OPCODE(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
//OPCODE(SMSG_SET_VEHICLE_REC_ID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_SET_VEHICLE_REC_ID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
//OPCODE(CMSG_RIDE_VEHICLE_INTERACT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleRideVehicleInteract );
|
OPCODE(CMSG_RIDE_VEHICLE_INTERACT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRideVehicleInteract );
|
||||||
//OPCODE(CMSG_CONTROLLER_EJECT_PASSENGER, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleEjectPassenger );
|
OPCODE(CMSG_CONTROLLER_EJECT_PASSENGER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEjectPassenger );
|
||||||
OPCODE(SMSG_PET_GUIDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_PET_GUIDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(SMSG_CLIENTCACHE_VERSION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_CLIENTCACHE_VERSION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
//OPCODE(CMSG_CHANGE_GDF_ARENA_RATING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(CMSG_CHANGE_GDF_ARENA_RATING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
|
|
|
||||||
|
|
@ -1263,9 +1263,9 @@ enum Opcodes
|
||||||
CMSG_SET_BREATH = 0x0000,
|
CMSG_SET_BREATH = 0x0000,
|
||||||
CMSG_QUERY_VEHICLE_STATUS = 0x0000,
|
CMSG_QUERY_VEHICLE_STATUS = 0x0000,
|
||||||
SMSG_BATTLEGROUND_INFO_THROTTLED = 0x0000,
|
SMSG_BATTLEGROUND_INFO_THROTTLED = 0x0000,
|
||||||
SMSG_SET_VEHICLE_REC_ID = 0x0000,
|
SMSG_SET_VEHICLE_REC_ID = 0x4115, // 4.3.4 15595
|
||||||
CMSG_RIDE_VEHICLE_INTERACT = 0x0000,
|
CMSG_RIDE_VEHICLE_INTERACT = 0x2705, // 4.3.4 15595
|
||||||
CMSG_CONTROLLER_EJECT_PASSENGER = 0x0000,
|
CMSG_CONTROLLER_EJECT_PASSENGER = 0x6927, // 4.3.4 15595
|
||||||
SMSG_PET_GUIDS = 0x2D26, // 4.3.4 15595
|
SMSG_PET_GUIDS = 0x2D26, // 4.3.4 15595
|
||||||
SMSG_CLIENTCACHE_VERSION = 0x2734, // 4.3.4 15595
|
SMSG_CLIENTCACHE_VERSION = 0x2734, // 4.3.4 15595
|
||||||
CMSG_CHANGE_GDF_ARENA_RATING = 0x0000,
|
CMSG_CHANGE_GDF_ARENA_RATING = 0x0000,
|
||||||
|
|
|
||||||
|
|
@ -531,6 +531,8 @@ class WorldSession
|
||||||
void HandleRequestVehicleExit(WorldPacket& recvPacket);
|
void HandleRequestVehicleExit(WorldPacket& recvPacket);
|
||||||
void HandleRequestVehicleSwitchSeat(WorldPacket& recvPacket);
|
void HandleRequestVehicleSwitchSeat(WorldPacket& recvPacket);
|
||||||
void HandleChangeSeatsOnControlledVehicle(WorldPacket& recvPacket);
|
void HandleChangeSeatsOnControlledVehicle(WorldPacket& recvPacket);
|
||||||
|
void HandleRequestVehiclePrevSeat(WorldPacket& recv_data);
|
||||||
|
void HandleRequestVehicleNextSeat(WorldPacket& recv_data);
|
||||||
void HandleRideVehicleInteract(WorldPacket& recvPacket);
|
void HandleRideVehicleInteract(WorldPacket& recvPacket);
|
||||||
void HandleEjectPassenger(WorldPacket& recvPacket);
|
void HandleEjectPassenger(WorldPacket& recvPacket);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -441,6 +441,11 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket& recv_data)
|
||||||
_player->GetMover()->GetGuidStr().c_str(), guid.GetString().c_str());
|
_player->GetMover()->GetGuidStr().c_str(), guid.GetString().c_str());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Unit* mover = ObjectAccessor::GetUnit(*GetPlayer(), guid))
|
||||||
|
_player->SetMover(mover);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket& recv_data)
|
void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket& recv_data)
|
||||||
|
|
|
||||||
|
|
@ -96,15 +96,13 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket& recvPacket)
|
||||||
DEBUG_LOG("WORLD: Received opcode CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE");
|
DEBUG_LOG("WORLD: Received opcode CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE");
|
||||||
recvPacket.hexlike();
|
recvPacket.hexlike();
|
||||||
|
|
||||||
ObjectGuid srcVehicleGuid;
|
|
||||||
MovementInfo movementInfo;
|
MovementInfo movementInfo;
|
||||||
ObjectGuid destVehicleGuid;
|
|
||||||
uint8 seat;
|
uint8 seat;
|
||||||
|
|
||||||
recvPacket >> srcVehicleGuid.ReadAsPacked();
|
|
||||||
recvPacket >> movementInfo; // Not used at the moment
|
recvPacket >> movementInfo; // Not used at the moment
|
||||||
recvPacket >> destVehicleGuid.ReadAsPacked();
|
ObjectGuid srcVehicleGuid = movementInfo.GetGuid();
|
||||||
recvPacket >> seat;
|
ObjectGuid destVehicleGuid = movementInfo.GetGuid2();
|
||||||
|
uint8 seat = movementInfo.GetByteParam();
|
||||||
|
|
||||||
TransportInfo* transportInfo = _player->GetTransportInfo();
|
TransportInfo* transportInfo = _player->GetTransportInfo();
|
||||||
if (!transportInfo || !transportInfo->IsOnVehicle())
|
if (!transportInfo || !transportInfo->IsOnVehicle())
|
||||||
|
|
@ -175,3 +173,17 @@ void WorldSession::HandleEjectPassenger(WorldPacket& recvPacket)
|
||||||
|
|
||||||
_player->RemoveSpellsCausingAura(SPELL_AURA_CONTROL_VEHICLE, passengerGuid);
|
_player->RemoveSpellsCausingAura(SPELL_AURA_CONTROL_VEHICLE, passengerGuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WorldSession::HandleRequestVehiclePrevSeat(WorldPacket& recv_data)
|
||||||
|
{
|
||||||
|
DEBUG_LOG("WORLD: Received CMSG_REQUEST_VEHICLE_PREV_SEAT");
|
||||||
|
|
||||||
|
// ToDo
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldSession::HandleRequestVehicleNextSeat(WorldPacket& recv_data)
|
||||||
|
{
|
||||||
|
DEBUG_LOG("WORLD: Received CMSG_REQUEST_VEHICLE_NEXT_SEAT");
|
||||||
|
|
||||||
|
// ToDo
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,14 @@ enum MovementStatusElements
|
||||||
MSEGuidBit5,
|
MSEGuidBit5,
|
||||||
MSEGuidBit6,
|
MSEGuidBit6,
|
||||||
MSEGuidBit7,
|
MSEGuidBit7,
|
||||||
|
MSEGuid2Bit0,
|
||||||
|
MSEGuid2Bit1,
|
||||||
|
MSEGuid2Bit2,
|
||||||
|
MSEGuid2Bit3,
|
||||||
|
MSEGuid2Bit4,
|
||||||
|
MSEGuid2Bit5,
|
||||||
|
MSEGuid2Bit6,
|
||||||
|
MSEGuid2Bit7,
|
||||||
MSEHasUnknownBit,
|
MSEHasUnknownBit,
|
||||||
MSEHasMovementFlags,
|
MSEHasMovementFlags,
|
||||||
MSEHasMovementFlags2,
|
MSEHasMovementFlags2,
|
||||||
|
|
@ -68,6 +76,14 @@ enum MovementStatusElements
|
||||||
MSEGuidByte5,
|
MSEGuidByte5,
|
||||||
MSEGuidByte6,
|
MSEGuidByte6,
|
||||||
MSEGuidByte7,
|
MSEGuidByte7,
|
||||||
|
MSEGuid2Byte0,
|
||||||
|
MSEGuid2Byte1,
|
||||||
|
MSEGuid2Byte2,
|
||||||
|
MSEGuid2Byte3,
|
||||||
|
MSEGuid2Byte4,
|
||||||
|
MSEGuid2Byte5,
|
||||||
|
MSEGuid2Byte6,
|
||||||
|
MSEGuid2Byte7,
|
||||||
MSEPitch,
|
MSEPitch,
|
||||||
MSEFallTime,
|
MSEFallTime,
|
||||||
MSETransportGuidByte0,
|
MSETransportGuidByte0,
|
||||||
|
|
@ -92,10 +108,113 @@ enum MovementStatusElements
|
||||||
MSETransportTime2,
|
MSETransportTime2,
|
||||||
MSETransportTime3,
|
MSETransportTime3,
|
||||||
MSEMovementCounter,
|
MSEMovementCounter,
|
||||||
|
MSEByteParam,
|
||||||
MSEEnd,
|
MSEEnd,
|
||||||
MSE_COUNT
|
MSE_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
MovementStatusElements ChangeSeatsOnControlledVehicleSequence[] =
|
||||||
|
{
|
||||||
|
MSEPositionY,
|
||||||
|
MSEPositionX,
|
||||||
|
MSEPositionZ,
|
||||||
|
MSEByteParam,
|
||||||
|
|
||||||
|
MSEHasMovementFlags,
|
||||||
|
MSEHasTransportData,
|
||||||
|
MSEGuidBit2,
|
||||||
|
MSEGuidBit6,
|
||||||
|
MSEGuidBit4,
|
||||||
|
MSEGuid2Bit2,
|
||||||
|
MSEGuid2Bit4,
|
||||||
|
MSEHasOrientation,
|
||||||
|
|
||||||
|
MSEHasUnknownBit,
|
||||||
|
MSEGuid2Bit7,
|
||||||
|
MSEGuidBit7,
|
||||||
|
MSEGuid2Bit6,
|
||||||
|
MSEHasTimestamp,
|
||||||
|
MSEHasSplineElevation,
|
||||||
|
MSEGuidBit5,
|
||||||
|
MSEGuid2Bit5,
|
||||||
|
|
||||||
|
MSEHasMovementFlags2,
|
||||||
|
MSEHasPitch,
|
||||||
|
MSEGuid2Bit0,
|
||||||
|
MSEGuidBit0,
|
||||||
|
MSEGuid2Bit1,
|
||||||
|
MSEHasFallData,
|
||||||
|
MSEGuidBit1,
|
||||||
|
MSEHasSpline,
|
||||||
|
|
||||||
|
MSEFlags,
|
||||||
|
MSEGuid2Bit3,
|
||||||
|
MSEGuidBit3,
|
||||||
|
|
||||||
|
MSETransportGuidBit3,
|
||||||
|
MSETransportGuidBit0,
|
||||||
|
MSETransportGuidBit7,
|
||||||
|
MSETransportGuidBit5,
|
||||||
|
MSEHasTransportTime3,
|
||||||
|
MSETransportGuidBit1,
|
||||||
|
|
||||||
|
MSETransportGuidBit2,
|
||||||
|
MSEHasTransportTime2,
|
||||||
|
MSETransportGuidBit4,
|
||||||
|
MSETransportGuidBit6,
|
||||||
|
MSEFlags2,
|
||||||
|
|
||||||
|
MSEHasFallDirection,
|
||||||
|
|
||||||
|
MSEGuid2Byte6,
|
||||||
|
MSEGuidByte7,
|
||||||
|
MSEGuidByte5,
|
||||||
|
MSEGuid2Byte1,
|
||||||
|
MSEGuid2Byte2,
|
||||||
|
MSEGuidByte6,
|
||||||
|
MSEGuid2Byte5,
|
||||||
|
MSEGuid2Byte3,
|
||||||
|
MSEGuidByte3,
|
||||||
|
MSEGuid2Byte0,
|
||||||
|
MSEGuidByte0,
|
||||||
|
MSEGuid2Byte4,
|
||||||
|
MSEGuidByte4,
|
||||||
|
MSEGuidByte1,
|
||||||
|
MSEGuid2Byte7,
|
||||||
|
MSEGuidByte2,
|
||||||
|
|
||||||
|
MSEPitch,
|
||||||
|
MSEFallSinAngle,
|
||||||
|
MSEFallCosAngle,
|
||||||
|
MSEFallHorizontalSpeed,
|
||||||
|
|
||||||
|
MSEFallTime,
|
||||||
|
MSEFallVerticalSpeed,
|
||||||
|
|
||||||
|
MSETransportGuidByte2,
|
||||||
|
MSETransportTime2,
|
||||||
|
MSETransportTime3,
|
||||||
|
MSETransportGuidByte0,
|
||||||
|
MSETransportTime,
|
||||||
|
MSETransportSeat,
|
||||||
|
MSETransportPositionX,
|
||||||
|
MSETransportPositionO,
|
||||||
|
MSETransportGuidByte7,
|
||||||
|
MSETransportGuidByte4,
|
||||||
|
MSETransportGuidByte3,
|
||||||
|
MSETransportGuidByte5,
|
||||||
|
MSETransportPositionZ,
|
||||||
|
MSETransportGuidByte1,
|
||||||
|
MSETransportGuidByte6,
|
||||||
|
MSETransportPositionY,
|
||||||
|
|
||||||
|
MSESplineElevation,
|
||||||
|
MSEPositionO,
|
||||||
|
MSETimestamp,
|
||||||
|
|
||||||
|
MSEEnd,
|
||||||
|
};
|
||||||
|
|
||||||
MovementStatusElements PlayerMoveSequence[] =
|
MovementStatusElements PlayerMoveSequence[] =
|
||||||
{
|
{
|
||||||
MSEHasFallData,
|
MSEHasFallData,
|
||||||
|
|
@ -2632,6 +2751,8 @@ MovementStatusElements* GetMovementStatusElementsSequence(uint16 opcode)
|
||||||
return MoveNotActiveMoverSequence;
|
return MoveNotActiveMoverSequence;
|
||||||
case CMSG_DISMISS_CONTROLLED_VEHICLE:
|
case CMSG_DISMISS_CONTROLLED_VEHICLE:
|
||||||
return DismissControlledVehicleSequence;
|
return DismissControlledVehicleSequence;
|
||||||
|
case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE:
|
||||||
|
return ChangeSeatsOnControlledVehicleSequence;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue