Core/Movement: converted collision height and move update opcodes back to movement structures and implement new movement status elements for future use
This commit is contained in:
1 parent
a2cea3ce08
commit
d8ec67df50
8 files changed
+459
-635
No files matched your search
@@ -13732,187 +13732,193 @@ void Unit::WriteMovementInfo(WorldPacket& data, Movement::ExtraMovementStatusEle
|
||||
|
||||
switch (element)
|
||||
{
|
||||
case MSEHasGuidByte0:
|
||||
case MSEHasGuidByte1:
|
||||
case MSEHasGuidByte2:
|
||||
case MSEHasGuidByte3:
|
||||
case MSEHasGuidByte4:
|
||||
case MSEHasGuidByte5:
|
||||
case MSEHasGuidByte6:
|
||||
case MSEHasGuidByte7:
|
||||
data.WriteBit(guid[element - MSEHasGuidByte0]);
|
||||
break;
|
||||
case MSEHasTransportGuidByte0:
|
||||
case MSEHasTransportGuidByte1:
|
||||
case MSEHasTransportGuidByte2:
|
||||
case MSEHasTransportGuidByte3:
|
||||
case MSEHasTransportGuidByte4:
|
||||
case MSEHasTransportGuidByte5:
|
||||
case MSEHasTransportGuidByte6:
|
||||
case MSEHasTransportGuidByte7:
|
||||
if (hasTransportData)
|
||||
data.WriteBit(tguid[element - MSEHasTransportGuidByte0]);
|
||||
break;
|
||||
case MSEGuidByte0:
|
||||
case MSEGuidByte1:
|
||||
case MSEGuidByte2:
|
||||
case MSEGuidByte3:
|
||||
case MSEGuidByte4:
|
||||
case MSEGuidByte5:
|
||||
case MSEGuidByte6:
|
||||
case MSEGuidByte7:
|
||||
data.WriteByteSeq(guid[element - MSEGuidByte0]);
|
||||
break;
|
||||
case MSETransportGuidByte0:
|
||||
case MSETransportGuidByte1:
|
||||
case MSETransportGuidByte2:
|
||||
case MSETransportGuidByte3:
|
||||
case MSETransportGuidByte4:
|
||||
case MSETransportGuidByte5:
|
||||
case MSETransportGuidByte6:
|
||||
case MSETransportGuidByte7:
|
||||
if (hasTransportData)
|
||||
data.WriteByteSeq(tguid[element - MSETransportGuidByte0]);
|
||||
break;
|
||||
case MSEHasMovementFlags:
|
||||
data.WriteBit(!hasMovementFlags);
|
||||
break;
|
||||
case MSEHasMovementFlags2:
|
||||
data.WriteBit(!hasMovementFlags2);
|
||||
break;
|
||||
case MSEHasTimestamp:
|
||||
data.WriteBit(!hasTimestamp);
|
||||
break;
|
||||
case MSEHasOrientation:
|
||||
data.WriteBit(!hasOrientation);
|
||||
break;
|
||||
case MSEHasTransportData:
|
||||
data.WriteBit(hasTransportData);
|
||||
break;
|
||||
case MSEHasTransportTime2:
|
||||
if (hasTransportData)
|
||||
data.WriteBit(hasTransportTime2);
|
||||
break;
|
||||
case MSEHasVehicleId:
|
||||
if (hasTransportData)
|
||||
data.WriteBit(hasTransportVehicleId);
|
||||
break;
|
||||
case MSEHasPitch:
|
||||
data.WriteBit(!hasPitch);
|
||||
break;
|
||||
case MSEHasFallData:
|
||||
data.WriteBit(hasFallData);
|
||||
break;
|
||||
case MSEHasFallDirection:
|
||||
if (hasFallData)
|
||||
data.WriteBit(hasFallDirection);
|
||||
break;
|
||||
case MSEHasSplineElevation:
|
||||
data.WriteBit(!hasSplineElevation);
|
||||
break;
|
||||
case MSEHasSpline:
|
||||
data.WriteBit(hasSpline);
|
||||
break;
|
||||
case MSEMovementFlags:
|
||||
if (hasMovementFlags)
|
||||
data.WriteBits(GetUnitMovementFlags(), 30);
|
||||
break;
|
||||
case MSEMovementFlags2:
|
||||
if (hasMovementFlags2)
|
||||
data.WriteBits(GetExtraUnitMovementFlags(), 12);
|
||||
break;
|
||||
case MSETimestamp:
|
||||
if (hasTimestamp)
|
||||
data << mi.time;
|
||||
break;
|
||||
case MSEPositionX:
|
||||
data << GetPositionX();
|
||||
break;
|
||||
case MSEPositionY:
|
||||
data << GetPositionY();
|
||||
break;
|
||||
case MSEPositionZ:
|
||||
data << GetPositionZ();
|
||||
break;
|
||||
case MSEOrientation:
|
||||
if (hasOrientation)
|
||||
data << GetOrientation();
|
||||
break;
|
||||
case MSETransportPositionX:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetX();
|
||||
break;
|
||||
case MSETransportPositionY:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetY();
|
||||
break;
|
||||
case MSETransportPositionZ:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetZ();
|
||||
break;
|
||||
case MSETransportOrientation:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetO();
|
||||
break;
|
||||
case MSETransportSeat:
|
||||
if (hasTransportData)
|
||||
data << GetTransSeat();
|
||||
break;
|
||||
case MSETransportTime:
|
||||
if (hasTransportData)
|
||||
data << GetTransTime();
|
||||
break;
|
||||
case MSETransportTime2:
|
||||
if (hasTransportData && hasTransportTime2)
|
||||
data << mi.transport.time2;
|
||||
break;
|
||||
case MSETransportVehicleId:
|
||||
if (hasTransportData && hasTransportVehicleId)
|
||||
data << mi.transport.vehicleId;
|
||||
break;
|
||||
case MSEPitch:
|
||||
if (hasPitch)
|
||||
data << mi.pitch;
|
||||
break;
|
||||
case MSEFallTime:
|
||||
if (hasFallData)
|
||||
data << mi.jump.fallTime;
|
||||
break;
|
||||
case MSEFallVerticalSpeed:
|
||||
if (hasFallData)
|
||||
data << mi.jump.zspeed;
|
||||
break;
|
||||
case MSEFallCosAngle:
|
||||
if (hasFallData && hasFallDirection)
|
||||
data << mi.jump.cosAngle;
|
||||
break;
|
||||
case MSEFallSinAngle:
|
||||
if (hasFallData && hasFallDirection)
|
||||
data << mi.jump.sinAngle;
|
||||
break;
|
||||
case MSEFallHorizontalSpeed:
|
||||
if (hasFallData && hasFallDirection)
|
||||
data << mi.jump.xyspeed;
|
||||
break;
|
||||
case MSESplineElevation:
|
||||
if (hasSplineElevation)
|
||||
data << mi.splineElevation;
|
||||
break;
|
||||
case MSECounter:
|
||||
data << m_movementCounter++;
|
||||
break;
|
||||
case MSEZeroBit:
|
||||
data.WriteBit(0);
|
||||
break;
|
||||
case MSEOneBit:
|
||||
data.WriteBit(1);
|
||||
break;
|
||||
case MSEExtraElement:
|
||||
extras->WriteNextElement(data);
|
||||
break;
|
||||
default:
|
||||
ASSERT(Movement::PrintInvalidSequenceElement(element, __FUNCTION__));
|
||||
break;
|
||||
case MSEHasGuidByte0:
|
||||
case MSEHasGuidByte1:
|
||||
case MSEHasGuidByte2:
|
||||
case MSEHasGuidByte3:
|
||||
case MSEHasGuidByte4:
|
||||
case MSEHasGuidByte5:
|
||||
case MSEHasGuidByte6:
|
||||
case MSEHasGuidByte7:
|
||||
data.WriteBit(guid[element - MSEHasGuidByte0]);
|
||||
break;
|
||||
case MSEHasTransportGuidByte0:
|
||||
case MSEHasTransportGuidByte1:
|
||||
case MSEHasTransportGuidByte2:
|
||||
case MSEHasTransportGuidByte3:
|
||||
case MSEHasTransportGuidByte4:
|
||||
case MSEHasTransportGuidByte5:
|
||||
case MSEHasTransportGuidByte6:
|
||||
case MSEHasTransportGuidByte7:
|
||||
if (hasTransportData)
|
||||
data.WriteBit(tguid[element - MSEHasTransportGuidByte0]);
|
||||
break;
|
||||
case MSEGuidByte0:
|
||||
case MSEGuidByte1:
|
||||
case MSEGuidByte2:
|
||||
case MSEGuidByte3:
|
||||
case MSEGuidByte4:
|
||||
case MSEGuidByte5:
|
||||
case MSEGuidByte6:
|
||||
case MSEGuidByte7:
|
||||
data.WriteByteSeq(guid[element - MSEGuidByte0]);
|
||||
break;
|
||||
case MSETransportGuidByte0:
|
||||
case MSETransportGuidByte1:
|
||||
case MSETransportGuidByte2:
|
||||
case MSETransportGuidByte3:
|
||||
case MSETransportGuidByte4:
|
||||
case MSETransportGuidByte5:
|
||||
case MSETransportGuidByte6:
|
||||
case MSETransportGuidByte7:
|
||||
if (hasTransportData)
|
||||
data.WriteByteSeq(tguid[element - MSETransportGuidByte0]);
|
||||
break;
|
||||
case MSEHasMovementFlags:
|
||||
data.WriteBit(!hasMovementFlags);
|
||||
break;
|
||||
case MSEHasMovementFlags2:
|
||||
data.WriteBit(!hasMovementFlags2);
|
||||
break;
|
||||
case MSEHasTimestamp:
|
||||
data.WriteBit(!hasTimestamp);
|
||||
break;
|
||||
case MSEHasOrientation:
|
||||
data.WriteBit(!hasOrientation);
|
||||
break;
|
||||
case MSEHasTransportData:
|
||||
data.WriteBit(hasTransportData);
|
||||
break;
|
||||
case MSEHasTransportTime2:
|
||||
if (hasTransportData)
|
||||
data.WriteBit(hasTransportTime2);
|
||||
break;
|
||||
case MSEHasVehicleId:
|
||||
if (hasTransportData)
|
||||
data.WriteBit(hasTransportVehicleId);
|
||||
break;
|
||||
case MSEHasPitch:
|
||||
data.WriteBit(!hasPitch);
|
||||
break;
|
||||
case MSEHasFallData:
|
||||
data.WriteBit(hasFallData);
|
||||
break;
|
||||
case MSEHasFallDirection:
|
||||
if (hasFallData)
|
||||
data.WriteBit(hasFallDirection);
|
||||
break;
|
||||
case MSEHasSplineElevation:
|
||||
data.WriteBit(!hasSplineElevation);
|
||||
break;
|
||||
case MSEHasSpline:
|
||||
data.WriteBit(hasSpline);
|
||||
break;
|
||||
case MSEHasHeightChangeFailed:
|
||||
data.WriteBit(mi.HasHeightChangeFailed());
|
||||
break;
|
||||
case MSEMovementFlags:
|
||||
if (hasMovementFlags)
|
||||
data.WriteBits(GetUnitMovementFlags(), 30);
|
||||
break;
|
||||
case MSEMovementFlags2:
|
||||
if (hasMovementFlags2)
|
||||
data.WriteBits(GetExtraUnitMovementFlags(), 12);
|
||||
break;
|
||||
case MSETimestamp:
|
||||
if (hasTimestamp)
|
||||
data << mi.time;
|
||||
break;
|
||||
case MSEPositionX:
|
||||
data << GetPositionX();
|
||||
break;
|
||||
case MSEPositionY:
|
||||
data << GetPositionY();
|
||||
break;
|
||||
case MSEPositionZ:
|
||||
data << GetPositionZ();
|
||||
break;
|
||||
case MSEOrientation:
|
||||
if (hasOrientation)
|
||||
data << GetOrientation();
|
||||
break;
|
||||
case MSETransportPositionX:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetX();
|
||||
break;
|
||||
case MSETransportPositionY:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetY();
|
||||
break;
|
||||
case MSETransportPositionZ:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetZ();
|
||||
break;
|
||||
case MSETransportOrientation:
|
||||
if (hasTransportData)
|
||||
data << GetTransOffsetO();
|
||||
break;
|
||||
case MSETransportSeat:
|
||||
if (hasTransportData)
|
||||
data << GetTransSeat();
|
||||
break;
|
||||
case MSETransportTime:
|
||||
if (hasTransportData)
|
||||
data << GetTransTime();
|
||||
break;
|
||||
case MSETransportTime2:
|
||||
if (hasTransportData && hasTransportTime2)
|
||||
data << mi.transport.time2;
|
||||
break;
|
||||
case MSETransportVehicleId:
|
||||
if (hasTransportData && hasTransportVehicleId)
|
||||
data << mi.transport.vehicleId;
|
||||
break;
|
||||
case MSEPitch:
|
||||
if (hasPitch)
|
||||
data << mi.pitch;
|
||||
break;
|
||||
case MSEFallTime:
|
||||
if (hasFallData)
|
||||
data << mi.jump.fallTime;
|
||||
break;
|
||||
case MSEFallVerticalSpeed:
|
||||
if (hasFallData)
|
||||
data << mi.jump.zspeed;
|
||||
break;
|
||||
case MSEFallCosAngle:
|
||||
if (hasFallData && hasFallDirection)
|
||||
data << mi.jump.cosAngle;
|
||||
break;
|
||||
case MSEFallSinAngle:
|
||||
if (hasFallData && hasFallDirection)
|
||||
data << mi.jump.sinAngle;
|
||||
break;
|
||||
case MSEFallHorizontalSpeed:
|
||||
if (hasFallData && hasFallDirection)
|
||||
data << mi.jump.xyspeed;
|
||||
break;
|
||||
case MSESplineElevation:
|
||||
if (hasSplineElevation)
|
||||
data << mi.splineElevation;
|
||||
break;
|
||||
case MSECounter:
|
||||
data << m_movementCounter++;
|
||||
break;
|
||||
case MSEZeroBit:
|
||||
data.WriteBit(0);
|
||||
break;
|
||||
case MSEOneBit:
|
||||
data.WriteBit(1);
|
||||
break;
|
||||
case MSEFlushBits:
|
||||
data.FlushBits();
|
||||
break;
|
||||
case MSEExtraElement:
|
||||
extras->WriteNextElement(data);
|
||||
break;
|
||||
default:
|
||||
ASSERT(Movement::PrintInvalidSequenceElement(element, __FUNCTION__));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user