aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Object/Object.cpp684
-rw-r--r--src/server/game/Entities/Object/Object.h12
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.cpp1
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.h6
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateData.cpp9
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateData.h26
-rw-r--r--src/server/game/Entities/Player/Player.cpp24
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp2
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp24
-rw-r--r--src/server/game/Entities/Vehicle/Vehicle.cpp1
-rw-r--r--src/server/game/Movement/MovementStructures.cpp408
-rw-r--r--src/server/game/Movement/MovementStructures.h8
-rw-r--r--src/server/game/Movement/Spline/MovementPacketBuilder.cpp133
-rw-r--r--src/server/game/Movement/Spline/MovementPacketBuilder.h3
14 files changed, 716 insertions, 625 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index fa9634add80..e4313032d6f 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -177,7 +177,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
return;
uint8 updateType = UPDATETYPE_CREATE_OBJECT;
- uint16 flags = m_updateFlag;
+ uint32 flags = m_updateFlag;
/** lower flag1 **/
if (target == this) // building packet for yourself
@@ -239,7 +239,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
flags |= UPDATEFLAG_ANIMKITS;
}
- ByteBuffer buf(500);
+ ByteBuffer buf(0x400);
buf << uint8(updateType);
buf << GetPackGUID();
buf << uint8(m_objectTypeId);
@@ -348,325 +348,177 @@ ObjectGuid const& Object::GetGuidValue(uint16 index) const
return *((ObjectGuid*)&(m_uint32Values[index]));
}
-void Object::BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
-{
- Unit const* self = NULL;
- ObjectGuid guid = GetGUID();
- uint32 movementFlags = 0;
- uint16 movementFlagsExtra = 0;
-
- bool hasTransportTime2 = false;
- bool hasTransportTime3 = false;
- bool hasFallDirection = false;
- bool hasFallData = false;
- bool hasPitch = false;
- bool hasSpline = false;
- bool hasSplineElevation = false;
-
- uint32 stopFrameCount = 0;
+void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const
+{
+ bool NoBirthAnim = false;
+ bool EnablePortals = false;
+ bool PlayHoverAnim = false;
+ bool IsSuppressingGreetings = false;
+ bool HasMovementUpdate = flags & UPDATEFLAG_LIVING;
+ bool HasMovementTransport = flags & UPDATEFLAG_GO_TRANSPORT_POSITION;
+ bool Stationary = flags & UPDATEFLAG_STATIONARY_POSITION;
+ bool CombatVictim = flags & UPDATEFLAG_HAS_TARGET;
+ bool ServerTime = flags & UPDATEFLAG_TRANSPORT;
+ bool VehicleCreate = flags & UPDATEFLAG_VEHICLE;
+ bool AnimKitCreate = flags & UPDATEFLAG_ANIMKITS;
+ bool Rotation = flags & UPDATEFLAG_ROTATION;
+ bool HasAreaTrigger = false;
+ bool HasGameObject = false;
+ bool ThisIsYou = flags & UPDATEFLAG_SELF;
+ bool ReplaceActive = false;
+ bool SceneObjCreate = false;
+ bool ScenePendingInstances = false;
+ uint32 PauseTimesCount = 0;
if (GameObject const* go = ToGameObject())
if (go->GetGoType() == GAMEOBJECT_TYPE_TRANSPORT)
- stopFrameCount = go->GetGOValue()->Transport.StopFrames->size();
-
- // Bit content
- data->WriteBit(0);
- data->WriteBit(0);
- data->WriteBit(flags & UPDATEFLAG_ROTATION);
- data->WriteBit(flags & UPDATEFLAG_ANIMKITS);
- data->WriteBit(flags & UPDATEFLAG_HAS_TARGET);
- data->WriteBit(flags & UPDATEFLAG_SELF);
- data->WriteBit(flags & UPDATEFLAG_VEHICLE);
- data->WriteBit(flags & UPDATEFLAG_LIVING);
- data->WriteBits(stopFrameCount, 24);
- data->WriteBit(0);
- data->WriteBit(flags & UPDATEFLAG_GO_TRANSPORT_POSITION);
- data->WriteBit(flags & UPDATEFLAG_STATIONARY_POSITION);
- data->WriteBit(flags & UPDATEFLAG_UNK5);
- data->WriteBit(0);
- data->WriteBit(flags & UPDATEFLAG_TRANSPORT);
-
- if (flags & UPDATEFLAG_LIVING)
- {
- self = ToUnit();
- movementFlags = self->m_movementInfo.GetMovementFlags();
- movementFlagsExtra = self->m_movementInfo.GetExtraMovementFlags();
- hasSpline = self->IsSplineEnabled();
-
- hasTransportTime2 = !self->m_movementInfo.transport.guid.IsEmpty() && self->m_movementInfo.transport.time2 != 0;
- hasTransportTime3 = false;
- hasPitch = self->HasUnitMovementFlag(MovementFlags(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || self->HasExtraUnitMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING);
- hasFallDirection = self->HasUnitMovementFlag(MOVEMENTFLAG_FALLING);
- hasFallData = hasFallDirection || self->m_movementInfo.jump.fallTime != 0;
- hasSplineElevation = self->HasUnitMovementFlag(MOVEMENTFLAG_SPLINE_ELEVATION);
-
- if (GetTypeId() == TYPEID_UNIT)
- movementFlags &= MOVEMENTFLAG_MASK_CREATURE_ALLOWED;
-
- data->WriteBit(!movementFlags);
- data->WriteBit(G3D::fuzzyEq(self->GetOrientation(), 0.0f)); // Has Orientation
- data->WriteBit(guid[7]);
- data->WriteBit(guid[3]);
- data->WriteBit(guid[2]);
- if (movementFlags)
- data->WriteBits(movementFlags, 30);
-
- data->WriteBit(hasSpline && GetTypeId() == TYPEID_PLAYER); // Has spline (from MovementInfo)
- data->WriteBit(!hasPitch); // Has pitch
- data->WriteBit(hasSpline); // Has spline data (independent)
- data->WriteBit(hasFallData); // Has fall data
- data->WriteBit(!hasSplineElevation); // Has spline elevation
- data->WriteBit(guid[5]);
- data->WriteBit(!self->m_movementInfo.transport.guid.IsEmpty()); // Has transport data
- data->WriteBit(0); // Is missing time
-
- if (!self->m_movementInfo.transport.guid.IsEmpty())
- {
- ObjectGuid transGuid = self->m_movementInfo.transport.guid;
-
- data->WriteBit(transGuid[1]);
- data->WriteBit(hasTransportTime2); // Has transport time 2
- data->WriteBit(transGuid[4]);
- data->WriteBit(transGuid[0]);
- data->WriteBit(transGuid[6]);
- data->WriteBit(hasTransportTime3); // Has transport time 3
- data->WriteBit(transGuid[7]);
- data->WriteBit(transGuid[5]);
- data->WriteBit(transGuid[3]);
- data->WriteBit(transGuid[2]);
- }
-
- data->WriteBit(guid[4]);
-
- if (hasSpline)
- Movement::PacketBuilder::WriteCreateBits(*self->movespline, *data);
-
- data->WriteBit(guid[6]);
- if (hasFallData)
- data->WriteBit(hasFallDirection);
-
- data->WriteBit(guid[0]);
- data->WriteBit(guid[1]);
- data->WriteBit(0);
- data->WriteBit(!movementFlagsExtra);
- if (movementFlagsExtra)
- data->WriteBits(movementFlagsExtra, 12);
- }
-
- if (flags & UPDATEFLAG_GO_TRANSPORT_POSITION)
- {
- WorldObject const* self = static_cast<WorldObject const*>(this);
- ObjectGuid transGuid = self->m_movementInfo.transport.guid;
- data->WriteBit(transGuid[5]);
- data->WriteBit(0); // Has GO transport time 3
- data->WriteBit(transGuid[0]);
- data->WriteBit(transGuid[3]);
- data->WriteBit(transGuid[6]);
- data->WriteBit(transGuid[1]);
- data->WriteBit(transGuid[4]);
- data->WriteBit(transGuid[2]);
- data->WriteBit(0); // Has GO transport time 2
- data->WriteBit(transGuid[7]);
- }
-
- if (flags & UPDATEFLAG_HAS_TARGET)
- {
- ObjectGuid victimGuid = self->GetVictim()->GetGUID(); // checked in BuildCreateUpdateBlockForPlayer
- data->WriteBit(victimGuid[2]);
- data->WriteBit(victimGuid[7]);
- data->WriteBit(victimGuid[0]);
- data->WriteBit(victimGuid[4]);
- data->WriteBit(victimGuid[5]);
- data->WriteBit(victimGuid[6]);
- data->WriteBit(victimGuid[1]);
- data->WriteBit(victimGuid[3]);
- }
-
- if (flags & UPDATEFLAG_ANIMKITS)
+ PauseTimesCount = go->GetGOValue()->Transport.StopFrames->size();
+
+ data->WriteBit(NoBirthAnim);
+ data->WriteBit(EnablePortals);
+ data->WriteBit(PlayHoverAnim);
+ data->WriteBit(IsSuppressingGreetings);
+ data->WriteBit(HasMovementUpdate);
+ data->WriteBit(HasMovementTransport);
+ data->WriteBit(Stationary);
+ data->WriteBit(CombatVictim);
+ data->WriteBit(ServerTime);
+ data->WriteBit(VehicleCreate);
+ data->WriteBit(AnimKitCreate);
+ data->WriteBit(Rotation);
+ data->WriteBit(HasAreaTrigger);
+ data->WriteBit(HasGameObject);
+ data->WriteBit(ThisIsYou);
+ data->WriteBit(ReplaceActive);
+ data->WriteBit(SceneObjCreate);
+ data->WriteBit(ScenePendingInstances);
+ *data << uint32(PauseTimesCount);
+
+ if (HasMovementUpdate)
{
Unit const* unit = ToUnit();
- data->WriteBit(unit->GetAIAnimKitId() == 0);
- data->WriteBit(unit->GetMovementAnimKitId() == 0);
- data->WriteBit(unit->GetMeleeAnimKitId() == 0);
- }
+ bool HasFallDirection = unit->HasUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ bool HasFall = HasFallDirection || unit->m_movementInfo.jump.fallTime != 0;
+ bool HasSpline = unit->IsSplineEnabled();
- data->FlushBits();
+ *data << unit->m_movementInfo.guid; // MoverGUID
- // Data
- if (GameObject const* go = ToGameObject())
- for (uint32 i = 0; i < stopFrameCount; ++i)
- *data << uint32(go->GetGOValue()->Transport.StopFrames->at(i));
+ *data << uint32(unit->m_movementInfo.time); // MoveIndex
+ *data << float(unit->GetPositionX());
+ *data << float(unit->GetPositionY());
+ *data << float(unit->GetPositionZ());
+ *data << float(unit->GetOrientation());
- if (flags & UPDATEFLAG_LIVING)
- {
- data->WriteByteSeq(guid[4]);
- *data << self->GetSpeed(MOVE_RUN_BACK);
+ *data << float(unit->m_movementInfo.pitch); // Pitch
+ *data << float(unit->m_movementInfo.splineElevation); // StepUpStartElevation
- if (hasFallData)
- {
- if (hasFallDirection)
- {
- *data << float(self->m_movementInfo.jump.xyspeed);
- *data << float(self->m_movementInfo.jump.sinAngle);
- *data << float(self->m_movementInfo.jump.cosAngle);
- }
-
- *data << uint32(self->m_movementInfo.jump.fallTime);
- *data << float(self->m_movementInfo.jump.zspeed);
- }
-
- *data << self->GetSpeed(MOVE_SWIM_BACK);
- if (hasSplineElevation)
- *data << float(self->m_movementInfo.splineElevation);
+ uint32 removeMovementForcesCount = 0;
+ *data << uint32(removeMovementForcesCount); // Count of RemoveForcesIDs
+ *data << uint32(0); // Unknown
- if (hasSpline)
- Movement::PacketBuilder::WriteCreateData(*self->movespline, *data);
+ //for (uint32 i = 0; i < removeMovementForcesCount; ++i)
+ // *data << ObjectGuid(RemoveForcesIDs);
- *data << float(self->GetPositionZMinusOffset());
- data->WriteByteSeq(guid[5]);
+ data->WriteBits(unit->GetUnitMovementFlags(), 30);
+ data->WriteBits(unit->GetExtraUnitMovementFlags(), 15);
+ data->WriteBit(!unit->m_movementInfo.transport.guid.IsEmpty()); // HasTransport
+ data->WriteBit(HasFall); // HasFall
+ data->WriteBit(HasSpline); // HasSpline - marks that the unit uses spline movement
+ data->WriteBit(0); // HeightChangeFailed
- if (!self->m_movementInfo.transport.guid.IsEmpty())
+ if (!unit->m_movementInfo.transport.guid.IsEmpty())
{
- ObjectGuid transGuid = self->m_movementInfo.transport.guid;
-
- data->WriteByteSeq(transGuid[5]);
- data->WriteByteSeq(transGuid[7]);
- *data << uint32(self->GetTransTime());
- *data << float(self->GetTransOffsetO());
- if (hasTransportTime2)
- *data << uint32(self->m_movementInfo.transport.time2);
-
- *data << float(self->GetTransOffsetY());
- *data << float(self->GetTransOffsetX());
- data->WriteByteSeq(transGuid[3]);
- *data << float(self->GetTransOffsetZ());
- data->WriteByteSeq(transGuid[0]);
- if (hasTransportTime3)
- *data << uint32(self->m_movementInfo.transport.time3);
-
- *data << int8(self->GetTransSeat());
- data->WriteByteSeq(transGuid[1]);
- data->WriteByteSeq(transGuid[6]);
- data->WriteByteSeq(transGuid[2]);
- data->WriteByteSeq(transGuid[4]);
+ *data << unit->m_movementInfo.transport.guid; // Transport Guid
+ *data << float(unit->GetTransOffsetX());
+ *data << float(unit->GetTransOffsetY());
+ *data << float(unit->GetTransOffsetZ());
+ *data << float(unit->GetTransOffsetO());
+ *data << int8(unit->m_movementInfo.transport.seat); // VehicleSeatIndex
+ *data << uint32(unit->m_movementInfo.transport.time); // MoveTime
+
+ data->WriteBit(unit->m_movementInfo.transport.prevTime != 0);
+ data->WriteBit(unit->m_movementInfo.transport.vehicleId != 0);
+
+ if (unit->m_movementInfo.transport.prevTime)
+ *data << uint32(unit->m_movementInfo.transport.prevTime); // PrevMoveTime
+
+ if (unit->m_movementInfo.transport.vehicleId)
+ *data << uint32(unit->m_movementInfo.transport.vehicleId); // VehicleRecID
}
- *data << float(self->GetPositionX());
- *data << self->GetSpeed(MOVE_PITCH_RATE);
- data->WriteByteSeq(guid[3]);
- data->WriteByteSeq(guid[0]);
- *data << self->GetSpeed(MOVE_SWIM);
- *data << float(self->GetPositionY());
- data->WriteByteSeq(guid[7]);
- data->WriteByteSeq(guid[1]);
- data->WriteByteSeq(guid[2]);
- *data << self->GetSpeed(MOVE_WALK);
+ if (HasFall)
+ {
+ *data << uint32(unit->m_movementInfo.jump.fallTime); // Time
+ *data << float(unit->m_movementInfo.jump.zspeed); // JumpVelocity
- //if (true) // Has time, controlled by bit just after HasTransport
- *data << uint32(getMSTime());
+ if (data->WriteBit(HasFallDirection))
+ {
+ *data << float(unit->m_movementInfo.jump.sinAngle); // Direction
+ *data << float(unit->m_movementInfo.jump.cosAngle);
+ *data << float(unit->m_movementInfo.jump.xyspeed); // Speed
+ }
+ }
- *data << self->GetSpeed(MOVE_TURN_RATE);
- data->WriteByteSeq(guid[6]);
- *data << self->GetSpeed(MOVE_FLIGHT);
- if (!G3D::fuzzyEq(self->GetOrientation(), 0.0f))
- *data << float(self->GetOrientation());
+ *data << float(unit->GetSpeed(MOVE_WALK));
+ *data << float(unit->GetSpeed(MOVE_RUN));
+ *data << float(unit->GetSpeed(MOVE_RUN_BACK));
+ *data << float(unit->GetSpeed(MOVE_SWIM));
+ *data << float(unit->GetSpeed(MOVE_SWIM_BACK));
+ *data << float(unit->GetSpeed(MOVE_FLIGHT));
+ *data << float(unit->GetSpeed(MOVE_FLIGHT_BACK));
+ *data << float(unit->GetSpeed(MOVE_TURN_RATE));
+ *data << float(unit->GetSpeed(MOVE_PITCH_RATE));
- *data << self->GetSpeed(MOVE_RUN);
- if (hasPitch)
- *data << float(self->m_movementInfo.pitch);
+ uint32 MovementForceCount = 0;
+ *data << uint32(MovementForceCount);
- *data << self->GetSpeed(MOVE_FLIGHT_BACK);
- }
+ //for (uint32 i = 0; i < MovementForceCount; ++i)
+ //{
+ // *data << ObjectGuid(ID);
+ // *data << Vector3(Direction);
+ // *data << int32(TransportID);
+ // *data << float(Magnitude);
+ // *data << uint8(Type);
+ //}
- if (flags & UPDATEFLAG_VEHICLE)
- {
- *data << float(self->GetOrientation());
- *data << uint32(self->GetVehicleKit()->GetVehicleInfo()->m_ID);
+ // HasMovementSpline - marks that spline data is present in packet
+ if (data->WriteBit(HasSpline))
+ Movement::PacketBuilder::WriteCreate(*unit->movespline, *data);
}
- if (flags & UPDATEFLAG_GO_TRANSPORT_POSITION)
+ if (HasMovementTransport)
{
WorldObject const* self = static_cast<WorldObject const*>(this);
- ObjectGuid transGuid = self->m_movementInfo.transport.guid;
-
- data->WriteBit(transGuid[0]);
- data->WriteBit(transGuid[5]);
- if (hasTransportTime3)
- *data << uint32(self->m_movementInfo.transport.time3);
-
- data->WriteBit(transGuid[3]);
+ *data << self->m_movementInfo.transport.guid; // Transport Guid
*data << float(self->GetTransOffsetX());
- data->WriteBit(transGuid[4]);
- data->WriteBit(transGuid[6]);
- data->WriteBit(transGuid[1]);
- *data << uint32(self->GetTransTime());
*data << float(self->GetTransOffsetY());
- data->WriteBit(transGuid[2]);
- data->WriteBit(transGuid[7]);
*data << float(self->GetTransOffsetZ());
- *data << int8(self->GetTransSeat());
*data << float(self->GetTransOffsetO());
- if (hasTransportTime2)
- *data << uint32(self->m_movementInfo.transport.time2);
- }
-
- if (flags & UPDATEFLAG_ROTATION)
- *data << uint64(ToGameObject()->GetRotation());
-
- if (flags & UPDATEFLAG_UNK5)
- {
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << uint8(0);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
- *data << float(0.0f);
+ *data << int8(self->m_movementInfo.transport.seat); // VehicleSeatIndex
+ *data << uint32(self->m_movementInfo.transport.time); // MoveTime
+
+ data->WriteBit(self->m_movementInfo.transport.prevTime != 0);
+ data->WriteBit(self->m_movementInfo.transport.vehicleId != 0);
+
+ if (self->m_movementInfo.transport.prevTime)
+ *data << uint32(self->m_movementInfo.transport.prevTime); // PrevMoveTime
+
+ if (self->m_movementInfo.transport.vehicleId)
+ *data << uint32(self->m_movementInfo.transport.vehicleId); // VehicleRecID
}
- if (flags & UPDATEFLAG_STATIONARY_POSITION)
+ if (Stationary)
{
WorldObject const* self = static_cast<WorldObject const*>(this);
- *data << float(self->GetStationaryO());
*data << float(self->GetStationaryX());
*data << float(self->GetStationaryY());
*data << float(self->GetStationaryZ());
+ *data << float(self->GetStationaryO());
}
- if (flags & UPDATEFLAG_HAS_TARGET)
- {
- ObjectGuid victimGuid = self->GetVictim()->GetGUID(); // checked in BuildCreateUpdateBlockForPlayer
- data->WriteByteSeq(victimGuid[4]);
- data->WriteByteSeq(victimGuid[0]);
- data->WriteByteSeq(victimGuid[3]);
- data->WriteByteSeq(victimGuid[5]);
- data->WriteByteSeq(victimGuid[7]);
- data->WriteByteSeq(victimGuid[6]);
- data->WriteByteSeq(victimGuid[2]);
- data->WriteByteSeq(victimGuid[1]);
- }
+ if (CombatVictim)
+ *data << ToUnit()->GetVictim()->GetGUID(); // CombatVictim
- if (flags & UPDATEFLAG_ANIMKITS)
- {
- Unit const* unit = ToUnit();
- if (unit->GetAIAnimKitId())
- *data << uint16(unit->GetAIAnimKitId());
- if (unit->GetMovementAnimKitId())
- *data << uint16(unit->GetMovementAnimKitId());
- if (unit->GetMeleeAnimKitId())
- *data << uint16(unit->GetMeleeAnimKitId());
- }
-
- if (flags & UPDATEFLAG_TRANSPORT)
+ if (ServerTime)
{
GameObject const* go = ToGameObject();
/** @TODO Use IsTransport() to also handle type 11 (TRANSPORT)
@@ -674,11 +526,267 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
this causes clients to receive different PathProgress
resulting in players seeing the object in a different position
*/
- if (go && go->ToTransport())
+ if (go && go->ToTransport()) // ServerTime
*data << uint32(go->GetGOValue()->Transport.PathProgress);
else
*data << uint32(getMSTime());
}
+
+ if (VehicleCreate)
+ {
+ Unit const* unit = ToUnit();
+ *data << uint32(unit->GetVehicleKit()->GetVehicleInfo()->m_ID); // RecID
+ *data << float(unit->GetOrientation()); // InitialRawFacing
+ }
+
+ if (AnimKitCreate)
+ {
+ Unit const* unit = ToUnit();
+ *data << uint16(unit->GetAIAnimKitId()); // AiID
+ *data << uint16(unit->GetMovementAnimKitId()); // MovementID
+ *data << uint16(unit->GetMeleeAnimKitId()); // MeleeID
+ }
+
+ if (Rotation)
+ *data << uint64(ToGameObject()->GetRotation()); // Rotation
+
+ //if (AreaTrigger)
+ //{
+ // packet.ReadInt32("ElapsedMs", index);
+
+ // packet.ReadVector3("RollPitchYaw1", index);
+
+ // packet.ResetBitReader();
+
+ // var HasAbsoluteOrientation = packet.ReadBit("HasAbsoluteOrientation", index);
+ // var HasDynamicShape = packet.ReadBit("HasDynamicShape", index);
+ // var HasAttached = packet.ReadBit("HasAttached", index);
+ // var HasFaceMovementDir = packet.ReadBit("HasFaceMovementDir", index);
+ // var HasFollowsTerrain = packet.ReadBit("HasFollowsTerrain", index);
+ // var HasTargetRollPitchYaw = packet.ReadBit("HasTargetRollPitchYaw", index);
+ // var HasScaleCurveID = packet.ReadBit("HasScaleCurveID", index);
+ // var HasMorphCurveID = packet.ReadBit("HasMorphCurveID", index);
+ // var HasFacingCurveID = packet.ReadBit("HasFacingCurveID", index);
+ // var HasMoveCurveID = packet.ReadBit("HasMoveCurveID", index);
+ // var HasAreaTriggerSphere = packet.ReadBit("HasAreaTriggerSphere", index);
+ // var HasAreaTriggerBox = packet.ReadBit("HasAreaTriggerBox", index);
+ // var HasAreaTriggerPolygon = packet.ReadBit("HasAreaTriggerPolygon", index);
+ // var HasAreaTriggerCylinder = packet.ReadBit("HasAreaTriggerCylinder", index);
+ // var HasAreaTriggerSpline = packet.ReadBit("HasAreaTriggerSpline", index);
+
+ // if (HasTargetRollPitchYaw)
+ // packet.ReadVector3("TargetRollPitchYaw", index);
+
+ // if (HasScaleCurveID)
+ // packet.ReadInt32("ScaleCurveID, index");
+
+ // if (HasMorphCurveID)
+ // packet.ReadInt32("MorphCurveID", index);
+
+ // if (HasFacingCurveID)
+ // packet.ReadInt32("FacingCurveID", index);
+
+ // if (HasMoveCurveID)
+ // packet.ReadInt32("MoveCurveID", index);
+
+ // if (HasAreaTriggerSphere)
+ // {
+ // packet.ReadSingle("Radius", index);
+ // packet.ReadSingle("RadiusTarget", index);
+ // }
+
+ // if (HasAreaTriggerBox)
+ // {
+ // packet.ReadVector3("Extents", index);
+ // packet.ReadVector3("ExtentsTarget", index);
+ // }
+
+ // if (HasAreaTriggerPolygon)
+ // {
+ // var VerticesCount = packet.ReadInt32("VerticesCount", index);
+ // var VerticesTargetCount = packet.ReadInt32("VerticesTargetCount", index);
+ // packet.ReadSingle("Height", index);
+ // packet.ReadSingle("HeightTarget", index);
+
+ // for (var i = 0; i < VerticesCount; ++i)
+ // packet.ReadVector2("Vertices", index, i);
+
+ // for (var i = 0; i < VerticesTargetCount; ++i)
+ // packet.ReadVector2("VerticesTarget", index, i);
+ // }
+
+ // if (HasAreaTriggerCylinder)
+ // {
+ // packet.ReadSingle("Radius", index);
+ // packet.ReadSingle("RadiusTarget", index);
+ // packet.ReadSingle("Height", index);
+ // packet.ReadSingle("HeightTarget", index);
+ // packet.ReadSingle("Float4", index);
+ // packet.ReadSingle("Float5", index);
+ // }
+
+ // if (HasAreaTriggerSpline)
+ // {
+ // packet.ReadInt32("TimeToTarget", index);
+ // packet.ReadInt32("ElapsedTimeForMovement", index);
+ // var int8 = packet.ReadInt32("VerticesCount", index);
+
+ // for (var i = 0; i < int8; ++i)
+ // packet.ReadVector3("Points", index, i);
+ // }
+ //}
+
+ //if (GameObject)
+ //{
+ // packet.ReadInt32("WorldEffectID", index);
+
+ // packet.ResetBitReader();
+
+ // var bit8 = packet.ReadBit("bit8", index);
+ // if (bit8)
+ // packet.ReadInt32("Int1", index);
+ //}
+
+ //if (SceneObjCreate)
+ //{
+ // packet.ResetBitReader();
+
+ // var CliSceneLocalScriptData = packet.ReadBit("CliSceneLocalScriptData", index);
+ // var PetBattleFullUpdate = packet.ReadBit("PetBattleFullUpdate", index);
+
+ // if (CliSceneLocalScriptData)
+ // {
+ // packet.ResetBitReader();
+ // var DataLength = packet.ReadBits(7);
+ // packet.ReadWoWString("Data", DataLength, index);
+ // }
+
+ // if (PetBattleFullUpdate)
+ // {
+ // for (var i = 0; i < 2; ++i)
+ // {
+ // packet.ReadPackedGuid128("CharacterID", index, i);
+
+ // packet.ReadInt32("TrapAbilityID", index, i);
+ // packet.ReadInt32("TrapStatus", index, i);
+
+ // packet.ReadInt16("RoundTimeSecs", index, i);
+
+ // packet.ReadByte("FrontPet", index, i);
+ // packet.ReadByte("InputFlags", index, i);
+
+ // packet.ResetBitReader();
+
+ // var PetBattlePetUpdateCount = packet.ReadBits("PetBattlePetUpdateCount", 2, index, i);
+
+ // for (var j = 0; j < PetBattlePetUpdateCount; ++j)
+ // {
+ // packet.ReadPackedGuid128("BattlePetGUID", index, i, j);
+
+ // packet.ReadInt32("SpeciesID", index, i, j);
+ // packet.ReadInt32("DisplayID", index, i, j);
+ // packet.ReadInt32("CollarID", index, i, j);
+
+ // packet.ReadInt16("Level", index, i, j);
+ // packet.ReadInt16("Xp", index, i, j);
+
+
+ // packet.ReadInt32("CurHealth", index, i, j);
+ // packet.ReadInt32("MaxHealth", index, i, j);
+ // packet.ReadInt32("Power", index, i, j);
+ // packet.ReadInt32("Speed", index, i, j);
+ // packet.ReadInt32("NpcTeamMemberID", index, i, j);
+
+ // packet.ReadInt16("BreedQuality", index, i, j);
+ // packet.ReadInt16("StatusFlags", index, i, j);
+
+ // packet.ReadByte("Slot", index, i, j);
+
+ // var PetBattleActiveAbility = packet.ReadInt32("PetBattleActiveAbility", index, i, j);
+ // var PetBattleActiveAura = packet.ReadInt32("PetBattleActiveAura", index, i, j);
+ // var PetBattleActiveState = packet.ReadInt32("PetBattleActiveState", index, i, j);
+
+ // for (var k = 0; k < PetBattleActiveAbility; ++k)
+ // {
+ // packet.ReadInt32("AbilityID", index, i, j, k);
+ // packet.ReadInt16("CooldownRemaining", index, i, j, k);
+ // packet.ReadInt16("LockdownRemaining", index, i, j, k);
+ // packet.ReadByte("AbilityIndex", index, i, j, k);
+ // packet.ReadByte("Pboid", index, i, j, k);
+ // }
+
+ // for (var k = 0; k < PetBattleActiveAura; ++k)
+ // {
+ // packet.ReadInt32("AbilityID", index, i, j, k);
+ // packet.ReadInt32("InstanceID", index, i, j, k);
+ // packet.ReadInt32("RoundsRemaining", index, i, j, k);
+ // packet.ReadInt32("CurrentRound", index, i, j, k);
+ // packet.ReadByte("CasterPBOID", index, i, j, k);
+ // }
+
+ // for (var k = 0; k < PetBattleActiveState; ++k)
+ // {
+ // packet.ReadInt32("StateID", index, i, j, k);
+ // packet.ReadInt32("StateValue", index, i, j, k);
+ // }
+
+ // packet.ResetBitReader();
+ // var bits57 = packet.ReadBits(7);
+ // packet.ReadWoWString("CustomName", bits57, index, i, j);
+ // }
+ // }
+
+ // for (var i = 0; i < 3; ++i)
+ // {
+ // var PetBattleActiveAura = packet.ReadInt32("PetBattleActiveAura", index, i);
+ // var PetBattleActiveState = packet.ReadInt32("PetBattleActiveState", index, i);
+
+ // for (var j = 0; j < PetBattleActiveAura; ++j)
+ // {
+ // packet.ReadInt32("AbilityID", index, i, j);
+ // packet.ReadInt32("InstanceID", index, i, j);
+ // packet.ReadInt32("RoundsRemaining", index, i, j);
+ // packet.ReadInt32("CurrentRound", index, i, j);
+ // packet.ReadByte("CasterPBOID", index, i, j);
+ // }
+
+ // for (var j = 0; j < PetBattleActiveState; ++j)
+ // {
+ // packet.ReadInt32("StateID", index, i, j);
+ // packet.ReadInt32("StateValue", index, i, j);
+ // }
+ // }
+
+ // packet.ReadInt16("WaitingForFrontPetsMaxSecs", index);
+ // packet.ReadInt16("PvpMaxRoundTime", index);
+
+ // packet.ReadInt32("CurRound", index);
+ // packet.ReadInt32("NpcCreatureID", index);
+ // packet.ReadInt32("NpcDisplayID", index);
+
+ // packet.ReadByte("CurPetBattleState");
+ // packet.ReadByte("ForfeitPenalty");
+
+ // packet.ReadPackedGuid128("InitialWildPetGUID");
+
+ // packet.ReadBit("IsPVP");
+ // packet.ReadBit("CanAwardXP");
+ // }
+ //}
+
+ //if (ScenePendingInstances)
+ //{
+ // var SceneInstanceIDs = packet.ReadInt32("SceneInstanceIDsCount");
+
+ // for (var i = 0; i < SceneInstanceIDs; ++i)
+ // packet.ReadInt32("SceneInstanceIDs", index, i);
+ //}
+
+ if (GameObject const* go = ToGameObject())
+ for (uint32 i = 0; i < PauseTimesCount; ++i)
+ *data << uint32(go->GetGOValue()->Transport.StopFrames->at(i));
+
+ data->FlushBits();
}
void Object::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) const
@@ -1442,9 +1550,9 @@ void MovementInfo::OutDebug()
TC_LOG_INFO("misc", "seat: %i", transport.seat);
TC_LOG_INFO("misc", "time: %u", transport.time);
if (flags2 & MOVEMENTFLAG2_INTERPOLATED_MOVEMENT)
- TC_LOG_INFO("misc", "time2: %u", transport.time2);
- if (transport.time3)
- TC_LOG_INFO("misc", "time3: %u", transport.time3);
+ TC_LOG_INFO("misc", "prevTime: %u", transport.prevTime);
+ if (transport.vehicleId)
+ TC_LOG_INFO("misc", "vehicleId: %u", transport.vehicleId);
}
if ((flags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (flags2 & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING))
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index b989aca0b17..bae3a8b07c1 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -218,14 +218,14 @@ class Object
uint32 GetUpdateFieldData(Player const* target, uint32*& flags) const;
uint32 GetDynamicUpdateFieldData(Player const* target, uint32*& flags) const;
- void BuildMovementUpdate(ByteBuffer* data, uint16 flags) const;
+ void BuildMovementUpdate(ByteBuffer* data, uint32 flags) const;
virtual void BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, Player* target) const;
virtual void BuildDynamicValuesUpdate(uint8 updatetype, ByteBuffer* data, Player* target) const;
uint16 m_objectType;
TypeID m_objectTypeId;
- uint16 m_updateFlag;
+ uint32 m_updateFlag;
union
{
@@ -411,16 +411,16 @@ struct MovementInfo
pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
seat = -1;
time = 0;
- time2 = 0;
- time3 = 0;
+ prevTime = 0;
+ vehicleId = 0;
}
ObjectGuid guid;
Position pos;
int8 seat;
uint32 time;
- uint32 time2;
- uint32 time3;
+ uint32 prevTime;
+ uint32 vehicleId;
} transport;
// swimming/flying
diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp
index 126916c4364..f59c82d44f5 100644
--- a/src/server/game/Entities/Object/ObjectGuid.cpp
+++ b/src/server/game/Entities/Object/ObjectGuid.cpp
@@ -107,6 +107,7 @@ void PackedGuid::Set(ObjectGuid const& guid)
{
uint8 lowMask = 0;
uint8 highMask = 0;
+ _packedGuid.clear();
_packedGuid << uint8(lowMask);
_packedGuid << uint8(highMask);
diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h
index 247982a2837..378428e3ce5 100644
--- a/src/server/game/Entities/Object/ObjectGuid.h
+++ b/src/server/game/Entities/Object/ObjectGuid.h
@@ -46,13 +46,15 @@ enum TypeMask
{
TYPEMASK_OBJECT = 0x0001,
TYPEMASK_ITEM = 0x0002,
- TYPEMASK_CONTAINER = 0x0006, // TYPEMASK_ITEM | 0x0004
- TYPEMASK_UNIT = 0x0008, // creature
+ TYPEMASK_CONTAINER = 0x0004,
+ TYPEMASK_UNIT = 0x0008,
TYPEMASK_PLAYER = 0x0010,
TYPEMASK_GAMEOBJECT = 0x0020,
TYPEMASK_DYNAMICOBJECT = 0x0040,
TYPEMASK_CORPSE = 0x0080,
TYPEMASK_AREATRIGGER = 0x0100,
+ TYPEMASK_SCENEOBJECT = 0x0200,
+ TYPEMASK_CONVERSATION = 0x0400,
TYPEMASK_SEER = TYPEMASK_PLAYER | TYPEMASK_UNIT | TYPEMASK_DYNAMICOBJECT
};
diff --git a/src/server/game/Entities/Object/Updates/UpdateData.cpp b/src/server/game/Entities/Object/Updates/UpdateData.cpp
index db911dfa267..df7f6fdcc77 100644
--- a/src/server/game/Entities/Object/Updates/UpdateData.cpp
+++ b/src/server/game/Entities/Object/Updates/UpdateData.cpp
@@ -47,18 +47,19 @@ bool UpdateData::BuildPacket(WorldPacket* packet)
ASSERT(packet->empty()); // shouldn't happen
packet->Initialize(SMSG_UPDATE_OBJECT, 2 + 4 + (m_outOfRangeGUIDs.empty() ? 0 : 1 + 4 + 9 * m_outOfRangeGUIDs.size()) + m_data.wpos());
+ *packet << uint32(m_blockCount);
*packet << uint16(m_map);
- *packet << uint32(m_blockCount + (m_outOfRangeGUIDs.empty() ? 0 : 1));
-
- if (!m_outOfRangeGUIDs.empty())
+
+ if (packet->WriteBit(!m_outOfRangeGUIDs.empty()))
{
- *packet << uint8(UPDATETYPE_OUT_OF_RANGE_OBJECTS);
+ *packet << uint16(0);
*packet << uint32(m_outOfRangeGUIDs.size());
for (GuidSet::const_iterator i = m_outOfRangeGUIDs.begin(); i != m_outOfRangeGUIDs.end(); ++i)
*packet << i->WriteAsPacked();
}
+ *packet << uint32(m_data.size());
packet->append(m_data);
return true;
}
diff --git a/src/server/game/Entities/Object/Updates/UpdateData.h b/src/server/game/Entities/Object/Updates/UpdateData.h
index 82958229ea0..2ee0adba299 100644
--- a/src/server/game/Entities/Object/Updates/UpdateData.h
+++ b/src/server/game/Entities/Object/Updates/UpdateData.h
@@ -39,17 +39,21 @@ enum OBJECT_UPDATE_FLAGS
UPDATEFLAG_SELF = 0x0001,
UPDATEFLAG_TRANSPORT = 0x0002,
UPDATEFLAG_HAS_TARGET = 0x0004,
- UPDATEFLAG_UNKNOWN = 0x0008,
- UPDATEFLAG_LOWGUID = 0x0010,
- UPDATEFLAG_LIVING = 0x0020,
- UPDATEFLAG_STATIONARY_POSITION = 0x0040,
- UPDATEFLAG_VEHICLE = 0x0080,
- UPDATEFLAG_GO_TRANSPORT_POSITION = 0x0100,
- UPDATEFLAG_ROTATION = 0x0200,
- UPDATEFLAG_UNK3 = 0x0400,
- UPDATEFLAG_ANIMKITS = 0x0800,
- UPDATEFLAG_UNK5 = 0x1000,
- UPDATEFLAG_UNK6 = 0x2000,
+ UPDATEFLAG_LIVING = 0x0008,
+ UPDATEFLAG_STATIONARY_POSITION = 0x0010,
+ UPDATEFLAG_VEHICLE = 0x0020,
+ UPDATEFLAG_GO_TRANSPORT_POSITION = 0x0040,
+ UPDATEFLAG_ROTATION = 0x0080,
+ UPDATEFLAG_ANIMKITS = 0x0100,
+ //UPDATEFLAG_AREATRIGGER = 0x0200,
+ //UPDATEFLAG_GAMEOBJECT = 0x0400,
+ //UPDATEFLAG_REPLACE_ACTIVE = 0x0800,
+ //UPDATEFLAG_NO_BIRTH_ANIM = 0x1000,
+ //UPDATEFLAG_ENABLE_PORTALS = 0x2000,
+ //UPDATEFLAG_PLAY_HOVER_ANIM = 0x4000,
+ //UPDATEFLAG_IS_SUPPRESSING_GREETINGS = 0x8000
+ //UPDATEFLAG_SCENEOBJECT = 0x10000,
+ //UPDATEFLAG_SCENE_PENDING_INSTANCE = 0x20000
};
class UpdateData
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index a27a9008d63..c38d0103c93 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -27444,8 +27444,8 @@ void Player::ReadMovementInfo(WorldPacket& data, MovementInfo* mi, Movement::Ext
bool hasTimestamp = false;
bool hasOrientation = false;
bool hasTransportData = false;
- bool hasTransportTime2 = false;
- bool hasTransportTime3 = false;
+ bool hasTransportPrevTime = false;
+ bool hasTransportVehicleId = false;
bool hasPitch = false;
bool hasFallData = false;
bool hasFallDirection = false;
@@ -27517,13 +27517,13 @@ void Player::ReadMovementInfo(WorldPacket& data, MovementInfo* mi, Movement::Ext
case MSEHasTransportData:
hasTransportData = data.ReadBit();
break;
- case MSEHasTransportTime2:
+ case MSEHasTransportPrevTime:
if (hasTransportData)
- hasTransportTime2 = data.ReadBit();
+ hasTransportPrevTime = data.ReadBit();
break;
- case MSEHasTransportTime3:
+ case MSEHasTransportVehicleId:
if (hasTransportData)
- hasTransportTime3 = data.ReadBit();
+ hasTransportVehicleId = data.ReadBit();
break;
case MSEHasPitch:
hasPitch = !data.ReadBit();
@@ -27590,13 +27590,13 @@ void Player::ReadMovementInfo(WorldPacket& data, MovementInfo* mi, Movement::Ext
if (hasTransportData)
data >> mi->transport.time;
break;
- case MSETransportTime2:
- if (hasTransportData && hasTransportTime2)
- data >> mi->transport.time2;
+ case MSETransportPrevTime:
+ if (hasTransportData && hasTransportPrevTime)
+ data >> mi->transport.prevTime;
break;
- case MSETransportTime3:
- if (hasTransportData && hasTransportTime3)
- data >> mi->transport.time3;
+ case MSETransportVehicleId:
+ if (hasTransportData && hasTransportVehicleId)
+ data >> mi->transport.vehicleId;
break;
case MSEPitch:
if (hasPitch)
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index 4a13ac78cdf..b11b0f8806e 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -38,7 +38,7 @@ Transport::Transport() : GameObject(),
_triggeredArrivalEvent(false), _triggeredDepartureEvent(false),
_passengerTeleportItr(_passengers.begin()), _delayedAddModel(false)
{
- m_updateFlag = UPDATEFLAG_TRANSPORT | UPDATEFLAG_LOWGUID | UPDATEFLAG_STATIONARY_POSITION | UPDATEFLAG_ROTATION;
+ m_updateFlag = UPDATEFLAG_TRANSPORT | UPDATEFLAG_STATIONARY_POSITION | UPDATEFLAG_ROTATION;
}
Transport::~Transport()
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 596edb6b67e..4593288d548 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -15603,8 +15603,8 @@ void Unit::WriteMovementInfo(WorldPacket& data, Movement::ExtraMovementStatusEle
bool hasTransportData = !GetTransGUID().IsEmpty();
bool hasSpline = IsSplineEnabled();
- bool hasTransportTime2 = hasTransportData && m_movementInfo.transport.time2 != 0;
- bool hasTransportTime3 = false;
+ bool hasTransportPrevTime = hasTransportData && m_movementInfo.transport.prevTime != 0;
+ bool hasTransportVehicleId = hasTransportData && mi.transport.vehicleId != 0;
bool hasPitch = HasUnitMovementFlag(MovementFlags(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || HasExtraUnitMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING);
bool hasFallDirection = HasUnitMovementFlag(MOVEMENTFLAG_FALLING);
bool hasFallData = hasFallDirection || m_movementInfo.jump.fallTime != 0;
@@ -15683,13 +15683,13 @@ void Unit::WriteMovementInfo(WorldPacket& data, Movement::ExtraMovementStatusEle
case MSEHasTransportData:
data.WriteBit(hasTransportData);
break;
- case MSEHasTransportTime2:
+ case MSEHasTransportPrevTime:
if (hasTransportData)
- data.WriteBit(hasTransportTime2);
+ data.WriteBit(hasTransportPrevTime);
break;
- case MSEHasTransportTime3:
+ case MSEHasTransportVehicleId:
if (hasTransportData)
- data.WriteBit(hasTransportTime3);
+ data.WriteBit(hasTransportVehicleId);
break;
case MSEHasPitch:
data.WriteBit(!hasPitch);
@@ -15756,13 +15756,13 @@ void Unit::WriteMovementInfo(WorldPacket& data, Movement::ExtraMovementStatusEle
if (hasTransportData)
data << GetTransTime();
break;
- case MSETransportTime2:
- if (hasTransportData && hasTransportTime2)
- data << mi.transport.time2;
+ case MSETransportPrevTime:
+ if (hasTransportData && hasTransportPrevTime)
+ data << mi.transport.prevTime;
break;
- case MSETransportTime3:
- if (hasTransportData && hasTransportTime3)
- data << mi.transport.time3;
+ case MSETransportVehicleId:
+ if (hasTransportData && hasTransportVehicleId)
+ data << mi.transport.vehicleId;
break;
case MSEPitch:
if (hasPitch)
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index a01d37191d3..d7ced149364 100644
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -800,6 +800,7 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
Passenger->m_movementInfo.transport.time = 0;
Passenger->m_movementInfo.transport.seat = Seat->first;
Passenger->m_movementInfo.transport.guid = Target->GetBase()->GetGUID();
+ Passenger->m_movementInfo.transport.vehicleId = Target->GetVehicleInfo()->m_ID;
if (Target->GetBase()->GetTypeId() == TYPEID_UNIT && Passenger->GetTypeId() == TYPEID_PLAYER &&
Seat->second.SeatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
diff --git a/src/server/game/Movement/MovementStructures.cpp b/src/server/game/Movement/MovementStructures.cpp
index 20011a443d7..85dabf8ed20 100644
--- a/src/server/game/Movement/MovementStructures.cpp
+++ b/src/server/game/Movement/MovementStructures.cpp
@@ -42,13 +42,13 @@ MovementStatusElements const PlayerMove[] =
MSEHasTransportData,
MSEMovementFlags,
MSEHasTransportGuidByte3,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte4,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte2,
MSEHasPitch,
@@ -62,7 +62,7 @@ MovementStatusElements const PlayerMove[] =
MSEGuidByte7,
MSEPositionY,
MSEGuidByte3,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte6,
MSETransportSeat,
MSETransportGuidByte5,
@@ -70,7 +70,7 @@ MovementStatusElements const PlayerMove[] =
MSETransportGuidByte1,
MSETransportOrientation,
MSETransportGuidByte2,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte0,
MSETransportPositionZ,
MSETransportGuidByte7,
@@ -118,8 +118,8 @@ MovementStatusElements const MovementFallLand[] =
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
- MSEHasTransportTime2,
+ MSEHasTransportVehicleId,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte1,
@@ -140,10 +140,10 @@ MovementStatusElements const MovementFallLand[] =
MSETransportPositionY,
MSETransportPositionX,
MSETransportGuidByte5,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte1,
MSETransportSeat,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte4,
MSETransportOrientation,
MSETransportGuidByte0,
@@ -186,10 +186,10 @@ MovementStatusElements const MovementHeartBeat[] =
MSEZeroBit,
MSEHasGuidByte6,
MSEHasMovementFlags,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte2,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte6,
@@ -218,8 +218,8 @@ MovementStatusElements const MovementHeartBeat[] =
MSETransportGuidByte1,
MSETransportGuidByte3,
MSETransportGuidByte7,
- MSETransportTime3,
- MSETransportTime2,
+ MSETransportVehicleId,
+ MSETransportPrevTime,
MSETransportGuidByte2,
MSETransportGuidByte0,
MSETransportGuidByte6,
@@ -265,8 +265,8 @@ MovementStatusElements const MovementJump[] =
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
- MSEHasTransportTime2,
+ MSEHasTransportVehicleId,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte2,
MSEHasFallDirection,
MSEMovementFlags,
@@ -283,10 +283,10 @@ MovementStatusElements const MovementJump[] =
MSETransportGuidByte7,
MSETransportPositionX,
MSETransportGuidByte4,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte0,
MSETransportOrientation,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportTime,
MSETransportGuidByte6,
MSETransportPositionZ,
@@ -330,14 +330,14 @@ MovementStatusElements const MovementSetFacing[] =
MSEHasGuidByte3,
MSEZeroBit,
MSEHasGuidByte1,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte0,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte1,
MSEHasFallDirection,
@@ -354,12 +354,12 @@ MovementStatusElements const MovementSetFacing[] =
MSETransportGuidByte0,
MSETransportPositionX,
MSETransportGuidByte1,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte4,
MSETransportPositionZ,
MSETransportOrientation,
MSETransportGuidByte2,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte3,
MSETransportSeat,
MSETransportPositionY,
@@ -409,9 +409,9 @@ MovementStatusElements const MovementSetPitch[] =
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte5,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte7,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEMovementFlags2,
MSEMovementFlags,
MSEHasFallDirection,
@@ -428,12 +428,12 @@ MovementStatusElements const MovementSetPitch[] =
MSETransportGuidByte6,
MSETransportOrientation,
MSETransportGuidByte1,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportTime,
MSETransportGuidByte2,
MSETransportPositionZ,
MSETransportGuidByte0,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionY,
MSETransportGuidByte5,
MSETransportSeat,
@@ -476,14 +476,14 @@ MovementStatusElements const MovementStartBackward[] =
MSEHasSplineElevation,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte1,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEMovementFlags,
MSEMovementFlags2,
MSEHasFallDirection,
@@ -497,13 +497,13 @@ MovementStatusElements const MovementStartBackward[] =
MSEGuidByte3,
MSETransportPositionZ,
MSETransportGuidByte2,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte0,
MSETransportGuidByte5,
MSETransportPositionY,
MSETransportGuidByte1,
MSETransportPositionX,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte4,
MSETransportOrientation,
MSETransportSeat,
@@ -555,8 +555,8 @@ MovementStatusElements const MovementStartForward[] =
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte1,
- MSEHasTransportTime3,
- MSEHasTransportTime2,
+ MSEHasTransportVehicleId,
+ MSEHasTransportPrevTime,
MSEHasFallDirection,
MSEMovementFlags2,
MSEGuidByte2,
@@ -582,12 +582,12 @@ MovementStatusElements const MovementStartForward[] =
MSETransportGuidByte2,
MSETransportPositionX,
MSETransportGuidByte5,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportTime,
MSETransportGuidByte6,
MSETransportGuidByte0,
MSETransportSeat,
- MSETransportTime2,
+ MSETransportPrevTime,
MSESplineElevation,
MSEPitch,
MSEOrientation,
@@ -620,9 +620,9 @@ MovementStatusElements const MovementStartStrafeLeft[] =
MSEHasMovementFlags,
MSEHasTransportData,
MSEHasFallDirection,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte7,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte6,
@@ -647,10 +647,10 @@ MovementStatusElements const MovementStartStrafeLeft[] =
MSEFallVerticalSpeed,
MSETransportSeat,
MSETransportGuidByte2,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte3,
MSETransportPositionZ,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte0,
MSETransportGuidByte7,
MSETransportPositionY,
@@ -696,11 +696,11 @@ MovementStatusElements const MovementStartStrafeRight[] =
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte0,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEMovementFlags2,
MSEMovementFlags,
MSEHasFallDirection,
@@ -721,11 +721,11 @@ MovementStatusElements const MovementStartStrafeRight[] =
MSETransportGuidByte2,
MSETransportSeat,
MSETransportPositionX,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportTime,
MSETransportGuidByte4,
MSETransportGuidByte7,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionZ,
MSETransportGuidByte3,
MSEPitch,
@@ -767,9 +767,9 @@ MovementStatusElements const MovementStartTurnLeft[] =
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte0,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte5,
@@ -801,8 +801,8 @@ MovementStatusElements const MovementStartTurnLeft[] =
MSETransportGuidByte1,
MSETransportGuidByte3,
MSETransportPositionY,
- MSETransportTime3,
- MSETransportTime2,
+ MSETransportVehicleId,
+ MSETransportPrevTime,
MSETransportGuidByte5,
MSETransportGuidByte7,
MSETimestamp,
@@ -836,7 +836,7 @@ MovementStatusElements const MovementStartTurnRight[] =
MSEHasPitch,
MSEHasFallData,
MSEHasTransportGuidByte1,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte3,
@@ -844,7 +844,7 @@ MovementStatusElements const MovementStartTurnRight[] =
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte7,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEMovementFlags2,
MSEMovementFlags,
MSEHasFallDirection,
@@ -865,13 +865,13 @@ MovementStatusElements const MovementStartTurnRight[] =
MSETransportSeat,
MSETransportOrientation,
MSETransportGuidByte5,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportPositionZ,
MSETransportPositionX,
MSETransportTime,
MSETransportGuidByte7,
MSETransportGuidByte3,
- MSETransportTime2,
+ MSETransportPrevTime,
MSEFallHorizontalSpeed,
MSEFallCosAngle,
MSEFallSinAngle,
@@ -911,8 +911,8 @@ MovementStatusElements const MovementStop[] =
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
- MSEHasTransportTime3,
+ MSEHasTransportPrevTime,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte0,
@@ -933,13 +933,13 @@ MovementStatusElements const MovementStop[] =
MSETransportTime,
MSETransportSeat,
MSETransportPositionZ,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte2,
MSETransportGuidByte0,
MSETransportPositionY,
MSETransportGuidByte1,
MSETransportGuidByte3,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionX,
MSETransportOrientation,
MSETransportGuidByte5,
@@ -985,10 +985,10 @@ MovementStatusElements const MovementStopStrafe[] =
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte3,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEMovementFlags,
MSEHasFallDirection,
MSEMovementFlags2,
@@ -1003,7 +1003,7 @@ MovementStatusElements const MovementStopStrafe[] =
MSETransportSeat,
MSETransportGuidByte6,
MSETransportPositionZ,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte1,
MSETransportGuidByte3,
MSETransportGuidByte2,
@@ -1014,7 +1014,7 @@ MovementStatusElements const MovementStopStrafe[] =
MSETransportPositionX,
MSETransportGuidByte0,
MSETransportPositionY,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte7,
MSEFallSinAngle,
MSEFallHorizontalSpeed,
@@ -1053,9 +1053,9 @@ MovementStatusElements const MovementStopTurn[] =
MSEHasGuidByte7,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte7,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte3,
@@ -1079,8 +1079,8 @@ MovementStatusElements const MovementStopTurn[] =
MSETransportGuidByte2,
MSETransportGuidByte3,
MSETransportOrientation,
- MSETransportTime2,
- MSETransportTime3,
+ MSETransportPrevTime,
+ MSETransportVehicleId,
MSETransportGuidByte7,
MSETransportGuidByte1,
MSETransportGuidByte0,
@@ -1126,11 +1126,11 @@ MovementStatusElements const MovementStartAscend[] =
MSEMovementFlags,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte4,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte7,
@@ -1152,9 +1152,9 @@ MovementStatusElements const MovementStartAscend[] =
MSETransportOrientation,
MSETransportPositionY,
MSETransportGuidByte7,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionZ,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte6,
MSETransportTime,
MSETransportGuidByte0,
@@ -1198,11 +1198,11 @@ MovementStatusElements const MovementStartDescend[] =
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte5,
MSEMovementFlags2,
@@ -1219,9 +1219,9 @@ MovementStatusElements const MovementStartDescend[] =
MSEPitch,
MSETransportPositionZ,
MSETransportSeat,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte6,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte1,
MSETransportTime,
MSETransportGuidByte4,
@@ -1273,10 +1273,10 @@ MovementStatusElements const MovementStartSwim[] =
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte0,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte1,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEMovementFlags,
MSEHasFallDirection,
MSEMovementFlags2,
@@ -1289,14 +1289,14 @@ MovementStatusElements const MovementStartSwim[] =
MSEGuidByte3,
MSEGuidByte7,
MSEPitch,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte2,
MSETransportPositionY,
MSETransportGuidByte3,
MSETransportTime,
MSETransportPositionX,
MSETransportOrientation,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte6,
MSETransportGuidByte5,
MSETransportGuidByte4,
@@ -1339,14 +1339,14 @@ MovementStatusElements const MovementStopSwim[] =
MSEHasGuidByte1,
MSEHasGuidByte0,
MSEHasFallData,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte0,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte5,
MSEMovementFlags,
@@ -1360,7 +1360,7 @@ MovementStatusElements const MovementStopSwim[] =
MSEGuidByte1,
MSEGuidByte5,
MSEGuidByte2,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte4,
MSETransportTime,
MSETransportPositionZ,
@@ -1372,7 +1372,7 @@ MovementStatusElements const MovementStopSwim[] =
MSETransportGuidByte1,
MSETransportGuidByte6,
MSETransportGuidByte5,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionX,
MSETransportGuidByte0,
MSETransportOrientation,
@@ -1411,8 +1411,8 @@ MovementStatusElements const MovementStopAscend[] =
MSEHasMovementFlags2,
MSEHasTimestamp,
MSEHasGuidByte5,
- MSEHasTransportTime2,
- MSEHasTransportTime3,
+ MSEHasTransportPrevTime,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte2,
@@ -1437,8 +1437,8 @@ MovementStatusElements const MovementStopAscend[] =
MSETransportGuidByte7,
MSETransportGuidByte2,
MSETransportGuidByte6,
- MSETransportTime2,
- MSETransportTime3,
+ MSETransportPrevTime,
+ MSETransportVehicleId,
MSETransportOrientation,
MSETransportGuidByte3,
MSETransportGuidByte4,
@@ -1487,10 +1487,10 @@ MovementStatusElements const MovementStopPitch[] =
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte3,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte1,
MSEHasFallDirection,
@@ -1512,14 +1512,14 @@ MovementStatusElements const MovementStopPitch[] =
MSEFallTime,
MSETransportGuidByte5,
MSETransportGuidByte2,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionX,
MSETransportOrientation,
MSETransportGuidByte6,
MSETransportGuidByte3,
MSETransportGuidByte1,
MSETransportPositionZ,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte0,
MSETransportGuidByte4,
MSETransportTime,
@@ -1557,11 +1557,11 @@ MovementStatusElements const MovementStartPitchDown[] =
MSEHasGuidByte2,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte5,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte2,
@@ -1576,9 +1576,9 @@ MovementStatusElements const MovementStartPitchDown[] =
MSEGuidByte6,
MSEGuidByte4,
MSEGuidByte1,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte3,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte5,
MSETransportGuidByte1,
MSETransportPositionY,
@@ -1631,9 +1631,9 @@ MovementStatusElements const MovementStartPitchUp[] =
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte1,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte5,
@@ -1657,11 +1657,11 @@ MovementStatusElements const MovementStartPitchUp[] =
MSETransportPositionZ,
MSETransportOrientation,
MSETransportGuidByte7,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportSeat,
MSETransportGuidByte6,
MSETransportGuidByte5,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportPositionY,
MSETransportGuidByte4,
MSEFallTime,
@@ -1700,12 +1700,12 @@ MovementStatusElements const MoveChngTransport[]=
MSEHasMovementFlags,
MSEHasMovementFlags2,
MSEHasTransportGuidByte3,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte2,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte5,
@@ -1729,13 +1729,13 @@ MovementStatusElements const MoveChngTransport[]=
MSETransportGuidByte6,
MSETransportPositionZ,
MSETransportPositionX,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportTime,
MSETransportGuidByte7,
MSETransportGuidByte5,
MSETransportGuidByte4,
MSETransportOrientation,
- MSETransportTime2,
+ MSETransportPrevTime,
MSEFallTime,
MSEFallHorizontalSpeed,
MSEFallSinAngle,
@@ -1778,9 +1778,9 @@ MovementStatusElements const MoveSplineDone[] =
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte0,
MSEHasFallDirection,
@@ -1806,7 +1806,7 @@ MovementStatusElements const MoveSplineDone[] =
MSEOrientation,
MSETransportGuidByte1,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte7,
MSETransportTime,
MSETransportPositionY,
@@ -1815,7 +1815,7 @@ MovementStatusElements const MoveSplineDone[] =
MSETransportSeat,
MSETransportOrientation,
MSETransportGuidByte0,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte2,
MSETransportGuidByte3,
MSETransportGuidByte5,
@@ -1856,10 +1856,10 @@ MovementStatusElements const MoveNotActiveMover[] =
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte7,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte3,
MSEHasFallDirection,
@@ -1881,9 +1881,9 @@ MovementStatusElements const MoveNotActiveMover[] =
MSEFallHorizontalSpeed,
MSEFallTime,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte1,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportOrientation,
MSETransportGuidByte0,
MSETransportSeat,
@@ -1931,7 +1931,7 @@ MovementStatusElements const DismissControlledVehicle[] =
MSEHasGuidByte5,
MSEHasTransportGuidByte5,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte7,
@@ -1939,7 +1939,7 @@ MovementStatusElements const DismissControlledVehicle[] =
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte6,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEMovementFlags2,
MSEHasFallDirection,
@@ -1956,10 +1956,10 @@ MovementStatusElements const DismissControlledVehicle[] =
MSETimestamp,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte4,
MSETransportGuidByte7,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte6,
MSETransportTime,
MSETransportPositionZ,
@@ -2007,10 +2007,10 @@ MovementStatusElements const MoveUpdateTeleport[] =
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte0,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte6,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte2,
MSEZeroBit,
@@ -2031,9 +2031,9 @@ MovementStatusElements const MoveUpdateTeleport[] =
MSETransportGuidByte3,
MSETransportGuidByte4,
MSETransportOrientation,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte1,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionZ,
MSETransportGuidByte7,
MSETransportGuidByte0,
@@ -2092,11 +2092,11 @@ MovementStatusElements const MovementSetRunMode[] =
MSEHasGuidByte2,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte1,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte2,
@@ -2112,7 +2112,7 @@ MovementStatusElements const MovementSetRunMode[] =
MSEGuidByte5,
MSEGuidByte2,
MSEPitch,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte3,
MSETransportPositionX,
MSETransportSeat,
@@ -2124,7 +2124,7 @@ MovementStatusElements const MovementSetRunMode[] =
MSETransportOrientation,
MSETransportGuidByte4,
MSETransportTime,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte0,
MSETransportPositionY,
MSETransportGuidByte6,
@@ -2167,9 +2167,9 @@ MovementStatusElements const MovementSetWalkMode[] =
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte3,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte5,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte7,
MSEHasFallDirection,
@@ -2192,10 +2192,10 @@ MovementStatusElements const MovementSetWalkMode[] =
MSETransportGuidByte0,
MSETransportTime,
MSETransportGuidByte4,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportOrientation,
MSETransportPositionX,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte7,
MSETransportPositionY,
MSETransportGuidByte1,
@@ -2235,12 +2235,12 @@ MovementStatusElements const MovementSetCanFly[] =
MSEZeroBit,
MSEHasPitch,
MSEHasTransportGuidByte3,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte5,
@@ -2262,7 +2262,7 @@ MovementStatusElements const MovementSetCanFly[] =
MSETransportSeat,
MSETransportPositionX,
MSETransportGuidByte2,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionY,
MSETransportGuidByte1,
MSETransportTime,
@@ -2270,7 +2270,7 @@ MovementStatusElements const MovementSetCanFly[] =
MSETransportGuidByte0,
MSETransportOrientation,
MSETransportGuidByte6,
- MSETransportTime3,
+ MSETransportVehicleId,
MSESplineElevation,
MSEFallSinAngle,
MSEFallCosAngle,
@@ -2309,12 +2309,12 @@ MovementStatusElements const MovementSetCanTransitionBetweenSwimAndFlyAck[] =
MSEHasGuidByte7,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte2,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte5,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte1,
MSEMovementFlags2,
@@ -2345,10 +2345,10 @@ MovementStatusElements const MovementSetCanTransitionBetweenSwimAndFlyAck[] =
MSETransportGuidByte2,
MSETransportGuidByte7,
MSETransportPositionX,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte6,
MSETransportOrientation,
- MSETransportTime3,
+ MSETransportVehicleId,
MSEPitch,
MSEOrientation,
MSETimestamp,
@@ -2440,8 +2440,8 @@ MovementStatusElements const MovementUpdateRunSpeed[] =
MSEHasOrientation,
MSEHasTransportData,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
- MSEHasTransportTime3,
+ MSEHasTransportPrevTime,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte2,
@@ -2463,11 +2463,11 @@ MovementStatusElements const MovementUpdateRunSpeed[] =
MSETransportTime,
MSETransportGuidByte7,
MSETransportSeat,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionY,
MSETransportGuidByte3,
MSETransportGuidByte2,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportPositionZ,
MSETimestamp,
MSEFallCosAngle,
@@ -2634,9 +2634,9 @@ MovementStatusElements const MovementForceRunSpeedChangeAck[] =
MSEHasGuidByte5,
MSEHasMovementFlags,
MSEHasGuidByte3,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte0,
@@ -2661,13 +2661,13 @@ MovementStatusElements const MovementForceRunSpeedChangeAck[] =
MSETransportPositionY,
MSETransportGuidByte0,
MSETransportGuidByte5,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionX,
MSETransportTime,
MSETransportGuidByte7,
MSETransportOrientation,
MSETransportGuidByte3,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte2,
MSETransportSeat,
MSETransportGuidByte4,
@@ -2712,8 +2712,8 @@ MovementStatusElements const MovementSetCollisionHeightAck[] =
MSEHasGuidByte0,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte3,
- MSEHasTransportTime2,
- MSEHasTransportTime3,
+ MSEHasTransportPrevTime,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte7,
@@ -2733,7 +2733,7 @@ MovementStatusElements const MovementSetCollisionHeightAck[] =
MSEGuidByte4,
MSETransportPositionX,
MSETransportGuidByte4,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte0,
MSETransportOrientation,
MSETransportPositionY,
@@ -2745,7 +2745,7 @@ MovementStatusElements const MovementSetCollisionHeightAck[] =
MSETransportGuidByte6,
MSETransportGuidByte3,
MSETransportGuidByte1,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportPositionZ,
MSEFallVerticalSpeed,
MSEFallTime,
@@ -2787,9 +2787,9 @@ MovementStatusElements const MovementForceFlightSpeedChangeAck[] =
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte7,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte0,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte5,
@@ -2808,11 +2808,11 @@ MovementStatusElements const MovementForceFlightSpeedChangeAck[] =
MSETransportGuidByte6,
MSETransportGuidByte0,
MSETransportSeat,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportOrientation,
MSETransportGuidByte1,
MSETransportGuidByte5,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte2,
MSETransportPositionZ,
MSETransportGuidByte7,
@@ -2860,8 +2860,8 @@ MovementStatusElements const MovementSetCanFlyAck[] =
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
- MSEHasTransportTime2,
+ MSEHasTransportVehicleId,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte7,
@@ -2878,10 +2878,10 @@ MovementStatusElements const MovementSetCanFlyAck[] =
MSEGuidByte6,
MSEGuidByte4,
MSEGuidByte5,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte6,
MSETransportTime,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte7,
MSETransportPositionZ,
MSETransportGuidByte3,
@@ -2937,8 +2937,8 @@ MovementStatusElements const MovementForceSwimSpeedChangeAck[] =
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte3,
- MSEHasTransportTime2,
- MSEHasTransportTime3,
+ MSEHasTransportPrevTime,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte2,
MSEMovementFlags2,
@@ -2953,8 +2953,8 @@ MovementStatusElements const MovementForceSwimSpeedChangeAck[] =
MSEGuidByte4,
MSEGuidByte7,
MSETransportGuidByte0,
- MSETransportTime3,
- MSETransportTime2,
+ MSETransportVehicleId,
+ MSETransportPrevTime,
MSETransportPositionX,
MSETransportGuidByte7,
MSETransportSeat,
@@ -3005,11 +3005,11 @@ MovementStatusElements const MovementForceWalkSpeedChangeAck[] =
MSEHasGuidByte7,
MSEHasGuidByte6,
MSEHasPitch,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte6,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte4,
@@ -3037,7 +3037,7 @@ MovementStatusElements const MovementForceWalkSpeedChangeAck[] =
MSETransportPositionX,
MSETransportGuidByte0,
MSETransportTime,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportPositionY,
MSETransportGuidByte2,
MSETransportGuidByte4,
@@ -3046,7 +3046,7 @@ MovementStatusElements const MovementForceWalkSpeedChangeAck[] =
MSETransportOrientation,
MSETransportSeat,
MSETransportGuidByte6,
- MSETransportTime2,
+ MSETransportPrevTime,
MSESplineElevation,
MSETimestamp,
MSEOrientation,
@@ -3080,12 +3080,12 @@ MovementStatusElements const MovementForceRunBackSpeedChangeAck[] =
MSEHasSplineElevation,
MSEZeroBit,
MSEHasTransportGuidByte3,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte1,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte5,
@@ -3112,12 +3112,12 @@ MovementStatusElements const MovementForceRunBackSpeedChangeAck[] =
MSETransportGuidByte0,
MSETransportGuidByte2,
MSETransportPositionY,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportPositionX,
MSETransportOrientation,
MSETransportGuidByte3,
MSETransportTime,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte4,
MSETransportPositionZ,
MSETransportGuidByte7,
@@ -3278,9 +3278,9 @@ MovementStatusElements const ForceMoveRootAck[] =
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte2,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte5,
MSEMovementFlags2,
MSEMovementFlags,
@@ -3297,8 +3297,8 @@ MovementStatusElements const ForceMoveRootAck[] =
MSETransportGuidByte4,
MSETransportOrientation,
MSETransportPositionZ,
- MSETransportTime3,
- MSETransportTime2,
+ MSETransportVehicleId,
+ MSETransportPrevTime,
MSETransportGuidByte7,
MSETransportGuidByte2,
MSETransportGuidByte0,
@@ -3347,9 +3347,9 @@ MovementStatusElements const ForceMoveUnrootAck[] =
MSEHasGuidByte6,
MSEHasFallDirection,
MSEHasTransportGuidByte0,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte6,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte7,
@@ -3371,12 +3371,12 @@ MovementStatusElements const ForceMoveUnrootAck[] =
MSETransportGuidByte2,
MSETransportGuidByte3,
MSETransportPositionY,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte5,
MSETransportSeat,
MSETransportGuidByte0,
MSETransportTime,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte4,
MSETransportOrientation,
MSETransportPositionX,
@@ -3421,9 +3421,9 @@ MovementStatusElements const MovementFallReset[] =
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte4,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte3,
@@ -3446,9 +3446,9 @@ MovementStatusElements const MovementFallReset[] =
MSETransportPositionY,
MSETransportPositionZ,
MSETransportSeat,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte6,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportTime,
MSETransportGuidByte0,
MSETransportOrientation,
@@ -3491,13 +3491,13 @@ MovementStatusElements const MovementFeatherFallAck[] =
MSEHasGuidByte0,
MSEHasGuidByte4,
MSEHasTransportGuidByte6,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte0,
MSEHasFallDirection,
@@ -3511,7 +3511,7 @@ MovementStatusElements const MovementFeatherFallAck[] =
MSEGuidByte4,
MSEGuidByte3,
MSEGuidByte2,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportOrientation,
MSETransportPositionZ,
MSETransportGuidByte7,
@@ -3520,7 +3520,7 @@ MovementStatusElements const MovementFeatherFallAck[] =
MSETransportPositionX,
MSETransportGuidByte1,
MSETransportGuidByte6,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportTime,
MSETransportPositionY,
MSETransportGuidByte4,
@@ -3564,7 +3564,7 @@ MovementStatusElements const MovementGravityDisableAck[] =
MSEHasFallData,
MSEHasGuidByte1,
MSEHasTransportGuidByte2,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte5,
@@ -3572,7 +3572,7 @@ MovementStatusElements const MovementGravityDisableAck[] =
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte4,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEMovementFlags,
MSEMovementFlags2,
MSEHasFallDirection,
@@ -3596,10 +3596,10 @@ MovementStatusElements const MovementGravityDisableAck[] =
MSETransportGuidByte1,
MSETransportGuidByte0,
MSETransportOrientation,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportPositionX,
MSETransportGuidByte7,
- MSETransportTime3,
+ MSETransportVehicleId,
MSEFallSinAngle,
MSEFallCosAngle,
MSEFallHorizontalSpeed,
@@ -3636,14 +3636,14 @@ MovementStatusElements const MovementGravityEnableAck[] =
MSEHasMovementFlags,
MSEHasFallData,
MSEHasGuidByte0,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
MSEHasFallDirection,
@@ -3664,7 +3664,7 @@ MovementStatusElements const MovementGravityEnableAck[] =
MSEFallVerticalSpeed,
MSETransportGuidByte1,
MSETransportPositionX,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportOrientation,
MSETransportGuidByte2,
MSETransportGuidByte0,
@@ -3674,7 +3674,7 @@ MovementStatusElements const MovementGravityEnableAck[] =
MSETransportGuidByte3,
MSETransportGuidByte4,
MSETransportPositionZ,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte5,
MSETransportTime,
MSETransportPositionY,
@@ -3711,14 +3711,14 @@ MovementStatusElements const MovementHoverAck[] =
MSEHasGuidByte3,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte3,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte7,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEMovementFlags,
MSEMovementFlags2,
MSEHasFallDirection,
@@ -3738,7 +3738,7 @@ MovementStatusElements const MovementHoverAck[] =
MSEFallVerticalSpeed,
MSEOrientation,
MSETransportGuidByte1,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte2,
MSETransportGuidByte7,
MSETransportGuidByte3,
@@ -3751,7 +3751,7 @@ MovementStatusElements const MovementHoverAck[] =
MSETransportGuidByte0,
MSETransportPositionY,
MSETransportGuidByte5,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte6,
MSESplineElevation,
MSEPitch,
@@ -3785,9 +3785,9 @@ MovementStatusElements const MovementKnockBackAck[] =
MSEMovementFlags,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte1,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte0,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte3,
@@ -3811,14 +3811,14 @@ MovementStatusElements const MovementKnockBackAck[] =
MSETimestamp,
MSETransportPositionY,
MSETransportGuidByte4,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte7,
MSETransportOrientation,
MSETransportGuidByte6,
MSETransportTime,
MSETransportGuidByte3,
MSETransportGuidByte1,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte2,
MSETransportPositionZ,
MSETransportGuidByte0,
@@ -3861,9 +3861,9 @@ MovementStatusElements const MovementWaterWalkAck[] =
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte3,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte4,
MSEMovementFlags,
MSEHasFallDirection,
@@ -3878,12 +3878,12 @@ MovementStatusElements const MovementWaterWalkAck[] =
MSEGuidByte1,
MSETransportPositionX,
MSETransportGuidByte1,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportGuidByte0,
MSETransportOrientation,
MSETransportGuidByte7,
MSETransportPositionY,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportTime,
MSETransportGuidByte5,
MSETransportSeat,
@@ -4986,10 +4986,10 @@ MovementStatusElements const ChangeSeatsOnControlledVehicle[] =
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte5,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte2,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte6,
MSEMovementFlags2,
@@ -5017,8 +5017,8 @@ MovementStatusElements const ChangeSeatsOnControlledVehicle[] =
MSEFallTime,
MSEFallVerticalSpeed,
MSETransportGuidByte2,
- MSETransportTime2,
- MSETransportTime3,
+ MSETransportPrevTime,
+ MSETransportVehicleId,
MSETransportGuidByte0,
MSETransportTime,
MSETransportSeat,
@@ -5064,10 +5064,10 @@ MovementStatusElements const CastSpellEmbeddedMovement[] =
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte2,
MSEHasTransportGuidByte5,
- MSEHasTransportTime2,
+ MSEHasTransportPrevTime,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte4,
- MSEHasTransportTime3,
+ MSEHasTransportVehicleId,
MSEHasTransportGuidByte0,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte3,
@@ -5087,13 +5087,13 @@ MovementStatusElements const CastSpellEmbeddedMovement[] =
MSETransportTime,
MSETransportGuidByte6,
MSETransportGuidByte5,
- MSETransportTime3,
+ MSETransportVehicleId,
MSETransportPositionX,
MSETransportGuidByte4,
MSETransportPositionZ,
MSETransportGuidByte2,
MSETransportGuidByte0,
- MSETransportTime2,
+ MSETransportPrevTime,
MSETransportGuidByte1,
MSETransportGuidByte3,
MSETransportPositionY,
diff --git a/src/server/game/Movement/MovementStructures.h b/src/server/game/Movement/MovementStructures.h
index d348d08b415..4c7fbd1212b 100644
--- a/src/server/game/Movement/MovementStructures.h
+++ b/src/server/game/Movement/MovementStructures.h
@@ -48,8 +48,8 @@ enum MovementStatusElements
MSEHasTransportGuidByte5,
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte7,
- MSEHasTransportTime2,
- MSEHasTransportTime3,
+ MSEHasTransportPrevTime,
+ MSEHasTransportVehicleId,
MSEHasPitch,
MSEHasFallData,
MSEHasFallDirection,
@@ -85,8 +85,8 @@ enum MovementStatusElements
MSETransportOrientation,
MSETransportSeat,
MSETransportTime,
- MSETransportTime2,
- MSETransportTime3,
+ MSETransportPrevTime,
+ MSETransportVehicleId,
MSEPitch,
MSEFallTime,
MSEFallVerticalSpeed,
diff --git a/src/server/game/Movement/Spline/MovementPacketBuilder.cpp b/src/server/game/Movement/Spline/MovementPacketBuilder.cpp
index fa44c19c354..02fdabb3938 100644
--- a/src/server/game/Movement/Spline/MovementPacketBuilder.cpp
+++ b/src/server/game/Movement/Spline/MovementPacketBuilder.cpp
@@ -149,100 +149,75 @@ namespace Movement
WriteLinearPath(spline, data);
}
- void PacketBuilder::WriteCreateBits(MoveSpline const& moveSpline, ByteBuffer& data)
+ void PacketBuilder::WriteCreate(MoveSpline const& moveSpline, ByteBuffer& data)
{
- if (!data.WriteBit(!moveSpline.Finalized()))
- return;
-
- data.WriteBits(uint8(moveSpline.spline.mode()), 2);
- data.WriteBit(moveSpline.splineflags & (MoveSplineFlag::Parabolic | MoveSplineFlag::Animation));
- data.WriteBits(moveSpline.getPath().size(), 22);
- switch (moveSpline.splineflags & MoveSplineFlag::Mask_Final_Facing)
+ data << uint32(moveSpline.GetId()); // ID
+ if (!moveSpline.isCyclic()) // Destination
{
- case MoveSplineFlag::Final_Target:
- {
- ObjectGuid targetGuid(moveSpline.facing.target);
- data.WriteBits(2, 2);
- data.WriteBit(targetGuid[4]);
- data.WriteBit(targetGuid[3]);
- data.WriteBit(targetGuid[7]);
- data.WriteBit(targetGuid[2]);
- data.WriteBit(targetGuid[6]);
- data.WriteBit(targetGuid[1]);
- data.WriteBit(targetGuid[0]);
- data.WriteBit(targetGuid[5]);
- break;
- }
- case MoveSplineFlag::Final_Angle:
- data.WriteBits(0, 2);
- break;
- case MoveSplineFlag::Final_Point:
- data.WriteBits(1, 2);
- break;
- default:
- data.WriteBits(3, 2);
- break;
+ Vector3 dest = moveSpline.FinalDestination();
+ data << float(dest.z);
+ data << float(dest.x);
+ data << float(dest.y);
}
+ else
+ data << Vector3::zero();
- data.WriteBit((moveSpline.splineflags & MoveSplineFlag::Parabolic) && moveSpline.effect_start_time < moveSpline.Duration());
- data.WriteBits(moveSpline.splineflags.raw(), 25);
- }
-
- void PacketBuilder::WriteCreateData(MoveSpline const& moveSpline, ByteBuffer& data)
- {
- if (!moveSpline.Finalized())
+ if (data.WriteBit(!moveSpline.Finalized())) // MovementSplineMove
{
MoveSplineFlag const& splineFlags = moveSpline.splineflags;
+ data.FlushBits();
- if ((splineFlags & MoveSplineFlag::Parabolic) && moveSpline.effect_start_time < moveSpline.Duration())
- data << moveSpline.vertical_acceleration; // added in 3.1
+ data.WriteBits(moveSpline.splineflags.raw(), 25); // SplineFlags
+ data.WriteBits(uint8(moveSpline.spline.mode()), 2); // Mode
- data << moveSpline.timePassed();
+ bool HasJumpGravity = data.WriteBit(moveSpline.splineflags & (MoveSplineFlag::Parabolic | MoveSplineFlag::Animation)); // HasJumpGravity
+ bool HasSpecialTime = data.WriteBit((moveSpline.splineflags & MoveSplineFlag::Parabolic) && moveSpline.effect_start_time < moveSpline.Duration()); // HasSpecialTime
if (splineFlags.final_angle)
- data << moveSpline.facing.angle;
+ data.WriteBit(3);
else if (splineFlags.final_target)
- {
- ObjectGuid facingGuid(moveSpline.facing.target);
- data.WriteByteSeq(facingGuid[5]);
- data.WriteByteSeq(facingGuid[3]);
- data.WriteByteSeq(facingGuid[7]);
- data.WriteByteSeq(facingGuid[1]);
- data.WriteByteSeq(facingGuid[6]);
- data.WriteByteSeq(facingGuid[4]);
- data.WriteByteSeq(facingGuid[2]);
- data.WriteByteSeq(facingGuid[0]);
- }
-
- uint32 nodes = moveSpline.getPath().size();
- for (uint32 i = 0; i < nodes; ++i)
- {
- data << float(moveSpline.getPath()[i].z);
- data << float(moveSpline.getPath()[i].x);
- data << float(moveSpline.getPath()[i].y);
- }
+ data.WriteBit(2);
+ else if (splineFlags.final_point)
+ data.WriteBit(1);
+ else
+ data.WriteBit(0);
- if (splineFlags.final_point)
- data << moveSpline.facing.f.x << moveSpline.facing.f.z << moveSpline.facing.f.y;
+ data.WriteBit(0); // HasSplineFilterKey
- data << float(1.f); // splineInfo.duration_mod_next; added in 3.1
- data << moveSpline.Duration();
- if (splineFlags & (MoveSplineFlag::Parabolic | MoveSplineFlag::Animation))
- data << moveSpline.effect_start_time; // added in 3.1
+ data << int32(moveSpline.timePassed()); // Elapsed
+ data << uint32(moveSpline.Duration()); // Duration
+ data << float(1.0f); // DurationModifier
+ data << float(1.0f); // NextDurationModifier
- data << float(1.f); // splineInfo.duration_mod; added in 3.1
- }
+ uint32 PointsCount = moveSpline.getPath().size();
+ data << uint32(PointsCount);
- if (!moveSpline.isCyclic())
- {
- Vector3 dest = moveSpline.FinalDestination();
- data << float(dest.z);
- data << float(dest.x);
- data << float(dest.y);
+ if (splineFlags.final_angle) // FaceDirection
+ data << moveSpline.facing.angle;
+ else if (splineFlags.final_target) // FaceGUID
+ data << moveSpline.facing.target;
+ else if (splineFlags.final_point) // FaceSpot
+ data << moveSpline.facing.f.x << moveSpline.facing.f.y << moveSpline.facing.f.z;
+
+ if (HasJumpGravity)
+ data << float(moveSpline.vertical_acceleration); // JumpGravity
+
+ if (HasSpecialTime)
+ data << uint32(moveSpline.effect_start_time); // SpecialTime
+
+ //if (HasSplineFilterKey)
+ //{
+ // data << uint32(FilterKeysCount);
+ // for (var i = 0; i < PointsCount; ++i)
+ // {
+ // data << float(In);
+ // data << float(Out);
+ // }
+
+ // data.WriteBits(FilterFlags, 2);
+ //}
+
+ data.append<Vector3>(&moveSpline.getPath()[0], PointsCount); // Points
}
- else
- data << Vector3::zero();
-
- data << moveSpline.GetId();
}
}
diff --git a/src/server/game/Movement/Spline/MovementPacketBuilder.h b/src/server/game/Movement/Spline/MovementPacketBuilder.h
index 750cdc0fdbf..2878a330f67 100644
--- a/src/server/game/Movement/Spline/MovementPacketBuilder.h
+++ b/src/server/game/Movement/Spline/MovementPacketBuilder.h
@@ -37,8 +37,7 @@ namespace Movement
static void WriteMonsterMove(const MoveSpline& mov, WorldPacket& data);
static void WriteStopMovement(Vector3 const& loc, uint32 splineId, ByteBuffer& data);
- static void WriteCreateBits(MoveSpline const& moveSpline, ByteBuffer& data);
- static void WriteCreateData(MoveSpline const& moveSpline, ByteBuffer& data);
+ static void WriteCreate(MoveSpline const& moveSpline, ByteBuffer& data);
};
}
#endif // TRINITYSERVER_PACKET_BUILDER_H