From 3821779d24737123a8564fb76f9f6bcb16393698 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 13 Aug 2019 22:00:43 +0200 Subject: [PATCH] Core/Movement: enabled SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED and added movement structure for it. Todo: test for errors --- .../game/Movement/MovementStructures.cpp | 73 +++++++++++++++++++ src/server/game/Server/Protocol/Opcodes.cpp | 2 +- 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/src/server/game/Movement/MovementStructures.cpp b/src/server/game/Movement/MovementStructures.cpp index f990659caa8..67dd9f76ffe 100644 --- a/src/server/game/Movement/MovementStructures.cpp +++ b/src/server/game/Movement/MovementStructures.cpp @@ -5418,6 +5418,77 @@ MovementStatusElements const MoveGravityEnable[] = MSEEnd, }; +MovementStatusElements const MoveUpdateFlightBackSpeed[] = +{ + MSEPositionY, + MSEExtraElement, + MSEPositionX, + MSEPositionZ, + MSEHasGuidByte6, + MSEHasGuidByte4, + MSEHasPitch, + MSEHasGuidByte7, + MSEHasGuidByte1, + MSEHasTransportData, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEOneBit, // has_transport_time + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEHasTransportTime2, + MSEHasTransportGuidByte1, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasTimestamp, + MSEHasMovementFlags, + MSEMovementFlags, + MSEHasGuidByte3, + MSEHasMovementFlags2, + MSEZeroBit, // height_change_failed + MSEHasSplineElevation, + MSEMovementFlags2, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasOrientation, + MSEHasFallDirection, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSEFallHorizontalSpeed, + MSETransportPositionX, + MSETransportTime, + MSETransportOrientation, + MSETransportGuidByte5, + MSETransportPositionZ, + MSETransportVehicleId, + MSETransportGuidByte7, + MSETransportGuidByte1, + MSETransportGuidByte3, + MSETransportGuidByte6, + MSETransportGuidByte0, + MSETransportGuidByte2, + MSETransportPositionY, + MSETransportGuidByte4, + MSEGuidByte1, + MSEGuidByte4, + MSEOrientation, + MSEGuidByte5, + MSETimestamp, + MSESplineElevation, + MSEGuidByte6, + MSEPitch, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte0, + MSEGuidByte7, + MSEEnd +}; + void Movement::ExtraMovementStatusElement::ReadNextElement(ByteBuffer& packet) { MovementStatusElements const element = _elements[_index++]; @@ -5761,6 +5832,8 @@ MovementStatusElements const* GetMovementStatusElementsSequence(Opcodes opcode) return MoveGravityDisable; case SMSG_MOVE_GRAVITY_ENABLE: return MoveGravityEnable; + case SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED: + return MoveUpdateFlightBackSpeed; default: break; } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 8ca147a62bb..a2be15ed7ae 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1088,7 +1088,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_HOVER, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_COLLISION_HEIGHT, STATUS_NEVER); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_SPEED, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_KNOCK_BACK, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_PITCH_RATE, STATUS_UNHANDLED);