From 12a828fdbc01b9fca817829f9da3be2cf8cedf46 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 9 Apr 2013 17:24:39 +0200 Subject: Core/Movement * Implemented a generic way of sending movement packets depending on who controls the unit (player or server controlled) * Added possibility to specify extra elements in movement packets (such as speed, extra passenger guid, collision height and similar) without having to add a special element only for these * Removed Unit::SendMovementFlagUpdate as it was something working only in 3.3.5a and earlier (no serverside HEARTBEAT opcode exists now) --- src/server/game/Movement/MovementStructures.cpp | 5010 +++++++++++++++++++++++ 1 file changed, 5010 insertions(+) create mode 100644 src/server/game/Movement/MovementStructures.cpp (limited to 'src/server/game/Movement/MovementStructures.cpp') diff --git a/src/server/game/Movement/MovementStructures.cpp b/src/server/game/Movement/MovementStructures.cpp new file mode 100644 index 00000000000..d1bc5f20b9f --- /dev/null +++ b/src/server/game/Movement/MovementStructures.cpp @@ -0,0 +1,5010 @@ +/* +* Copyright (C) 2008-2013 TrinityCore +* Copyright (C) 2005-2009 MaNGOS +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at your +* option) any later version. +* +* This program is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +* more details. +* +* You should have received a copy of the GNU General Public License along +* with this program. If not, see . +*/ + +#include "MovementStructures.h" +#include "Player.h" + +//4.3.4 +MovementStatusElements PlayerMoveSequence[] = +{ + MSEHasFallData, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasMovementFlags2, + MSEHasSpline, + MSEHasTimestamp, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEMovementFlags2, + MSEHasGuidByte7, + MSEHasMovementFlags, + MSEHasOrientation, + MSEHasGuidByte2, + MSEHasSplineElevation, + MSEZeroBit, + MSEHasGuidByte4, + MSEHasFallDirection, + MSEHasGuidByte5, + MSEHasTransportData, + MSEMovementFlags, + MSEHasTransportGuidByte3, + MSEHasTransportTime3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte4, + MSEHasTransportTime2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte2, + MSEHasPitch, + MSEGuidByte5, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSESplineElevation, + MSEGuidByte7, + MSEPositionY, + MSEGuidByte3, + MSETransportTime3, + MSETransportGuidByte6, + MSETransportSeat, + MSETransportGuidByte5, + MSETransportPositionX, + MSETransportGuidByte1, + MSETransportOrientation, + MSETransportGuidByte2, + MSETransportTime2, + MSETransportGuidByte0, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETransportGuidByte4, + MSETransportGuidByte3, + MSETransportPositionY, + MSETransportTime, + MSEGuidByte4, + MSEPositionX, + MSEGuidByte6, + MSEPositionZ, + MSETimestamp, + MSEGuidByte2, + MSEPitch, + MSEGuidByte0, + MSEOrientation, + MSEGuidByte1, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementFallLandSequence[] = +{ + MSEPositionX, + MSEPositionY, + MSEPositionZ, + MSEHasTransportData, + MSEHasGuidByte7, + MSEHasGuidByte1, + MSEHasMovementFlags2, + MSEHasGuidByte3, + MSEHasSplineElevation, + MSEHasOrientation, + MSEHasGuidByte6, + MSEHasTimestamp, + MSEZeroBit, + MSEHasPitch, + MSEHasGuidByte4, + MSEHasSpline, + MSEHasGuidByte5, + MSEHasMovementFlags, + MSEHasFallData, + MSEHasGuidByte0, + MSEHasGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportTime2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte7, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte5, + MSETransportTime, + MSETransportPositionZ, + MSETransportPositionY, + MSETransportPositionX, + MSETransportGuidByte5, + MSETransportTime3, + MSETransportGuidByte1, + MSETransportSeat, + MSETransportTime2, + MSETransportGuidByte4, + MSETransportOrientation, + MSETransportGuidByte0, + MSETransportGuidByte7, + MSETransportGuidByte3, + MSETransportGuidByte6, + MSETransportGuidByte2, + MSEFallVerticalSpeed, + MSEFallTime, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSESplineElevation, + MSETimestamp, + MSEPitch, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementHeartBeatSequence[] = +{ + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEHasPitch, + MSEHasTimestamp, + MSEHasFallData, + MSEHasMovementFlags2, + MSEHasTransportData, + MSEHasGuidByte7, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasOrientation, + MSEHasGuidByte5, + MSEHasGuidByte3, + MSEHasSplineElevation, + MSEHasSpline, + MSEZeroBit, + MSEHasGuidByte6, + MSEHasMovementFlags, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte2, + MSEHasTransportTime2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasFallDirection, + MSEMovementFlags, + MSEMovementFlags2, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte2, + MSEGuidByte5, + MSEGuidByte0, + MSEGuidByte4, + MSETransportPositionZ, + MSETransportSeat, + MSETransportOrientation, + MSETransportGuidByte4, + MSETransportPositionY, + MSETransportTime, + MSETransportPositionX, + MSETransportGuidByte5, + MSETransportGuidByte1, + MSETransportGuidByte3, + MSETransportGuidByte7, + MSETransportTime3, + MSETransportTime2, + MSETransportGuidByte2, + MSETransportGuidByte0, + MSETransportGuidByte6, + MSEOrientation, + MSEFallVerticalSpeed, + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEPitch, + MSESplineElevation, + MSETimestamp, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementJumpSequence[] = +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEHasTimestamp, + MSEHasGuidByte5, + MSEHasMovementFlags, + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasMovementFlags2, + MSEHasGuidByte0, + MSEHasTransportData, + MSEHasGuidByte3, + MSEHasPitch, + MSEHasGuidByte7, + MSEHasFallData, + MSEHasSpline, + MSEHasOrientation, + MSEHasGuidByte1, + MSEHasSplineElevation, + MSEZeroBit, + MSEHasGuidByte2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte4, + MSEHasTransportTime3, + MSEHasTransportTime2, + MSEHasTransportGuidByte2, + MSEHasFallDirection, + MSEMovementFlags, + MSEMovementFlags2, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte7, + MSEGuidByte1, + MSETransportGuidByte1, + MSETransportGuidByte7, + MSETransportPositionX, + MSETransportGuidByte4, + MSETransportTime3, + MSETransportGuidByte0, + MSETransportOrientation, + MSETransportTime2, + MSETransportTime, + MSETransportGuidByte6, + MSETransportPositionZ, + MSETransportSeat, + MSETransportPositionY, + MSETransportGuidByte3, + MSETransportGuidByte2, + MSETransportGuidByte5, + MSEPitch, + MSETimestamp, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSEFallTime, + MSESplineElevation, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetFacingSequence[] = +{ + MSEPositionX, + MSEPositionY, + MSEPositionZ, + MSEHasGuidByte6, + MSEHasTransportData, + MSEHasGuidByte4, + MSEHasSpline, + MSEHasGuidByte0, + MSEHasOrientation, + MSEHasTimestamp, + MSEHasPitch, + MSEHasMovementFlags2, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasSplineElevation, + MSEHasMovementFlags, + MSEHasGuidByte3, + MSEZeroBit, + MSEHasGuidByte1, + MSEHasTransportTime3, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEHasTransportTime2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEHasFallDirection, + MSEMovementFlags2, + MSEMovementFlags, + MSEGuidByte6, + MSEGuidByte7, + MSEGuidByte2, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte3, + MSETransportGuidByte0, + MSETransportPositionX, + MSETransportGuidByte1, + MSETransportTime2, + MSETransportGuidByte4, + MSETransportPositionZ, + MSETransportOrientation, + MSETransportGuidByte2, + MSETransportTime3, + MSETransportGuidByte3, + MSETransportSeat, + MSETransportPositionY, + MSETransportGuidByte5, + MSETransportGuidByte6, + MSETransportTime, + MSETransportGuidByte7, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSESplineElevation, + MSEOrientation, + MSETimestamp, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetPitchSequence[] = +{ + MSEPositionX, + MSEPositionZ, + MSEPositionY, + MSEHasFallData, + MSEHasMovementFlags, + MSEHasGuidByte1, + MSEHasOrientation, + MSEHasGuidByte7, + MSEHasGuidByte3, + MSEHasMovementFlags2, + MSEHasTransportData, + MSEHasSplineElevation, + MSEHasGuidByte6, + MSEHasPitch, + MSEHasGuidByte4, + MSEHasSpline, + MSEHasGuidByte2, + MSEZeroBit, + MSEHasTimestamp, + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte5, + MSEHasTransportTime3, + MSEHasTransportGuidByte7, + MSEHasTransportTime2, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte3, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte2, + MSEGuidByte4, + MSETransportGuidByte4, + MSETransportGuidByte3, + MSETransportGuidByte6, + MSETransportOrientation, + MSETransportGuidByte1, + MSETransportTime3, + MSETransportTime, + MSETransportGuidByte2, + MSETransportPositionZ, + MSETransportGuidByte0, + MSETransportTime2, + MSETransportPositionY, + MSETransportGuidByte5, + MSETransportSeat, + MSETransportGuidByte7, + MSETransportPositionX, + MSEFallVerticalSpeed, + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEPitch, + MSESplineElevation, + MSETimestamp, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartBackwardSequence[] = +{ + MSEPositionX, + MSEPositionZ, + MSEPositionY, + MSEHasTransportData, + MSEHasGuidByte3, + MSEHasGuidByte0, + MSEHasGuidByte2, + MSEHasTimestamp, + MSEHasGuidByte7, + MSEHasPitch, + MSEZeroBit, + MSEHasMovementFlags, + MSEHasOrientation, + MSEHasSpline, + MSEHasMovementFlags2, + MSEHasFallData, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportTime2, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte4, + MSEHasTransportTime3, + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte6, + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte3, + MSETransportPositionZ, + MSETransportGuidByte2, + MSETransportTime3, + MSETransportGuidByte0, + MSETransportGuidByte5, + MSETransportPositionY, + MSETransportGuidByte1, + MSETransportPositionX, + MSETransportTime2, + MSETransportGuidByte4, + MSETransportOrientation, + MSETransportSeat, + MSETransportGuidByte7, + MSETransportTime, + MSETransportGuidByte6, + MSETransportGuidByte3, + MSEPitch, + MSETimestamp, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSEOrientation, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartForwardSequence[] = +{ + MSEPositionY, + MSEPositionZ, + MSEPositionX, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEZeroBit, + MSEHasMovementFlags, + MSEHasGuidByte7, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasOrientation, + MSEHasGuidByte6, + MSEHasSpline, + MSEHasSplineElevation, + MSEHasGuidByte4, + MSEHasTransportData, + MSEHasTimestamp, + MSEHasPitch, + MSEHasMovementFlags2, + MSEHasFallData, + MSEMovementFlags, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte1, + MSEHasTransportTime3, + MSEHasTransportTime2, + MSEHasFallDirection, + MSEMovementFlags2, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte5, + MSEGuidByte0, + MSEFallVerticalSpeed, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallTime, + MSETransportGuidByte3, + MSETransportPositionY, + MSETransportPositionZ, + MSETransportGuidByte1, + MSETransportGuidByte4, + MSETransportGuidByte7, + MSETransportOrientation, + MSETransportGuidByte2, + MSETransportPositionX, + MSETransportGuidByte5, + MSETransportTime3, + MSETransportTime, + MSETransportGuidByte6, + MSETransportGuidByte0, + MSETransportSeat, + MSETransportTime2, + MSESplineElevation, + MSEPitch, + MSEOrientation, + MSETimestamp, + + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartStrafeLeftSequence[] = +{ + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEHasSplineElevation, + MSEHasGuidByte5, + MSEHasPitch, + MSEHasGuidByte6, + MSEHasTimestamp, + MSEHasGuidByte1, + MSEZeroBit, + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasOrientation, + MSEHasGuidByte3, + MSEHasMovementFlags2, + MSEHasGuidByte7, + MSEHasSpline, + MSEHasMovementFlags, + MSEHasTransportData, + MSEHasFallDirection, + MSEHasTransportTime2, + MSEHasTransportGuidByte7, + MSEHasTransportTime3, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte0, + MSEMovementFlags, + MSEMovementFlags2, + MSEGuidByte2, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte5, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSETransportSeat, + MSETransportGuidByte2, + MSETransportTime2, + MSETransportGuidByte3, + MSETransportPositionZ, + MSETransportTime3, + MSETransportGuidByte0, + MSETransportGuidByte7, + MSETransportPositionY, + MSETransportGuidByte5, + MSETransportGuidByte1, + MSETransportOrientation, + MSETransportTime, + MSETransportGuidByte6, + MSETransportGuidByte4, + MSETransportPositionX, + MSETimestamp, + MSEOrientation, + MSEPitch, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartStrafeRightSequence[] = +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEHasPitch, + MSEHasGuidByte1, + MSEHasOrientation, + MSEHasGuidByte4, + MSEHasSpline, + MSEZeroBit, + MSEHasGuidByte5, + MSEHasFallData, + MSEHasSplineElevation, + MSEHasTimestamp, + MSEHasMovementFlags, + MSEHasGuidByte2, + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEHasMovementFlags2, + MSEHasTransportData, + MSEHasGuidByte0, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte0, + MSEHasTransportTime2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte4, + MSEHasTransportTime3, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte0, + MSETransportGuidByte5, + MSETransportGuidByte1, + MSETransportGuidByte6, + MSETransportPositionY, + MSETransportOrientation, + MSETransportGuidByte0, + MSETransportGuidByte2, + MSETransportSeat, + MSETransportPositionX, + MSETransportTime3, + MSETransportTime, + MSETransportGuidByte4, + MSETransportGuidByte7, + MSETransportTime2, + MSETransportPositionZ, + MSETransportGuidByte3, + MSEPitch, + MSEOrientation, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + MSEFallVerticalSpeed, + MSETimestamp, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartTurnLeftSequence[] = +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEZeroBit, + MSEHasGuidByte1, + MSEHasOrientation, + MSEHasSpline, + MSEHasMovementFlags, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasMovementFlags2, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEHasTransportData, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasPitch, + MSEHasTimestamp, + MSEHasFallData, + MSEMovementFlags2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte0, + MSEHasTransportTime2, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte6, + MSEHasFallDirection, + MSEMovementFlags, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte1, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSEFallTime, + MSETransportGuidByte0, + MSETransportPositionX, + MSETransportTime, + MSETransportSeat, + MSETransportPositionZ, + MSETransportGuidByte4, + MSETransportOrientation, + MSETransportGuidByte2, + MSETransportGuidByte6, + MSETransportGuidByte1, + MSETransportGuidByte3, + MSETransportPositionY, + MSETransportTime3, + MSETransportTime2, + MSETransportGuidByte5, + MSETransportGuidByte7, + MSETimestamp, + MSEPitch, + MSEOrientation, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartTurnRightSequence[] = +{ + MSEPositionX, + MSEPositionZ, + MSEPositionY, + MSEHasGuidByte3, + MSEHasGuidByte5, + MSEHasMovementFlags, + MSEHasSpline, + MSEHasGuidByte0, + MSEHasOrientation, + MSEHasTransportData, + MSEHasGuidByte7, + MSEZeroBit, + MSEHasMovementFlags2, + MSEHasGuidByte1, + MSEHasTimestamp, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasSplineElevation, + MSEHasPitch, + MSEHasFallData, + MSEHasTransportGuidByte1, + MSEHasTransportTime2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte7, + MSEHasTransportTime3, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte5, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte4, + MSEGuidByte6, + MSETransportPositionY, + MSETransportGuidByte0, + MSETransportGuidByte4, + MSETransportGuidByte1, + MSETransportGuidByte6, + MSETransportGuidByte2, + MSETransportSeat, + MSETransportOrientation, + MSETransportGuidByte5, + MSETransportTime3, + MSETransportPositionZ, + MSETransportPositionX, + MSETransportTime, + MSETransportGuidByte7, + MSETransportGuidByte3, + MSETransportTime2, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSEPitch, + MSEOrientation, + MSESplineElevation, + MSETimestamp, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStopSequence[] = +{ + MSEPositionX, + MSEPositionY, + MSEPositionZ, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEHasSpline, + MSEHasOrientation, + MSEHasGuidByte7, + MSEHasMovementFlags, + MSEHasGuidByte5, + MSEHasFallData, + MSEHasMovementFlags2, + MSEHasTransportData, + MSEHasTimestamp, + MSEHasGuidByte4, + MSEHasGuidByte1, + MSEZeroBit, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEHasPitch, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte5, + MSEHasTransportTime2, + MSEHasTransportTime3, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte2, + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte7, + MSETransportGuidByte4, + MSETransportGuidByte7, + MSETransportTime, + MSETransportSeat, + MSETransportPositionZ, + MSETransportTime3, + MSETransportGuidByte2, + MSETransportGuidByte0, + MSETransportPositionY, + MSETransportGuidByte1, + MSETransportGuidByte3, + MSETransportTime2, + MSETransportPositionX, + MSETransportOrientation, + MSETransportGuidByte5, + MSETransportGuidByte6, + MSETimestamp, + MSEOrientation, + MSEPitch, + MSESplineElevation, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSEFallTime, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStopStrafeSequence[] = +{ + MSEPositionY, + MSEPositionZ, + MSEPositionX, + MSEHasPitch, + MSEHasTimestamp, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasGuidByte7, + MSEHasSplineElevation, + MSEHasGuidByte3, + MSEHasOrientation, + MSEHasMovementFlags2, + MSEHasTransportData, + MSEHasMovementFlags, + MSEHasSpline, + MSEHasGuidByte0, + MSEZeroBit, + MSEHasGuidByte6, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte5, + MSEHasTransportTime2, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte3, + MSEHasTransportTime3, + MSEMovementFlags, + MSEHasFallDirection, + MSEMovementFlags2, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte0, + MSETransportSeat, + MSETransportGuidByte6, + MSETransportPositionZ, + MSETransportTime3, + MSETransportGuidByte1, + MSETransportGuidByte3, + MSETransportGuidByte2, + MSETransportGuidByte4, + MSETransportGuidByte5, + MSETransportTime, + MSETransportOrientation, + MSETransportPositionX, + MSETransportGuidByte0, + MSETransportPositionY, + MSETransportTime2, + MSETransportGuidByte7, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSESplineElevation, + MSEOrientation, + MSEPitch, + MSETimestamp, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStopTurnSequence[] = +{ + MSEPositionX, + MSEPositionZ, + MSEPositionY, + MSEHasGuidByte5, + MSEHasGuidByte4, + MSEHasFallData, + MSEZeroBit, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasSpline, + MSEHasMovementFlags, + MSEHasGuidByte2, + MSEHasGuidByte6, + MSEHasPitch, + MSEHasTransportData, + MSEHasGuidByte3, + MSEHasSplineElevation, + MSEHasTimestamp, + MSEHasMovementFlags2, + MSEHasOrientation, + MSEHasGuidByte7, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte7, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportTime2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasFallDirection, + MSEMovementFlags, + MSEMovementFlags2, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte5, + MSESplineElevation, + MSETransportPositionX, + MSETransportGuidByte5, + MSETransportSeat, + MSETransportGuidByte2, + MSETransportGuidByte3, + MSETransportOrientation, + MSETransportTime2, + MSETransportTime3, + MSETransportGuidByte7, + MSETransportGuidByte1, + MSETransportGuidByte0, + MSETransportGuidByte4, + MSETransportPositionY, + MSETransportPositionZ, + MSETransportTime, + MSETransportGuidByte6, + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSETimestamp, + MSEPitch, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartAscendSequence[] = +{ + MSEPositionX, + MSEPositionY, + MSEPositionZ, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte7, + MSEZeroBit, + MSEHasGuidByte5, + MSEHasTransportData, + MSEHasGuidByte2, + MSEHasSplineElevation, + MSEHasFallData, + MSEHasSpline, + MSEHasGuidByte3, + MSEHasMovementFlags2, + MSEHasGuidByte6, + MSEHasMovementFlags, + MSEHasPitch, + MSEHasTimestamp, + MSEHasOrientation, + MSEHasGuidByte4, + MSEMovementFlags, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte4, + MSEHasTransportTime2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte4, + MSEGuidByte2, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte7, + MSETransportGuidByte3, + MSETransportGuidByte5, + MSETransportGuidByte4, + MSETransportSeat, + MSETransportGuidByte2, + MSETransportOrientation, + MSETransportPositionY, + MSETransportGuidByte7, + MSETransportTime2, + MSETransportPositionZ, + MSETransportTime3, + MSETransportGuidByte6, + MSETransportTime, + MSETransportGuidByte0, + MSETransportGuidByte1, + MSETransportPositionX, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + MSEFallVerticalSpeed, + MSEOrientation, + MSEPitch, + MSETimestamp, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartDescendSequence[] = +{ + MSEPositionY, + MSEPositionZ, + MSEPositionX, + MSEHasGuidByte0, + MSEHasPitch, + MSEHasFallData, + MSEHasGuidByte4, + MSEHasOrientation, + MSEHasTimestamp, + MSEHasMovementFlags2, + MSEHasMovementFlags, + MSEHasGuidByte6, + MSEZeroBit, + MSEHasGuidByte1, + MSEHasTransportData, + MSEHasSpline, + MSEHasSplineElevation, + MSEHasGuidByte5, + MSEHasGuidByte3, + MSEHasGuidByte7, + MSEHasGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportTime2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte3, + MSEPitch, + MSETransportPositionZ, + MSETransportSeat, + MSETransportTime3, + MSETransportGuidByte6, + MSETransportTime2, + MSETransportGuidByte1, + MSETransportTime, + MSETransportGuidByte4, + MSETransportPositionY, + MSETransportPositionX, + MSETransportGuidByte7, + MSETransportGuidByte3, + MSETransportGuidByte5, + MSETransportGuidByte2, + MSETransportOrientation, + MSETransportGuidByte0, + MSEFallTime, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSETimestamp, + MSEOrientation, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartSwimSequence[] = +{ + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEHasGuidByte3, + MSEHasSplineElevation, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEZeroBit, + MSEHasPitch, + MSEHasGuidByte0, + MSEHasOrientation, + MSEHasMovementFlags, + MSEHasFallData, + MSEHasGuidByte5, + MSEHasTransportData, + MSEHasMovementFlags2, + MSEHasTimestamp, + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasSpline, + MSEHasGuidByte2, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte0, + MSEHasTransportTime2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportTime3, + MSEMovementFlags, + MSEHasFallDirection, + MSEMovementFlags2, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte7, + MSEPitch, + MSETransportTime2, + MSETransportGuidByte2, + MSETransportPositionY, + MSETransportGuidByte3, + MSETransportTime, + MSETransportPositionX, + MSETransportOrientation, + MSETransportTime3, + MSETransportGuidByte6, + MSETransportGuidByte5, + MSETransportGuidByte4, + MSETransportPositionZ, + MSETransportGuidByte1, + MSETransportGuidByte7, + MSETransportGuidByte0, + MSETransportSeat, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSEOrientation, + MSETimestamp, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStopSwimSequence[] = +{ + MSEPositionX, + MSEPositionY, + MSEPositionZ, + MSEHasSpline, + MSEHasPitch, + MSEHasGuidByte5, + MSEHasGuidByte3, + MSEHasGuidByte7, + MSEHasSplineElevation, + MSEHasMovementFlags, + MSEHasGuidByte4, + MSEHasMovementFlags2, + MSEHasGuidByte2, + MSEHasGuidByte6, + MSEHasTransportData, + MSEHasOrientation, + MSEZeroBit, + MSEHasTimestamp, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasFallData, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte0, + MSEHasTransportTime2, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte5, + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte2, + MSETransportTime3, + MSETransportGuidByte4, + MSETransportTime, + MSETransportPositionZ, + MSETransportSeat, + MSETransportGuidByte3, + MSETransportGuidByte2, + MSETransportPositionY, + MSETransportGuidByte7, + MSETransportGuidByte1, + MSETransportGuidByte6, + MSETransportGuidByte5, + MSETransportTime2, + MSETransportPositionX, + MSETransportGuidByte0, + MSETransportOrientation, + MSEFallVerticalSpeed, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallTime, + MSETimestamp, + MSEPitch, + MSEOrientation, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStopAscendSequence[] = +{ + MSEPositionZ, + MSEPositionY, + MSEPositionX, + MSEHasGuidByte3, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasGuidByte7, + MSEHasOrientation, + MSEHasPitch, + MSEHasSpline, + MSEZeroBit, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasMovementFlags, + MSEHasGuidByte0, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEHasTransportData, + MSEHasMovementFlags2, + MSEHasTimestamp, + MSEHasGuidByte5, + MSEHasTransportTime2, + MSEHasTransportTime3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte6, + MSETransportGuidByte5, + MSETransportPositionY, + MSETransportGuidByte7, + MSETransportGuidByte2, + MSETransportGuidByte6, + MSETransportTime2, + MSETransportTime3, + MSETransportOrientation, + MSETransportGuidByte3, + MSETransportGuidByte4, + MSETransportSeat, + MSETransportGuidByte1, + MSETransportTime, + MSETransportGuidByte0, + MSETransportPositionX, + MSETransportPositionZ, + MSEFallTime, + MSEFallVerticalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEPitch, + MSESplineElevation, + MSETimestamp, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStopPitchSequence[] = +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEHasGuidByte3, + MSEHasFallData, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasPitch, + MSEHasSpline, + MSEHasOrientation, + MSEZeroBit, + MSEHasMovementFlags2, + MSEHasSplineElevation, + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasTimestamp, + MSEHasTransportData, + MSEHasMovementFlags, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte3, + MSEHasTransportTime2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEHasFallDirection, + MSEMovementFlags2, + MSEMovementFlags, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte5, + MSEGuidByte2, + MSETimestamp, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSETransportGuidByte5, + MSETransportGuidByte2, + MSETransportTime2, + MSETransportPositionX, + MSETransportOrientation, + MSETransportGuidByte6, + MSETransportGuidByte3, + MSETransportGuidByte1, + MSETransportPositionZ, + MSETransportTime3, + MSETransportGuidByte0, + MSETransportGuidByte4, + MSETransportTime, + MSETransportPositionY, + MSETransportSeat, + MSETransportGuidByte7, + MSESplineElevation, + MSEOrientation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartPitchDownSequence[] = +{ + MSEPositionX, + MSEPositionZ, + MSEPositionY, + MSEHasMovementFlags, + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasPitch, + MSEZeroBit, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasTimestamp, + MSEHasSplineElevation, + MSEHasMovementFlags2, + MSEHasTransportData, + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEHasGuidByte3, + MSEHasSpline, + MSEHasOrientation, + MSEHasFallData, + MSEHasGuidByte2, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte5, + MSEHasTransportTime3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportTime2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEMovementFlags2, + MSEHasFallDirection, + MSEMovementFlags, + MSEGuidByte3, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte2, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte1, + MSETransportTime3, + MSETransportGuidByte3, + MSETransportTime2, + MSETransportGuidByte5, + MSETransportGuidByte1, + MSETransportPositionY, + MSETransportGuidByte6, + MSETransportGuidByte4, + MSETransportTime, + MSETransportPositionZ, + MSETransportPositionX, + MSETransportGuidByte0, + MSETransportSeat, + MSETransportGuidByte2, + MSETransportGuidByte7, + MSETransportOrientation, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSEPitch, + MSEOrientation, + MSESplineElevation, + MSETimestamp, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementStartPitchUpSequence[] = +{ + MSEPositionZ, + MSEPositionY, + MSEPositionX, + MSEHasGuidByte4, + MSEHasMovementFlags, + MSEHasMovementFlags2, + MSEHasSpline, + MSEHasGuidByte2, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEZeroBit, + MSEHasSplineElevation, + MSEHasFallData, + MSEHasGuidByte0, + MSEHasTransportData, + MSEHasGuidByte1, + MSEHasGuidByte5, + MSEHasPitch, + MSEHasTimestamp, + MSEHasOrientation, + MSEHasGuidByte7, + MSEMovementFlags2, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportTime2, + MSEHasTransportGuidByte4, + MSEHasTransportTime3, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte2, + MSETransportPositionX, + MSETransportGuidByte1, + MSETransportGuidByte3, + MSETransportGuidByte2, + MSETransportGuidByte0, + MSETransportTime, + MSETransportPositionZ, + MSETransportOrientation, + MSETransportGuidByte7, + MSETransportTime2, + MSETransportSeat, + MSETransportGuidByte6, + MSETransportGuidByte5, + MSETransportTime3, + MSETransportPositionY, + MSETransportGuidByte4, + MSEFallTime, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSEOrientation, + MSESplineElevation, + MSEPitch, + MSETimestamp, + MSEEnd, +}; + +MovementStatusElements MoveChngTransport[]= +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasGuidByte2, + MSEHasTransportData, + MSEHasSpline, + MSEHasOrientation, + MSEHasGuidByte6, + MSEHasTimestamp, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEHasPitch, + MSEZeroBit, + MSEHasGuidByte3, + MSEHasSplineElevation, + MSEHasGuidByte1, + MSEHasFallData, + MSEHasMovementFlags, + MSEHasMovementFlags2, + + MSEHasTransportGuidByte3, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEHasTransportTime2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte3, + + MSETransportPositionY, + MSETransportSeat, + MSETransportGuidByte1, + MSETransportGuidByte0, + MSETransportGuidByte2, + MSETransportGuidByte3, + MSETransportGuidByte6, + MSETransportPositionZ, + MSETransportPositionX, + MSETransportTime3, + MSETransportTime, + MSETransportGuidByte7, + MSETransportGuidByte5, + MSETransportGuidByte4, + MSETransportOrientation, + MSETransportTime2, + + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallVerticalSpeed, + + MSEOrientation, + MSEPitch, + MSESplineElevation, + MSETimestamp, + MSEEnd, +}; + +// 4.3.4 +MovementStatusElements MoveSplineDone[] = +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEHasGuidByte6, + MSEHasOrientation, + MSEHasFallData, + MSEHasTimestamp, + MSEHasGuidByte2, + MSEHasSplineElevation, + MSEHasGuidByte4, + MSEHasTransportData, + MSEHasGuidByte3, + MSEHasMovementFlags, + MSEHasGuidByte0, + MSEZeroBit, + MSEHasGuidByte1, + MSEHasGuidByte5, + MSEHasPitch, + MSEHasSpline, + MSEHasMovementFlags2, + MSEHasGuidByte7, + + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportTime2, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte0, + + MSEHasFallDirection, + MSEMovementFlags2, + MSEMovementFlags, + + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte3, + + MSEFallVerticalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + + MSEPitch, + MSEOrientation, + + MSETransportGuidByte1, + MSETransportTime3, + MSETransportGuidByte7, + MSETransportTime, + MSETransportPositionY, + MSETransportPositionX, + MSETransportPositionZ, + MSETransportSeat, + MSETransportOrientation, + MSETransportGuidByte0, + MSETransportTime2, + MSETransportGuidByte2, + MSETransportGuidByte3, + MSETransportGuidByte5, + MSETransportGuidByte6, + MSETransportGuidByte4, + + MSETimestamp, + MSESplineElevation, + MSEEnd, +}; + +// 4.3.4 +MovementStatusElements MoveNotActiveMover[] = +{ + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEHasMovementFlags2, + MSEHasTransportData, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEHasGuidByte3, + MSEZeroBit, + MSEHasTimestamp, + MSEHasGuidByte0, + MSEHasOrientation, + MSEHasGuidByte5, + MSEHasPitch, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasSpline, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasMovementFlags, + + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportTime2, + MSEHasTransportGuidByte3, + + MSEHasFallDirection, + MSEMovementFlags, + MSEMovementFlags2, + + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte3, + + MSEFallVerticalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + + MSETransportTime3, + MSETransportGuidByte1, + MSETransportTime2, + MSETransportOrientation, + MSETransportGuidByte0, + MSETransportSeat, + MSETransportGuidByte4, + MSETransportGuidByte6, + MSETransportGuidByte3, + MSETransportGuidByte5, + MSETransportPositionY, + MSETransportPositionX, + MSETransportGuidByte2, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETransportTime, + + MSETimestamp, + MSESplineElevation, + MSEPitch, + MSEOrientation, + + MSEEnd, +}; + +// 4.3.4 +MovementStatusElements DismissControlledVehicle[] = +{ + MSEPositionY, + MSEPositionZ, + MSEPositionX, + MSEHasSplineElevation, + MSEHasFallData, + MSEHasTransportData, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasMovementFlags2, + MSEHasGuidByte2, + MSEHasOrientation, + MSEHasGuidByte0, + MSEHasGuidByte6, + MSEHasPitch, + MSEHasTimestamp, + MSEHasGuidByte1, + MSEZeroBit, + MSEHasSpline, + MSEHasGuidByte3, + MSEHasMovementFlags, + MSEHasGuidByte5, + + MSEHasTransportGuidByte5, + MSEHasTransportTime3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportTime2, + + MSEMovementFlags2, + MSEHasFallDirection, + MSEMovementFlags, + + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte0, + + MSETimestamp, + + MSETransportTime3, + MSETransportGuidByte4, + MSETransportGuidByte7, + MSETransportTime2, + MSETransportGuidByte6, + MSETransportTime, + MSETransportPositionZ, + MSETransportGuidByte0, + MSETransportPositionX, + MSETransportGuidByte3, + MSETransportSeat, + MSETransportPositionY, + MSETransportOrientation, + MSETransportGuidByte1, + MSETransportGuidByte5, + MSETransportGuidByte2, + + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallVerticalSpeed, + + MSEOrientation, + MSESplineElevation, + MSEPitch, + MSEEnd, +}; + +// 4.3.4 +MovementStatusElements MoveUpdateTeleport[] = +{ + MSEPositionZ, + MSEPositionY, + MSEPositionX, + MSEHasOrientation, + + MSEHasSpline, + MSEHasMovementFlags, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasFallData, + MSEHasGuidByte0, + MSEHasTransportData, + MSEHasGuidByte5, + + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte0, + MSEHasTransportTime2, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte6, + MSEHasTransportTime3, + MSEHasTransportGuidByte2, + + MSEZeroBit, + + MSEHasGuidByte7, + MSEHasGuidByte3, + MSEHasPitch, + MSEHasMovementFlags2, + MSEHasTimestamp, + + MSEHasFallDirection, + MSEMovementFlags2, + MSEHasSplineElevation, + MSEMovementFlags, + MSEHasGuidByte1, + + MSEGuidByte7, + MSETransportGuidByte3, + MSETransportGuidByte4, + MSETransportOrientation, + MSETransportTime3, + MSETransportGuidByte1, + MSETransportTime2, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETransportGuidByte0, + MSETransportGuidByte6, + MSETransportGuidByte5, + MSETransportGuidByte2, + MSETransportSeat, + MSETransportTime, + MSETransportPositionY, + MSETransportPositionX, + + MSEGuidByte6, + MSEPitch, + MSESplineElevation, + MSEOrientation, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte1, + + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallVerticalSpeed, + + MSEGuidByte5, + MSEGuidByte4, + MSETimestamp, + MSEGuidByte0, + + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetRunMode[] = +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEHasTimestamp, + MSEHasMovementFlags2, + MSEHasGuidByte1, + MSEHasSpline, + MSEHasMovementFlags, + MSEHasGuidByte7, + MSEHasTransportData, + MSEZeroBit, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasSplineElevation, + MSEHasGuidByte5, + MSEHasPitch, + MSEHasGuidByte6, + MSEHasGuidByte4, + MSEHasFallData, + MSEHasOrientation, + MSEHasGuidByte2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte4, + MSEHasTransportTime3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportTime2, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte2, + MSEHasFallDirection, + MSEMovementFlags2, + MSEMovementFlags, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte2, + MSEPitch, + MSETransportTime2, + MSETransportGuidByte3, + MSETransportPositionX, + MSETransportSeat, + MSETransportGuidByte5, + MSETransportGuidByte1, + MSETransportPositionZ, + MSETransportGuidByte2, + MSETransportGuidByte7, + MSETransportOrientation, + MSETransportGuidByte4, + MSETransportTime, + MSETransportTime3, + MSETransportGuidByte0, + MSETransportPositionY, + MSETransportGuidByte6, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSESplineElevation, + MSETimestamp, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetWalkMode[] = +{ + MSEPositionY, + MSEPositionX, + MSEPositionZ, + MSEHasGuidByte6, + MSEHasSpline, + MSEHasTimestamp, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasMovementFlags, + MSEHasPitch, + MSEHasGuidByte7, + MSEHasSplineElevation, + MSEHasGuidByte4, + MSEHasOrientation, + MSEHasTransportData, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEHasGuidByte3, + MSEZeroBit, + MSEHasMovementFlags2, + MSEHasFallData, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte3, + MSEHasTransportTime2, + MSEHasTransportGuidByte5, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte7, + MSEHasFallDirection, + MSEMovementFlags, + MSEMovementFlags2, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte1, + MSETransportGuidByte2, + MSETransportGuidByte5, + MSETransportSeat, + MSETransportPositionZ, + MSETransportGuidByte3, + MSETransportGuidByte6, + MSETransportGuidByte0, + MSETransportTime, + MSETransportGuidByte4, + MSETransportTime2, + MSETransportOrientation, + MSETransportPositionX, + MSETransportTime3, + MSETransportGuidByte7, + MSETransportPositionY, + MSETransportGuidByte1, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSESplineElevation, + MSEPitch, + MSETimestamp, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetCanFly[] = +{ + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEHasTransportData, + MSEHasGuidByte1, + MSEHasGuidByte6, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasGuidByte0, + MSEHasMovementFlags, + MSEHasGuidByte3, + MSEHasMovementFlags2, + MSEHasGuidByte5, + MSEHasTimestamp, + MSEHasSplineElevation, + MSEHasSpline, + MSEHasOrientation, + MSEHasGuidByte7, + MSEZeroBit, + MSEHasPitch, + MSEHasTransportGuidByte3, + MSEHasTransportTime2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportTime3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte5, + MSEMovementFlags2, + MSEHasFallDirection, + MSEMovementFlags, + MSEGuidByte2, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte1, + MSEGuidByte3, + MSEGuidByte6, + MSETransportPositionZ, + MSETransportGuidByte3, + MSETransportGuidByte5, + MSETransportGuidByte4, + MSETransportSeat, + MSETransportPositionX, + MSETransportGuidByte2, + MSETransportTime2, + MSETransportPositionY, + MSETransportGuidByte1, + MSETransportTime, + MSETransportGuidByte7, + MSETransportGuidByte0, + MSETransportOrientation, + MSETransportGuidByte6, + MSETransportTime3, + MSESplineElevation, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSEFallTime, + MSEPitch, + MSETimestamp, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetCanTransitionBetweenSwimAndFlyAck[] = +{ + MSEPositionZ, + MSEPositionY, + MSECounter, + MSEPositionX, + MSEHasGuidByte3, + MSEHasOrientation, + MSEHasTransportData, + MSEHasMovementFlags, + MSEHasMovementFlags2, + MSEHasSplineElevation, + MSEHasTimestamp, + MSEHasSpline, + MSEZeroBit, + MSEHasFallData, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasPitch, + MSEHasGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte2, + MSEHasTransportTime2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte5, + MSEHasTransportTime3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte1, + MSEMovementFlags2, + MSEHasFallDirection, + MSEMovementFlags, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte7, + MSEGuidByte6, + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallVerticalSpeed, + MSETransportPositionY, + MSETransportPositionZ, + MSETransportGuidByte5, + MSETransportGuidByte1, + MSETransportGuidByte4, + MSETransportTime, + MSETransportSeat, + MSETransportGuidByte3, + MSETransportGuidByte0, + MSETransportGuidByte2, + MSETransportGuidByte7, + MSETransportPositionX, + MSETransportTime2, + MSETransportGuidByte6, + MSETransportOrientation, + MSETransportTime3, + MSEPitch, + MSEOrientation, + MSETimestamp, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementUpdateSwimSpeed[] = +{ + MSEHasMovementFlags, + MSEHasGuidByte2, + MSEMovementFlags, + MSEHasGuidByte3, + MSEZeroBit, + MSEHasGuidByte7, + MSEHasFallDirection, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasOrientation, + MSEHasGuidByte1, + MSETransportGuidByte2, + MSETransportPositionX, + MSETransportGuidByte6, + MSETransportOrientation, + MSETransportGuidByte0, + MSETransportGuidByte4, + MSETransportPositionY, + MSETransportTime, + MSETransportGuidByte1, + MSETransportGuidByte7, + MSETransportPositionZ, + MSETransportSeat, + MSETransportGuidByte3, + MSETransportGuidByte5, + MSEPositionX, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSEGuidByte7, + MSETimestamp, + MSEPositionY, + MSEPositionZ, + MSEExtraElement, + MSEGuidByte4, + MSEOrientation, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte0, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte5, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementUpdateRunSpeed[] = +{ + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEExtraElement, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEHasMovementFlags, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEMovementFlags, + MSEHasGuidByte7, + MSEHasGuidByte0, + MSEHasOrientation, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte0, + MSEHasFallDirection, + MSEHasGuidByte4, + MSEZeroBit, + MSETransportGuidByte4, + MSETransportGuidByte5, + MSETransportPositionX, + MSETransportOrientation, + MSETransportGuidByte1, + MSETransportGuidByte0, + MSETransportGuidByte6, + MSETransportTime, + MSETransportGuidByte7, + MSETransportSeat, + MSETransportPositionY, + MSETransportGuidByte3, + MSETransportGuidByte2, + MSETransportPositionZ, + MSETimestamp, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSEPitch, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte7, + MSEGuidByte4, + MSEOrientation, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte1, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementUpdateFlightSpeed[] = +{ + MSEPositionY, + MSEExtraElement, + MSEPositionX, + MSEPositionZ, + MSEHasMovementFlags, + MSEHasGuidByte4, + MSEZeroBit, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEMovementFlags, + MSEHasGuidByte2, + MSEHasOrientation, + MSEHasGuidByte7, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEHasFallDirection, + MSEHasGuidByte0, + MSEPitch, + MSEGuidByte0, + MSEGuidByte5, + MSETransportOrientation, + MSETransportTime, + MSETransportGuidByte5, + MSETransportGuidByte4, + MSETransportGuidByte6, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETransportGuidByte0, + MSETransportGuidByte2, + MSETransportGuidByte3, + MSETransportPositionY, + MSETransportGuidByte1, + MSETransportSeat, + MSETransportPositionX, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSEGuidByte1, + MSEGuidByte6, + MSETimestamp, + MSEGuidByte7, + MSEGuidByte2, + MSEGuidByte4, + MSEOrientation, + MSEGuidByte3, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementUpdateCollisionHeight[] = +{ + MSEPositionZ, + MSEExtraElement, + MSEPositionX, + MSEPositionY, + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte2, + MSEHasGuidByte3, + MSEHasOrientation, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEZeroBit, + MSEHasGuidByte2, + MSEHasMovementFlags, + MSEHasFallDirection, + MSEHasGuidByte1, + MSEMovementFlags, + MSEGuidByte3, + MSETransportGuidByte7, + MSETransportTime, + MSETransportGuidByte4, + MSETransportGuidByte5, + MSETransportOrientation, + MSETransportPositionX, + MSETransportGuidByte6, + MSETransportGuidByte0, + MSETransportPositionY, + MSETransportGuidByte2, + MSETransportPositionZ, + MSETransportGuidByte3, + MSETransportGuidByte1, + MSETransportSeat, + MSEPitch, + MSEGuidByte6, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSEFallTime, + MSEGuidByte7, + MSEOrientation, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte4, + MSETimestamp, + MSEGuidByte2, + MSEGuidByte1, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementForceRunSpeedChangeAck[] = +{ + MSECounter, + MSEPositionX, + MSEExtraElement, + MSEPositionZ, + MSEPositionY, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasGuidByte1, + MSEHasGuidByte7, + MSEHasOrientation, + MSEHasFallData, + MSEHasGuidByte0, + MSEHasSpline, + MSEHasTransportData, + MSEHasTimestamp, + MSEHasMovementFlags2, + MSEHasGuidByte6, + MSEZeroBit, + MSEHasSplineElevation, + MSEHasPitch, + MSEHasGuidByte5, + MSEHasMovementFlags, + MSEHasGuidByte3, + MSEHasTransportTime3, + MSEHasTransportGuidByte5, + MSEHasTransportTime2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte4, + MSEMovementFlags, + MSEHasFallDirection, + MSEMovementFlags2, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte3, + MSEGuidByte5, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte0, + MSETransportPositionZ, + MSETransportGuidByte6, + MSETransportGuidByte1, + MSETransportPositionY, + MSETransportGuidByte0, + MSETransportGuidByte5, + MSETransportTime2, + MSETransportPositionX, + MSETransportTime, + MSETransportGuidByte7, + MSETransportOrientation, + MSETransportGuidByte3, + MSETransportTime3, + MSETransportGuidByte2, + MSETransportSeat, + MSETransportGuidByte4, + MSEFallVerticalSpeed, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallTime, + MSESplineElevation, + MSEPitch, + MSETimestamp, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetCollisionHeightAck[] = +{ + MSEExtraElement, + MSEPositionX, + MSEPositionZ, + MSECounter, + MSEPositionY, + MSEHasGuidByte6, + MSEHasGuidByte4, + MSEZeroBit, + MSEZeroBit, + MSEHasPitch, + MSEHasGuidByte5, + MSEZeroBit, + MSEHasGuidByte2, + MSEHasGuidByte1, + MSEHasFallData, + MSEHasGuidByte3, + MSEHasSpline, + MSEHasGuidByte7, + MSEHasMovementFlags, + MSEHasTransportData, + MSEHasTimestamp, + MSEHasSplineElevation, + MSEHasMovementFlags2, + MSEHasOrientation, + MSEHasGuidByte0, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte3, + MSEHasTransportTime2, + MSEHasTransportTime3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte7, + MSEGuidByte6, + MSEGuidByte2, + MSEGuidByte4, + MSETransportPositionX, + MSETransportGuidByte4, + MSETransportTime2, + MSETransportGuidByte0, + MSETransportOrientation, + MSETransportPositionY, + MSETransportGuidByte7, + MSETransportSeat, + MSETransportGuidByte5, + MSETransportGuidByte2, + MSETransportTime, + MSETransportGuidByte6, + MSETransportGuidByte3, + MSETransportGuidByte1, + MSETransportTime3, + MSETransportPositionZ, + MSEFallVerticalSpeed, + MSEFallTime, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSETimestamp, + MSESplineElevation, + MSEOrientation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementForceFlightSpeedChangeAck[] = +{ + MSECounter, + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEExtraElement, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEZeroBit, + MSEHasMovementFlags, + MSEHasSplineElevation, + MSEHasGuidByte3, + MSEHasMovementFlags2, + MSEHasGuidByte7, + MSEHasTransportData, + MSEHasGuidByte0, + MSEHasFallData, + MSEHasTimestamp, + MSEHasPitch, + MSEHasSpline, + MSEHasOrientation, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte7, + MSEHasTransportTime2, + MSEHasTransportGuidByte0, + MSEHasTransportTime3, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte4, + MSEHasFallDirection, + MSEMovementFlags2, + MSEMovementFlags, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte4, + MSETransportGuidByte6, + MSETransportGuidByte0, + MSETransportSeat, + MSETransportTime2, + MSETransportOrientation, + MSETransportGuidByte1, + MSETransportGuidByte5, + MSETransportTime3, + MSETransportGuidByte2, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETransportGuidByte3, + MSETransportGuidByte4, + MSETransportPositionX, + MSETransportTime, + MSETransportPositionY, + MSETimestamp, + MSESplineElevation, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + MSEFallVerticalSpeed, + MSEPitch, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementSetCanFlyAck[] = +{ + MSEPositionY, + MSECounter, + MSEPositionX, + MSEPositionZ, + MSEHasGuidByte3, + MSEHasTimestamp, + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasOrientation, + MSEHasFallData, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEHasSplineElevation, + MSEHasMovementFlags2, + MSEZeroBit, + MSEHasGuidByte7, + MSEHasSpline, + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasMovementFlags, + MSEHasTransportData, + MSEHasPitch, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportTime2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte7, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte5, + MSETransportTime2, + MSETransportGuidByte6, + MSETransportTime, + MSETransportTime3, + MSETransportGuidByte7, + MSETransportPositionZ, + MSETransportGuidByte3, + MSETransportPositionY, + MSETransportGuidByte5, + MSETransportPositionX, + MSETransportGuidByte2, + MSETransportOrientation, + MSETransportSeat, + MSETransportGuidByte1, + MSETransportGuidByte0, + MSETransportGuidByte4, + MSEFallTime, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEPitch, + MSEOrientation, + MSETimestamp, + MSESplineElevation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementForceSwimSpeedChangeAck[] = +{ + MSEPositionX, + MSECounter, + MSEExtraElement, + MSEPositionY, + MSEPositionZ, + MSEHasGuidByte4, + MSEHasOrientation, + MSEHasPitch, + MSEHasTransportData, + MSEHasMovementFlags, + MSEHasMovementFlags2, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasFallData, + MSEHasGuidByte2, + MSEHasGuidByte7, + MSEHasTimestamp, + MSEZeroBit, + MSEHasGuidByte5, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEHasSpline, + MSEHasGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte3, + MSEHasTransportTime2, + MSEHasTransportTime3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEMovementFlags2, + MSEHasFallDirection, + MSEMovementFlags, + MSEGuidByte2, + MSEGuidByte0, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte1, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte7, + MSETransportGuidByte0, + MSETransportTime3, + MSETransportTime2, + MSETransportPositionX, + MSETransportGuidByte7, + MSETransportSeat, + MSETransportPositionY, + MSETransportGuidByte5, + MSETransportPositionZ, + MSETransportOrientation, + MSETransportTime, + MSETransportGuidByte2, + MSETransportGuidByte6, + MSETransportGuidByte3, + MSETransportGuidByte1, + MSETransportGuidByte4, + MSEFallTime, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallVerticalSpeed, + MSEOrientation, + MSEPitch, + MSESplineElevation, + MSETimestamp, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementForceWalkSpeedChangeAck[] = +{ + MSEPositionZ, + MSEPositionY, + MSEExtraElement, + MSEPositionX, + MSECounter, + MSEHasGuidByte0, + MSEHasMovementFlags2, + MSEHasTimestamp, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEHasMovementFlags, + MSEHasFallData, + MSEHasOrientation, + MSEHasSpline, + MSEZeroBit, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasSplineElevation, + MSEHasTransportData, + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasPitch, + MSEHasTransportTime2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportTime3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte3, + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte7, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte0, + MSEFallVerticalSpeed, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallTime, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETransportGuidByte5, + MSETransportPositionX, + MSETransportGuidByte0, + MSETransportTime, + MSETransportTime3, + MSETransportPositionY, + MSETransportGuidByte2, + MSETransportGuidByte4, + MSETransportGuidByte1, + MSETransportGuidByte3, + MSETransportOrientation, + MSETransportSeat, + MSETransportGuidByte6, + MSETransportTime2, + MSESplineElevation, + MSETimestamp, + MSEOrientation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementForceRunBackSpeedChangeAck[] = +{ + MSEExtraElement, + MSECounter, + MSEPositionX, + MSEPositionZ, + MSEPositionY, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasTimestamp, + MSEHasTransportData, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEHasGuidByte3, + MSEHasOrientation, + MSEHasFallData, + MSEHasMovementFlags2, + MSEHasMovementFlags, + MSEHasGuidByte7, + MSEHasSpline, + MSEHasPitch, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEZeroBit, + MSEHasTransportGuidByte3, + MSEHasTransportTime2, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte1, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte5, + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte1, + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSETransportGuidByte5, + MSETransportSeat, + MSETransportGuidByte6, + MSETransportGuidByte1, + MSETransportGuidByte0, + MSETransportGuidByte2, + MSETransportPositionY, + MSETransportTime3, + MSETransportPositionX, + MSETransportOrientation, + MSETransportGuidByte3, + MSETransportTime, + MSETransportTime2, + MSETransportGuidByte4, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETimestamp, + MSESplineElevation, + MSEOrientation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementUpdateRunBackSpeed[] = +{ + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasGuidByte0, + MSEZeroBit, + MSEHasMovementFlags, + MSEHasGuidByte5, + MSEHasOrientation, + MSEMovementFlags, + MSEHasFallDirection, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte0, + MSEHasGuidByte7, + MSETransportPositionX, + MSETransportGuidByte2, + MSETransportGuidByte5, + MSETransportGuidByte4, + MSETransportGuidByte6, + MSETransportGuidByte0, + MSETransportGuidByte3, + MSETransportPositionY, + MSETransportGuidByte7, + MSETransportPositionZ, + MSETransportTime, + MSETransportSeat, + MSETransportGuidByte1, + MSETransportOrientation, + MSEGuidByte4, + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSETimestamp, + MSEGuidByte1, + MSEOrientation, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte3, + MSEPositionX, + MSEPositionY, + MSEPitch, + MSEGuidByte7, + MSEExtraElement, + MSEGuidByte2, + MSEGuidByte6, + MSEPositionZ, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementUpdateWalkSpeed[] = +{ + MSEHasOrientation, + MSEZeroBit, + MSEHasGuidByte3, + MSEHasGuidByte2, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte5, + MSEHasGuidByte7, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasMovementFlags, + MSEHasGuidByte6, + MSEHasFallDirection, + MSEMovementFlags, + MSEHasGuidByte4, + MSEPitch, + MSETransportGuidByte6, + MSETransportGuidByte0, + MSETransportGuidByte4, + MSETransportGuidByte2, + MSETransportPositionX, + MSETransportGuidByte7, + MSETransportTime, + MSETransportPositionZ, + MSETransportSeat, + MSETransportGuidByte5, + MSETransportOrientation, + MSETransportGuidByte1, + MSETransportPositionY, + MSETransportGuidByte3, + MSEFallVerticalSpeed, + MSEFallHorizontalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallTime, + MSEGuidByte1, + MSEGuidByte4, + MSEGuidByte2, + MSEGuidByte6, + MSEGuidByte7, + MSETimestamp, + MSEOrientation, + MSEPositionY, + MSEGuidByte0, + MSEPositionZ, + MSEPositionX, + MSEGuidByte3, + MSEGuidByte5, + MSEExtraElement, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements ForceMoveRootAck[] = +{ + MSEPositionY, + MSEPositionZ, + MSECounter, + MSEPositionX, + MSEHasGuidByte3, + MSEHasTimestamp, + MSEHasTransportData, + MSEHasPitch, + MSEHasGuidByte2, + MSEHasOrientation, + MSEHasSplineElevation, + MSEHasFallData, + MSEHasSpline, + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasGuidByte7, + MSEHasMovementFlags2, + MSEHasMovementFlags, + MSEZeroBit, + MSEHasGuidByte5, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte2, + MSEHasTransportTime2, + MSEHasTransportGuidByte4, + MSEHasTransportTime3, + MSEHasTransportGuidByte5, + MSEMovementFlags2, + MSEMovementFlags, + MSEHasFallDirection, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte6, + MSEGuidByte2, + MSETransportGuidByte5, + MSETransportGuidByte4, + MSETransportOrientation, + MSETransportPositionZ, + MSETransportTime3, + MSETransportTime2, + MSETransportGuidByte7, + MSETransportGuidByte2, + MSETransportGuidByte0, + MSETransportTime, + MSETransportGuidByte6, + MSETransportGuidByte3, + MSETransportPositionX, + MSETransportGuidByte1, + MSETransportPositionY, + MSETransportSeat, + MSETimestamp, + MSEFallVerticalSpeed, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallTime, + MSEOrientation, + MSESplineElevation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements ForceMoveUnrootAck[] = +{ + MSECounter, + MSEPositionZ, + MSEPositionY, + MSEPositionX, + MSEHasGuidByte7, + MSEHasSplineElevation, + MSEHasSpline, + MSEHasGuidByte5, + MSEHasGuidByte4, + MSEZeroBit, + MSEHasTimestamp, + MSEHasMovementFlags, + MSEHasOrientation, + MSEHasPitch, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasTransportData, + MSEHasMovementFlags2, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEHasFallData, + MSEHasGuidByte6, + MSEHasFallDirection, + MSEHasTransportGuidByte0, + MSEHasTransportTime3, + MSEHasTransportGuidByte6, + MSEHasTransportTime2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEMovementFlags2, + MSEMovementFlags, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte6, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte5, + MSEGuidByte3, + MSETransportGuidByte6, + MSETransportPositionZ, + MSETransportGuidByte2, + MSETransportGuidByte3, + MSETransportPositionY, + MSETransportTime3, + MSETransportGuidByte5, + MSETransportSeat, + MSETransportGuidByte0, + MSETransportTime, + MSETransportTime2, + MSETransportGuidByte4, + MSETransportOrientation, + MSETransportPositionX, + MSETransportGuidByte1, + MSETransportGuidByte7, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSETimestamp, + MSESplineElevation, + MSEOrientation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementFallReset[] = +{ + MSEPositionZ, + MSEPositionX, + MSEPositionY, + MSEHasGuidByte1, + MSEHasTimestamp, + MSEHasMovementFlags, + MSEZeroBit, + MSEHasGuidByte6, + MSEHasSplineElevation, + MSEHasPitch, + MSEHasGuidByte3, + MSEHasTransportData, + MSEHasGuidByte2, + MSEHasMovementFlags2, + MSEHasOrientation, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasSpline, + MSEHasGuidByte7, + MSEHasGuidByte0, + MSEHasFallData, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte4, + MSEHasTransportTime2, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte3, + MSEHasFallDirection, + MSEMovementFlags2, + MSEMovementFlags, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte6, + MSETransportPositionX, + MSETransportGuidByte7, + MSETransportGuidByte2, + MSETransportGuidByte3, + MSETransportGuidByte5, + MSETransportPositionY, + MSETransportPositionZ, + MSETransportSeat, + MSETransportTime2, + MSETransportGuidByte6, + MSETransportTime3, + MSETransportTime, + MSETransportGuidByte0, + MSETransportOrientation, + MSETransportGuidByte4, + MSETransportGuidByte1, + MSEFallVerticalSpeed, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + MSEOrientation, + MSETimestamp, + MSESplineElevation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementFeatherFallAck[] = +{ + MSEPositionZ, + MSECounter, + MSEPositionY, + MSEPositionX, + MSEZeroBit, + MSEHasGuidByte3, + MSEHasSplineElevation, + MSEHasGuidByte1, + MSEHasPitch, + MSEHasGuidByte2, + MSEHasSpline, + MSEHasTimestamp, + MSEHasGuidByte5, + MSEHasFallData, + MSEHasOrientation, + MSEHasTransportData, + MSEHasGuidByte7, + MSEHasMovementFlags2, + MSEHasGuidByte6, + MSEHasMovementFlags, + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportTime3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEHasTransportTime2, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte0, + MSEHasFallDirection, + MSEMovementFlags2, + MSEMovementFlags, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte2, + MSETransportTime3, + MSETransportOrientation, + MSETransportPositionZ, + MSETransportGuidByte7, + MSETransportGuidByte5, + MSETransportGuidByte2, + MSETransportPositionX, + MSETransportGuidByte1, + MSETransportGuidByte6, + MSETransportTime2, + MSETransportTime, + MSETransportPositionY, + MSETransportGuidByte4, + MSETransportGuidByte0, + MSETransportSeat, + MSETransportGuidByte3, + MSETimestamp, + MSESplineElevation, + MSEOrientation, + MSEFallVerticalSpeed, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallTime, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementGravityDisableAck[] = +{ + MSEPositionZ, + MSEPositionY, + MSECounter, + MSEPositionX, + MSEHasGuidByte3, + MSEHasTransportData, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasMovementFlags, + MSEHasOrientation, + MSEHasSpline, + MSEHasGuidByte6, + MSEHasGuidByte0, + MSEHasGuidByte7, + MSEHasSplineElevation, + MSEHasTimestamp, + MSEHasPitch, + MSEHasMovementFlags2, + MSEZeroBit, + MSEHasGuidByte2, + MSEHasFallData, + MSEHasGuidByte1, + MSEHasTransportGuidByte2, + MSEHasTransportTime3, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte4, + MSEHasTransportTime2, + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte3, + MSEGuidByte5, + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte6, + MSETransportPositionZ, + MSETransportGuidByte2, + MSETransportGuidByte5, + MSETransportGuidByte3, + MSETransportGuidByte4, + MSETransportPositionY, + MSETransportTime, + MSETransportSeat, + MSETransportGuidByte6, + MSETransportGuidByte1, + MSETransportGuidByte0, + MSETransportOrientation, + MSETransportTime2, + MSETransportPositionX, + MSETransportGuidByte7, + MSETransportTime3, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + MSEFallVerticalSpeed, + MSEOrientation, + MSESplineElevation, + MSETimestamp, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementGravityEnableAck[] = +{ + MSEPositionZ, + MSEPositionX, + MSECounter, + MSEPositionY, + MSEHasSplineElevation, + MSEHasMovementFlags2, + MSEHasGuidByte6, + MSEHasOrientation, + MSEZeroBit, + MSEHasGuidByte5, + MSEHasSpline, + MSEHasGuidByte3, + MSEHasTransportData, + MSEHasPitch, + MSEHasGuidByte1, + MSEHasTimestamp, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasMovementFlags, + MSEHasFallData, + MSEHasGuidByte0, + MSEHasTransportTime3, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte5, + MSEHasTransportTime2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasFallDirection, + MSEMovementFlags, + MSEMovementFlags2, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte6, + MSEFallTime, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallCosAngle, + MSEFallVerticalSpeed, + MSETransportGuidByte1, + MSETransportPositionX, + MSETransportTime3, + MSETransportOrientation, + MSETransportGuidByte2, + MSETransportGuidByte0, + MSETransportGuidByte7, + MSETransportGuidByte6, + MSETransportSeat, + MSETransportGuidByte3, + MSETransportGuidByte4, + MSETransportPositionZ, + MSETransportTime2, + MSETransportGuidByte5, + MSETransportTime, + MSETransportPositionY, + MSESplineElevation, + MSEOrientation, + MSEPitch, + MSETimestamp, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementHoverAck[] = +{ + MSECounter, + MSEPositionZ, + MSEPositionY, + MSEPositionX, + MSEHasGuidByte4, + MSEHasTransportData, + MSEHasGuidByte2, + MSEHasTimestamp, + MSEHasSpline, + MSEHasMovementFlags, + MSEHasGuidByte1, + MSEHasPitch, + MSEHasGuidByte0, + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEHasGuidByte5, + MSEZeroBit, + MSEHasFallData, + MSEHasMovementFlags2, + MSEHasSplineElevation, + MSEHasOrientation, + MSEHasGuidByte3, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte6, + MSEHasTransportTime3, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEHasTransportTime2, + MSEMovementFlags, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte1, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte2, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte0, + MSETimestamp, + MSEFallCosAngle, + MSEFallSinAngle, + MSEFallHorizontalSpeed, + MSEFallTime, + MSEFallVerticalSpeed, + MSEOrientation, + MSETransportGuidByte1, + MSETransportTime3, + MSETransportGuidByte2, + MSETransportGuidByte7, + MSETransportGuidByte3, + MSETransportGuidByte4, + MSETransportSeat, + MSETransportPositionX, + MSETransportPositionZ, + MSETransportOrientation, + MSETransportTime, + MSETransportGuidByte0, + MSETransportPositionY, + MSETransportGuidByte5, + MSETransportTime2, + MSETransportGuidByte6, + MSESplineElevation, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementKnockBackAck[] = +{ + MSEPositionY, + MSEPositionZ, + MSECounter, + MSEPositionX, + MSEHasGuidByte6, + MSEHasOrientation, + MSEHasPitch, + MSEHasSplineElevation, + MSEHasGuidByte3, + MSEHasGuidByte4, + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEHasSpline, + MSEHasGuidByte7, + MSEZeroBit, + MSEHasMovementFlags2, + MSEHasTimestamp, + MSEHasGuidByte0, + MSEHasMovementFlags, + MSEHasTransportData, + MSEHasGuidByte5, + MSEHasFallData, + MSEMovementFlags, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte1, + MSEHasTransportTime2, + MSEHasTransportGuidByte0, + MSEHasTransportTime3, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte3, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte7, + MSEMovementFlags2, + MSEHasFallDirection, + MSEGuidByte4, + MSEGuidByte5, + MSEGuidByte1, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte7, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSETimestamp, + MSETransportPositionY, + MSETransportGuidByte4, + MSETransportTime2, + MSETransportGuidByte7, + MSETransportOrientation, + MSETransportGuidByte6, + MSETransportTime, + MSETransportGuidByte3, + MSETransportGuidByte1, + MSETransportTime3, + MSETransportGuidByte2, + MSETransportPositionZ, + MSETransportGuidByte0, + MSETransportGuidByte5, + MSETransportPositionX, + MSETransportSeat, + MSEPitch, + MSESplineElevation, + MSEOrientation, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementWaterWalkAck[] = +{ + MSEPositionY, + MSEPositionZ, + MSECounter, + MSEPositionX, + MSEHasTimestamp, + MSEHasPitch, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasGuidByte7, + MSEHasOrientation, + MSEHasGuidByte1, + MSEHasMovementFlags2, + MSEHasGuidByte2, + MSEHasMovementFlags, + MSEHasGuidByte3, + MSEHasTransportData, + MSEHasGuidByte6, + MSEHasFallData, + MSEHasGuidByte4, + MSEZeroBit, + MSEHasSplineElevation, + MSEHasSpline, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + MSEHasTransportTime2, + MSEHasTransportGuidByte3, + MSEHasTransportTime3, + MSEHasTransportGuidByte4, + MSEMovementFlags, + MSEHasFallDirection, + MSEMovementFlags2, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte1, + MSETransportPositionX, + MSETransportGuidByte1, + MSETransportTime3, + MSETransportGuidByte0, + MSETransportOrientation, + MSETransportGuidByte7, + MSETransportPositionY, + MSETransportTime2, + MSETransportTime, + MSETransportGuidByte5, + MSETransportSeat, + MSETransportPositionZ, + MSETransportGuidByte3, + MSETransportGuidByte2, + MSETransportGuidByte6, + MSETransportGuidByte4, + MSESplineElevation, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallVerticalSpeed, + MSEFallTime, + MSEOrientation, + MSETimestamp, + MSEPitch, + MSEEnd, +}; + +//4.3.4 +MovementStatusElements MovementUpdateKnockBack[] = +{ + MSEZeroBit, + MSEHasGuidByte4, + MSEHasMovementFlags, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasGuidByte2, + MSEHasGuidByte7, + MSEHasTransportGuidByte7, + MSEHasTransportGuidByte5, + MSEHasTransportGuidByte1, + MSEHasTransportGuidByte6, + MSEHasTransportGuidByte2, + MSEHasTransportGuidByte4, + MSEHasTransportGuidByte0, + MSEHasTransportGuidByte3, + MSEHasGuidByte5, + MSEHasGuidByte6, + MSEMovementFlags, + MSEHasFallDirection, + MSEHasOrientation, + MSEOrientation, + MSEFallCosAngle, + MSEFallHorizontalSpeed, + MSEFallSinAngle, + MSEFallTime, + MSEFallVerticalSpeed, + MSEGuidByte3, + MSETransportGuidByte5, + MSETransportGuidByte7, + MSETransportSeat, + MSETransportGuidByte3, + MSETransportGuidByte6, + MSETransportPositionZ, + MSETransportGuidByte1, + MSETransportPositionY, + MSETransportPositionX, + MSETransportGuidByte2, + MSETransportGuidByte0, + MSETransportOrientation, + MSETransportTime, + MSETransportGuidByte4, + MSEPitch, + MSEPositionZ, + MSETimestamp, + MSEPositionX, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte7, + MSEGuidByte2, + MSEGuidByte1, + MSEPositionY, + MSEGuidByte0, + MSEGuidByte5, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetWalkSpeed[] = +{ + MSEHasGuidByte0, + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEHasGuidByte3, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte3, + MSEExtraElement, + MSEGuidByte6, + MSEGuidByte2, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetRunSpeed[] = +{ + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte4, + MSEExtraElement, + MSEGuidByte2, + MSEGuidByte1, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetRunBackSpeed[] = +{ + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEHasGuidByte6, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasGuidByte7, + MSEHasGuidByte5, + MSEHasGuidByte4, + MSEGuidByte1, + MSEExtraElement, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte7, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetSwimSpeed[] = +{ + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEGuidByte5, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte4, + MSEExtraElement, + MSEGuidByte7, + MSEGuidByte3, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetSwimBackSpeed[] = +{ + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEHasGuidByte2, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte6, + MSEExtraElement, + MSEGuidByte4, + MSEGuidByte2, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetTurnRate[] = +{ + MSEHasGuidByte2, + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEHasGuidByte0, + MSEExtraElement, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte0, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetFlightSpeed[] = +{ + MSEHasGuidByte7, + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte6, + MSEExtraElement, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetFlightBackSpeed[] = +{ + MSEHasGuidByte2, + MSEHasGuidByte1, + MSEHasGuidByte6, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEGuidByte5, + MSEExtraElement, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte7, + MSEGuidByte4, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetPitchRate[] = +{ + MSEHasGuidByte3, + MSEHasGuidByte5, + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasGuidByte2, + MSEGuidByte1, + MSEGuidByte5, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte2, + MSEExtraElement, + MSEGuidByte4, + MSEEnd, +}; + +MovementStatusElements MoveSetWalkSpeed[] = +{ + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte5, + MSEExtraElement, + MSEGuidByte2, + MSECounter, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte3, + MSEEnd, +}; + +MovementStatusElements MoveSetRunSpeed[] = +{ + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEHasGuidByte7, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasGuidByte4, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte4, + MSECounter, + MSEExtraElement, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte2, + MSEEnd, +}; + +MovementStatusElements MoveSetRunBackSpeed[] = +{ + MSEHasGuidByte0, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEGuidByte5, + MSECounter, + MSEExtraElement, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte6, + MSEEnd, +}; + +MovementStatusElements MoveSetSwimSpeed[] = +{ + MSEHasGuidByte5, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasGuidByte3, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte6, + MSEGuidByte0, + MSECounter, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte5, + MSEGuidByte2, + MSEExtraElement, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte4, + MSEEnd, +}; + +MovementStatusElements MoveSetSwimBackSpeed[] = +{ + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasGuidByte7, + MSECounter, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte1, + MSEExtraElement, + MSEGuidByte7, + MSEGuidByte2, + MSEEnd, +}; + +MovementStatusElements MoveSetTurnRate[] = +{ + MSEHasGuidByte7, + MSEHasGuidByte2, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasGuidByte5, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEGuidByte5, + MSEGuidByte7, + MSEGuidByte2, + MSEExtraElement, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte0, + MSECounter, + MSEGuidByte6, + MSEGuidByte4, + MSEEnd, +}; + +MovementStatusElements MoveSetFlightSpeed[] = +{ + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEHasGuidByte2, + MSEHasGuidByte7, + MSEHasGuidByte4, + MSEGuidByte0, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte5, + MSEExtraElement, + MSECounter, + MSEGuidByte2, + MSEGuidByte6, + MSEGuidByte3, + MSEGuidByte4, + MSEEnd, +}; + +MovementStatusElements MoveSetFlightBackSpeed[] = +{ + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEHasGuidByte6, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasGuidByte3, + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEGuidByte3, + MSECounter, + MSEGuidByte6, + MSEExtraElement, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte7, + MSEEnd, +}; + +MovementStatusElements MoveSetPitchRate[] = +{ + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasGuidByte5, + MSEHasGuidByte4, + MSEExtraElement, + MSEGuidByte6, + MSEGuidByte4, + MSEGuidByte0, + MSECounter, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte5, + MSEEnd, +}; + +MovementStatusElements MoveSetCollisionHeight[] = +{ + MSEZeroBit, + MSEZeroBit, + MSEHasGuidByte6, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte5, + MSECounter, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte7, + MSEExtraElement, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetWalkMode[] = +{ + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEGuidByte4, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte0, + MSEGuidByte7, + MSEGuidByte3, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetRunMode[] = +{ + MSEHasGuidByte5, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEHasGuidByte7, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasGuidByte1, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte5, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte3, + MSEEnd, +}; + +MovementStatusElements SplineMoveGravityDisable[] = +{ + MSEHasGuidByte7, + MSEHasGuidByte3, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte0, + MSEHasGuidByte6, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte6, + MSEGuidByte2, + MSEGuidByte5, + MSEGuidByte0, + MSEEnd, +}; + +MovementStatusElements SplineMoveGravityEnable[] = +{ + MSEHasGuidByte5, + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasGuidByte0, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte5, + MSEEnd, +}; + +MovementStatusElements SplineMoveSetHover[] = +{ + MSEHasGuidByte3, + MSEHasGuidByte7, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEGuidByte2, + MSEGuidByte4, + MSEGuidByte3, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte6, + MSEEnd, +}; + +MovementStatusElements SplineMoveUnsetHover[] = +{ + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEGuidByte4, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte6, + MSEGuidByte1, + MSEEnd, +}; + +MovementStatusElements MoveSetCanFly[] = +{ + MSEHasGuidByte1, + MSEHasGuidByte6, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasGuidByte7, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte3, + MSEGuidByte6, + MSEGuidByte3, + MSECounter, + MSEGuidByte2, + MSEGuidByte1, + MSEGuidByte4, + MSEGuidByte7, + MSEGuidByte0, + MSEGuidByte5, + MSEEnd, +}; + +MovementStatusElements MoveUnsetCanFly[] = +{ + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEHasGuidByte3, + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEGuidByte4, + MSEGuidByte6, + MSECounter, + MSEGuidByte1, + MSEGuidByte0, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte5, + MSEGuidByte7, + MSEEnd, +}; + +MovementStatusElements MoveSetHover[] = +{ + MSEHasGuidByte1, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte3, + MSEHasGuidByte0, + MSEHasGuidByte5, + MSEHasGuidByte6, + MSEHasGuidByte7, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte0, + MSEGuidByte7, + MSECounter, + MSEEnd, +}; + +MovementStatusElements MoveUnsetHover[] = +{ + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasGuidByte2, + MSEHasGuidByte7, + MSEHasGuidByte5, + MSEHasGuidByte0, + MSEGuidByte4, + MSEGuidByte5, + MSEGuidByte3, + MSEGuidByte6, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte2, + MSEGuidByte0, + MSECounter, + MSEEnd, +}; + +MovementStatusElements MoveWaterWalk[] = +{ + MSEHasGuidByte4, + MSEHasGuidByte7, + MSEHasGuidByte6, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte3, + MSEHasGuidByte5, + MSEHasGuidByte2, + MSEGuidByte0, + MSEGuidByte5, + MSEGuidByte2, + MSECounter, + MSEGuidByte7, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte6, + MSEEnd, +}; + +MovementStatusElements MoveLandWalk[] = +{ + MSEHasGuidByte5, + MSEHasGuidByte1, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEHasGuidByte3, + MSEHasGuidByte4, + MSEHasGuidByte0, + MSEHasGuidByte7, + MSEGuidByte6, + MSEGuidByte1, + MSEGuidByte7, + MSEGuidByte5, + MSEGuidByte4, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte2, + MSECounter, + MSEEnd, +}; + +MovementStatusElements MoveFeatherFall[] = +{ + MSEHasGuidByte3, + MSEHasGuidByte1, + MSEHasGuidByte7, + MSEHasGuidByte0, + MSEHasGuidByte4, + MSEHasGuidByte2, + MSEHasGuidByte5, + MSEHasGuidByte6, + MSEGuidByte5, + MSEGuidByte7, + MSEGuidByte2, + MSECounter, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte4, + MSEGuidByte1, + MSEGuidByte6, + MSEEnd, +}; + +MovementStatusElements MoveNormalFall[] = +{ + MSECounter, + MSEHasGuidByte3, + MSEHasGuidByte0, + MSEHasGuidByte1, + MSEHasGuidByte5, + MSEHasGuidByte7, + MSEHasGuidByte4, + MSEHasGuidByte6, + MSEHasGuidByte2, + MSEGuidByte2, + MSEGuidByte7, + MSEGuidByte1, + MSEGuidByte4, + MSEGuidByte5, + MSEGuidByte0, + MSEGuidByte3, + MSEGuidByte6, + MSEEnd, +}; + +void Movement::ExtraMovementStatusElement::ReadNextElement(ByteBuffer& packet) +{ + MovementStatusElements element = _elements[_index++]; + + if (element >= MSEHasGuidByte0 && element <= MSEHasGuidByte7) + { + Data.guid[element - MSEHasGuidByte0] = packet.ReadBit(); + return; + } + + if (element >= MSEGuidByte0 && element <= MSEGuidByte7) + { + packet.ReadByteSeq(Data.guid[element - MSEGuidByte0]); + return; + } + + if (element == MSEExtraFloat) + { + packet >> Data.floatData; + return; + } +} + + +void Movement::ExtraMovementStatusElement::WriteNextElement(ByteBuffer& packet) +{ + MovementStatusElements element = _elements[_index++]; + + if (element >= MSEHasGuidByte0 && element <= MSEHasGuidByte7) + { + packet.WriteBit(Data.guid[element - MSEHasGuidByte0]); + return; + } + + if (element >= MSEGuidByte0 && element <= MSEGuidByte7) + { + packet.WriteByteSeq(Data.guid[element - MSEGuidByte0]); + return; + } + + if (element == MSEExtraFloat) + { + packet << Data.floatData; + return; + } +} + +Movement::PacketSender::PacketSender(Unit* unit, Opcodes serverControl, Opcodes playerControl, Opcodes broadcast /*= SMSG_PLAYER_MOVE*/, ExtraMovementStatusElement* extras /*= NULL*/) + : _unit(unit), _extraElements(extras) +{ + if (unit->GetTypeId() == TYPEID_PLAYER && unit->ToPlayer()->m_mover->GetTypeId() == TYPEID_PLAYER) + { + _selfOpcode = playerControl; + _broadcast = broadcast; + } + else + { + _selfOpcode = NULL_OPCODE; + _broadcast = serverControl; + } +} + +void Movement::PacketSender::Send() const +{ + bool isPlayerMovement = _unit->GetTypeId() == TYPEID_PLAYER && _unit->ToPlayer()->m_mover->GetTypeId() == TYPEID_PLAYER; + if (isPlayerMovement && _selfOpcode != NULL_OPCODE) + { + WorldPacket data(_selfOpcode); + _unit->WriteMovementInfo(data, _extraElements); + _unit->ToPlayer()->SendDirectMessage(&data); + } + + if (_broadcast != NULL_OPCODE) + { + WorldPacket data(_broadcast); + _unit->WriteMovementInfo(data, _extraElements); + _unit->SendMessageToSet(&data, !isPlayerMovement); + } +} + +MovementStatusElements* GetMovementStatusElementsSequence(Opcodes opcode) +{ + switch (opcode) + { + case MSG_MOVE_FALL_LAND: + return MovementFallLandSequence; + case MSG_MOVE_HEARTBEAT: + return MovementHeartBeatSequence; + case MSG_MOVE_JUMP: + return MovementJumpSequence; + case MSG_MOVE_SET_FACING: + return MovementSetFacingSequence; + case MSG_MOVE_SET_PITCH: + return MovementSetPitchSequence; + case MSG_MOVE_START_ASCEND: + return MovementStartAscendSequence; + case MSG_MOVE_START_BACKWARD: + return MovementStartBackwardSequence; + case MSG_MOVE_START_DESCEND: + return MovementStartDescendSequence; + case MSG_MOVE_START_FORWARD: + return MovementStartForwardSequence; + case MSG_MOVE_START_PITCH_DOWN: + return MovementStartPitchDownSequence; + case MSG_MOVE_START_PITCH_UP: + return MovementStartPitchUpSequence; + case MSG_MOVE_START_STRAFE_LEFT: + return MovementStartStrafeLeftSequence; + case MSG_MOVE_START_STRAFE_RIGHT: + return MovementStartStrafeRightSequence; + case MSG_MOVE_START_SWIM: + return MovementStartSwimSequence; + case MSG_MOVE_START_TURN_LEFT: + return MovementStartTurnLeftSequence; + case MSG_MOVE_START_TURN_RIGHT: + return MovementStartTurnRightSequence; + case MSG_MOVE_STOP: + return MovementStopSequence; + case MSG_MOVE_STOP_ASCEND: + return MovementStopAscendSequence; + case MSG_MOVE_STOP_PITCH: + return MovementStopPitchSequence; + case MSG_MOVE_STOP_STRAFE: + return MovementStopStrafeSequence; + case MSG_MOVE_STOP_SWIM: + return MovementStopSwimSequence; + case MSG_MOVE_STOP_TURN: + return MovementStopTurnSequence; + case SMSG_PLAYER_MOVE: + return PlayerMoveSequence; + case CMSG_MOVE_CHNG_TRANSPORT: + return MoveChngTransport; + case CMSG_MOVE_SPLINE_DONE: + return MoveSplineDone; + case CMSG_MOVE_NOT_ACTIVE_MOVER: + return MoveNotActiveMover; + case CMSG_DISMISS_CONTROLLED_VEHICLE: + return DismissControlledVehicle; + case SMSG_MOVE_UPDATE_TELEPORT: + return MoveUpdateTeleport; + case CMSG_FORCE_MOVE_ROOT_ACK: + return ForceMoveRootAck; + case CMSG_FORCE_MOVE_UNROOT_ACK: + return ForceMoveUnrootAck; + case CMSG_MOVE_FALL_RESET: + return MovementFallReset; + case CMSG_MOVE_FEATHER_FALL_ACK: + return MovementFeatherFallAck; + case CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK: + return MovementForceFlightSpeedChangeAck; + case CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK: + return MovementForceRunBackSpeedChangeAck; + case CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK: + return MovementForceRunSpeedChangeAck; + case CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK: + return MovementForceSwimSpeedChangeAck; + case CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK: + return MovementForceWalkSpeedChangeAck; + case CMSG_MOVE_GRAVITY_DISABLE_ACK: + return MovementGravityDisableAck; + case CMSG_MOVE_GRAVITY_ENABLE_ACK: + return MovementGravityEnableAck; + case CMSG_MOVE_HOVER_ACK: + return MovementHoverAck; + case CMSG_MOVE_KNOCK_BACK_ACK: + return MovementKnockBackAck; + case CMSG_MOVE_SET_CAN_FLY: + return MovementSetCanFly; + case CMSG_MOVE_SET_CAN_FLY_ACK: + return MovementSetCanFlyAck; + case CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK: + return MovementSetCanTransitionBetweenSwimAndFlyAck; + case SMSG_MOVE_SET_COLLISION_HEIGHT: + return MoveSetCollisionHeight; + case CMSG_MOVE_SET_COLLISION_HEIGHT_ACK: + return MovementSetCollisionHeightAck; + case SMSG_MOVE_UPDATE_COLLISION_HEIGHT: + return MovementUpdateCollisionHeight; + case CMSG_MOVE_WATER_WALK_ACK: + return MovementWaterWalkAck; + case MSG_MOVE_SET_RUN_MODE: + return MovementSetRunMode; + case MSG_MOVE_SET_WALK_MODE: + return MovementSetWalkMode; + case SMSG_MOVE_UPDATE_FLIGHT_SPEED: + return MovementUpdateFlightSpeed; + case SMSG_MOVE_UPDATE_RUN_SPEED: + return MovementUpdateRunSpeed; + case SMSG_MOVE_UPDATE_KNOCK_BACK: + return MovementUpdateKnockBack; + case SMSG_MOVE_UPDATE_RUN_BACK_SPEED: + return MovementUpdateRunBackSpeed; + case SMSG_MOVE_UPDATE_SWIM_SPEED: + return MovementUpdateSwimSpeed; + case SMSG_MOVE_UPDATE_WALK_SPEED: + return MovementUpdateWalkSpeed; + case SMSG_SPLINE_MOVE_SET_WALK_SPEED: + return SplineMoveSetWalkSpeed; + case SMSG_SPLINE_MOVE_SET_RUN_SPEED: + return SplineMoveSetRunSpeed; + case SMSG_SPLINE_MOVE_SET_RUN_BACK_SPEED: + return SplineMoveSetRunBackSpeed; + case SMSG_SPLINE_MOVE_SET_SWIM_SPEED: + return SplineMoveSetSwimSpeed; + case SMSG_SPLINE_MOVE_SET_SWIM_BACK_SPEED: + return SplineMoveSetSwimBackSpeed; + case SMSG_SPLINE_MOVE_SET_TURN_RATE: + return SplineMoveSetTurnRate; + case SMSG_SPLINE_MOVE_SET_FLIGHT_SPEED: + return SplineMoveSetFlightSpeed; + case SMSG_SPLINE_MOVE_SET_FLIGHT_BACK_SPEED: + return SplineMoveSetFlightBackSpeed; + case SMSG_SPLINE_MOVE_SET_PITCH_RATE: + return SplineMoveSetPitchRate; + case SMSG_MOVE_SET_WALK_SPEED: + return MoveSetWalkSpeed; + case SMSG_MOVE_SET_RUN_SPEED: + return MoveSetRunSpeed; + case SMSG_MOVE_SET_RUN_BACK_SPEED: + return MoveSetRunBackSpeed; + case SMSG_MOVE_SET_SWIM_SPEED: + return MoveSetSwimSpeed; + case SMSG_MOVE_SET_SWIM_BACK_SPEED: + return MoveSetSwimBackSpeed; + case SMSG_MOVE_SET_TURN_RATE: + return MoveSetTurnRate; + case SMSG_MOVE_SET_FLIGHT_SPEED: + return MoveSetFlightSpeed; + case SMSG_MOVE_SET_FLIGHT_BACK_SPEED: + return MoveSetFlightBackSpeed; + case SMSG_MOVE_SET_PITCH_RATE: + return MoveSetPitchRate; + case SMSG_SPLINE_MOVE_SET_WALK_MODE: + return SplineMoveSetWalkMode; + case SMSG_SPLINE_MOVE_SET_RUN_MODE: + return SplineMoveSetRunMode; + case SMSG_SPLINE_MOVE_GRAVITY_DISABLE: + return SplineMoveGravityDisable; + case SMSG_SPLINE_MOVE_GRAVITY_ENABLE: + return SplineMoveGravityEnable; + case SMSG_SPLINE_MOVE_SET_HOVER: + return SplineMoveSetHover; + case SMSG_SPLINE_MOVE_UNSET_HOVER: + return SplineMoveUnsetHover; + case SMSG_MOVE_SET_CAN_FLY: + return MoveSetCanFly; + case SMSG_MOVE_UNSET_CAN_FLY: + return MoveUnsetCanFly; + case SMSG_MOVE_SET_HOVER: + return MoveSetHover; + case SMSG_MOVE_UNSET_HOVER: + return MoveUnsetHover; + case SMSG_MOVE_WATER_WALK: + return MoveWaterWalk; + case SMSG_MOVE_LAND_WALK: + return MoveLandWalk; + case SMSG_MOVE_FEATHER_FALL: + return MoveFeatherFall; + case SMSG_MOVE_NORMAL_FALL: + return MoveNormalFall; + default: + break; + } + + return NULL; +} -- cgit v1.2.3