aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Movement/MovementStructures.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-04-11 18:52:33 +0200
committerShauren <shauren.trinity@gmail.com>2013-04-11 18:52:33 +0200
commit46201ac4099d9c60723486f95ff6b16b2ddc11c2 (patch)
tree374ec375e444314a19ead563be8e48f19f91f81e /src/server/game/Movement/MovementStructures.cpp
parentf370c4e4d64dfd220c0f2e1157890315f069f340 (diff)
Core/PacketIO: Corrected structure of CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE and SMSG_MOVE_UPDATE_RUN_SPEED
Diffstat (limited to 'src/server/game/Movement/MovementStructures.cpp')
-rw-r--r--src/server/game/Movement/MovementStructures.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/server/game/Movement/MovementStructures.cpp b/src/server/game/Movement/MovementStructures.cpp
index 0b41fe2a14b..f886b5aa1f6 100644
--- a/src/server/game/Movement/MovementStructures.cpp
+++ b/src/server/game/Movement/MovementStructures.cpp
@@ -2462,16 +2462,25 @@ MovementStatusElements MovementUpdateRunSpeed[] =
MSEPositionY,
MSEExtraElement,
MSEHasGuidByte6,
+ MSEHasMovementFlags2,
+ MSEHasPitch,
MSEHasGuidByte2,
MSEHasGuidByte5,
+ MSEHasSplineElevation,
+ MSEHasSpline,
MSEHasMovementFlags,
+ MSEHasTimestamp,
MSEHasGuidByte1,
+ MSEMovementFlags2,
MSEHasGuidByte3,
MSEMovementFlags,
MSEHasGuidByte7,
MSEHasGuidByte0,
MSEHasOrientation,
+ MSEHasTransportData,
MSEHasTransportGuidByte5,
+ MSEHasTransportTime2,
+ MSEHasTransportTime3,
MSEHasTransportGuidByte7,
MSEHasTransportGuidByte4,
MSEHasTransportGuidByte2,
@@ -2479,6 +2488,7 @@ MovementStatusElements MovementUpdateRunSpeed[] =
MSEHasTransportGuidByte6,
MSEHasTransportGuidByte1,
MSEHasTransportGuidByte0,
+ MSEHasFallData,
MSEHasFallDirection,
MSEHasGuidByte4,
MSEZeroBit,
@@ -2492,9 +2502,11 @@ MovementStatusElements MovementUpdateRunSpeed[] =
MSETransportTime,
MSETransportGuidByte7,
MSETransportSeat,
+ MSETransportTime2,
MSETransportPositionY,
MSETransportGuidByte3,
MSETransportGuidByte2,
+ MSETransportTime3,
MSETransportPositionZ,
MSETimestamp,
MSEFallSinAngle,
@@ -2504,6 +2516,7 @@ MovementStatusElements MovementUpdateRunSpeed[] =
MSEFallTime,
MSEPitch,
MSEGuidByte6,
+ MSESplineElevation,
MSEGuidByte5,
MSEGuidByte7,
MSEGuidByte4,
@@ -4928,11 +4941,11 @@ void Movement::ExtraMovementStatusElement::ReadNextElement(ByteBuffer& packet)
packet >> Data.byteData;
break;
default:
+ ASSERT(PrintInvalidSequenceElement(element, __FUNCTION__));
break;
}
}
-
void Movement::ExtraMovementStatusElement::WriteNextElement(ByteBuffer& packet)
{
MovementStatusElements element = _elements[_index++];
@@ -4958,10 +4971,17 @@ void Movement::ExtraMovementStatusElement::WriteNextElement(ByteBuffer& packet)
packet << Data.byteData;
break;
default:
+ ASSERT(PrintInvalidSequenceElement(element, __FUNCTION__));
break;
}
}
+bool Movement::PrintInvalidSequenceElement(MovementStatusElements element, char const* function)
+{
+ sLog->outError(LOG_FILTER_UNITS, "Incorrect sequence element %d detected at %s", element, function);
+ return false;
+}
+
Movement::PacketSender::PacketSender(Unit* unit, Opcodes serverControl, Opcodes playerControl, Opcodes broadcast /*= SMSG_PLAYER_MOVE*/, ExtraMovementStatusElement* extras /*= NULL*/)
: _unit(unit), _extraElements(extras)
{
@@ -4989,6 +5009,10 @@ void Movement::PacketSender::Send() const
if (_broadcast != NULL_OPCODE)
{
+ ///! Need to reset current extra element index before writing another packet
+ if (_extraElements)
+ _extraElements->ResetIndex();
+
WorldPacket data(_broadcast);
_unit->WriteMovementInfo(data, _extraElements);
_unit->SendMessageToSet(&data, !isPlayerMovement);
@@ -5179,6 +5203,7 @@ MovementStatusElements* GetMovementStatusElementsSequence(Opcodes opcode)
return ChangeSeatsOnControlledVehicle;
case CMSG_CAST_SPELL:
case CMSG_PET_CAST_SPELL:
+ case CMSG_USE_ITEM:
return CastSpellEmbeddedMovement;
default:
break;