Skip to content

Commit ea8f8ce

Browse files
committed
Add 5.5.0 CMSG handlers
CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK CMSG_MOVE_SET_CAN_TURN_WHILE_FALLING_ACK CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK CMSG_MOVE_SET_CAN_FLY_ACK CMSG_MOVE_SET_FLY CMSG_MOVE_START_ASCEND CMSG_MOVE_STOP_ASCEND CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK CMSG_MOVE_CHANGE_TRANSPORT CMSG_MOVE_START_DESCEND CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK CMSG_MOVE_DISMISS_VEHICLE CMSG_MOVE_CHANGE_VEHICLE_SEATS CMSG_MOVE_GRAVITY_DISABLE_ACK CMSG_MOVE_GRAVITY_ENABLE_ACK CMSG_MOVE_INERTIA_DISABLE_ACK CMSG_MOVE_INERTIA_ENABLE_ACK CMSG_MOVE_COLLISION_DISABLE_ACK CMSG_MOVE_COLLISION_ENABLE_ACK CMSG_MOVE_SET_COLLISION_HEIGHT_ACK CMSG_SET_ACTIVE_MOVER CMSG_TIME_SYNC_RESPONSE CMSG_TIME_SYNC_RESPONSE_FAILED CMSG_TIME_SYNC_RESPONSE_DROPPED CMSG_DISCARDED_TIME_SYNC_ACKS CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK CMSG_UPDATE_MISSILE_TRAJECTORY CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE CMSG_MOVE_APPLY_INERTIA_ACK CMSG_MOVE_REMOVE_INERTIA_ACK CMSG_MOVE_ADD_IMPULSE_ACK CMSG_MOVE_SET_CAN_ADV_FLY_ACK CMSG_MOVE_SET_ADV_FLY CMSG_MOVE_SET_CAN_DRIVE_ACK CMSG_MOVE_START_DRIVE_FORWARD CMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION_ACK CMSG_MOVE_SET_ADV_FLYING_MAX_VEL_ACK CMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT_ACK CMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD_ACK CMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT_ACK CMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED_ACK CMSG_MOVE_SET_ADV_FLYING_BANKING_RATE_ACK CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN_ACK CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP_ACK CMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD_ACK CMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION_ACK CMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION_ACK CMSG_MOVE_SET_FACING_HEARTBEAT CMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT_ACK CMSG_MOVE_ENABLE_FULL_SPEED_TURNING_ACK CMSG_CONNECT_TO_FAILED CMSG_SET_ROLE CMSG_INITIATE_ROLE_POLL CMSG_REQUEST_BATTLEFIELD_STATUS CMSG_REQUEST_RATED_PVP_INFO
1 parent 20ca993 commit ea8f8ce

5 files changed

Lines changed: 165 additions & 24 deletions

File tree

WowPacketParserModule.V5_5_0_61735/Parsers/BattlegroundHandler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,7 @@ public static void HandleRequestCrowdControlSpell(Packet packet)
579579
[Parser(Opcode.CMSG_REQUEST_PVP_REWARDS)]
580580
[Parser(Opcode.CMSG_REQUEST_SCHEDULED_PVP_INFO)]
581581
[Parser(Opcode.CMSG_HEARTH_AND_RESURRECT)]
582+
[Parser(Opcode.CMSG_REQUEST_BATTLEFIELD_STATUS)]
582583
public static void HandleBattlegroundZero(Packet packet)
583584
{
584585
}

WowPacketParserModule.V5_5_0_61735/Parsers/GroupHandler.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,25 @@ public static void HandleClearRaidMarker(Packet packet)
481481
packet.ReadByte("MarkerId");
482482
}
483483

484+
[Parser(Opcode.CMSG_SET_ROLE)]
485+
public static void HandleSetRole(Packet packet)
486+
{
487+
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
488+
packet.ReadPackedGuid128("ChangedUnit");
489+
packet.ReadByte("Role");
490+
if (hasPartyIndex)
491+
packet.ReadByte("PartyIndex");
492+
}
493+
494+
[Parser(Opcode.CMSG_INITIATE_ROLE_POLL)]
495+
public static void HandleInitiateRolePoll(Packet packet)
496+
{
497+
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
498+
499+
if (hasPartyIndex)
500+
packet.ReadByte("PartyIndex");
501+
}
502+
484503
[Parser(Opcode.SMSG_GROUP_DESTROYED)]
485504
public static void HandleGroupNull(Packet packet)
486505
{

WowPacketParserModule.V5_5_0_61735/Parsers/MovementHandler.cs

Lines changed: 120 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -929,12 +929,6 @@ public static void HandleMoveSetCanDrive(Packet packet)
929929
packet.ReadInt32("DriveCapabilityID");
930930
}
931931

932-
//[Parser(Opcode.CMSG_MOVE_CHANGE_TRANSPORT)]
933-
//[Parser(Opcode.CMSG_MOVE_DISMISS_VEHICLE)]
934-
//[Parser(Opcode.CMSG_MOVE_SET_FACING_HEARTBEAT)]
935-
//[Parser(Opcode.CMSG_MOVE_SET_FLY)]
936-
//[Parser(Opcode.CMSG_MOVE_START_ASCEND)]
937-
//[Parser(Opcode.CMSG_MOVE_START_DESCEND)]
938932
[Parser(Opcode.CMSG_MOVE_START_FORWARD)]
939933
[Parser(Opcode.CMSG_MOVE_START_BACKWARD)]
940934
[Parser(Opcode.CMSG_MOVE_STOP)]
@@ -960,7 +954,15 @@ public static void HandleMoveSetCanDrive(Packet packet)
960954
[Parser(Opcode.CMSG_MOVE_REMOVE_MOVEMENT_FORCES)]
961955
[Parser(Opcode.CMSG_MOVE_FALL_RESET)]
962956
[Parser(Opcode.CMSG_MOVE_UPDATE_FALL_SPEED)]
963-
//[Parser(Opcode.CMSG_MOVE_STOP_ASCEND)]
957+
[Parser(Opcode.CMSG_MOVE_SET_FLY)]
958+
[Parser(Opcode.CMSG_MOVE_START_ASCEND)]
959+
[Parser(Opcode.CMSG_MOVE_STOP_ASCEND)]
960+
[Parser(Opcode.CMSG_MOVE_CHANGE_TRANSPORT)]
961+
[Parser(Opcode.CMSG_MOVE_START_DESCEND)]
962+
[Parser(Opcode.CMSG_MOVE_DISMISS_VEHICLE)]
963+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLY)]
964+
[Parser(Opcode.CMSG_MOVE_START_DRIVE_FORWARD)]
965+
[Parser(Opcode.CMSG_MOVE_SET_FACING_HEARTBEAT)]
964966
public static void HandleClientPlayerMove(Packet packet)
965967
{
966968
var stats = ReadMovementStats(packet);
@@ -975,39 +977,51 @@ public static void HandleMoveTeleportAck(Packet packet)
975977
packet.ReadInt32("MoveTime");
976978
}
977979

978-
//[Parser(Opcode.CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK)]
979-
//[Parser(Opcode.CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK)]
980-
//[Parser(Opcode.CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK)]
981980
[Parser(Opcode.CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK)]
982981
[Parser(Opcode.CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK)]
983982
[Parser(Opcode.CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK)]
984-
//[Parser(Opcode.CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK)]
985-
//[Parser(Opcode.CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK)]
986-
//[Parser(Opcode.CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK)]
987-
//[Parser(Opcode.CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK)]
983+
[Parser(Opcode.CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK)]
984+
[Parser(Opcode.CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK)]
985+
[Parser(Opcode.CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK)]
986+
[Parser(Opcode.CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK)]
987+
[Parser(Opcode.CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK)]
988+
[Parser(Opcode.CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK)]
989+
[Parser(Opcode.CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK)]
990+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION_ACK)]
991+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_MAX_VEL_ACK)]
992+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT_ACK)]
993+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD_ACK)]
994+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT_ACK)]
995+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED_ACK)]
996+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION_ACK)]
997+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION_ACK)]
998+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT_ACK)]
988999
public static void HandleMoveSpeedAck(Packet packet)
9891000
{
9901001
var stats = ReadMovementAck(packet);
9911002
packet.Holder.ClientMove = new() { Mover = stats.MoverGuid, Position = stats.PositionAsVector4 };
9921003
packet.ReadSingle("Speed");
9931004
}
9941005

995-
//[Parser(Opcode.CMSG_MOVE_COLLISION_DISABLE_ACK)]
996-
//[Parser(Opcode.CMSG_MOVE_COLLISION_ENABLE_ACK)]
997-
//[Parser(Opcode.CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK)]
9981006
[Parser(Opcode.CMSG_MOVE_FORCE_ROOT_ACK)]
9991007
[Parser(Opcode.CMSG_MOVE_FORCE_UNROOT_ACK)]
10001008
[Parser(Opcode.CMSG_MOVE_HOVER_ACK)]
10011009
[Parser(Opcode.CMSG_MOVE_FEATHER_FALL_ACK)]
10021010
[Parser(Opcode.CMSG_MOVE_WATER_WALK_ACK)]
10031011
[Parser(Opcode.CMSG_MOVE_ENABLE_DOUBLE_JUMP_ACK)]
1004-
//[Parser(Opcode.CMSG_MOVE_GRAVITY_DISABLE_ACK)]
1005-
//[Parser(Opcode.CMSG_MOVE_GRAVITY_ENABLE_ACK)]
1006-
//[Parser(Opcode.CMSG_MOVE_INERTIA_DISABLE_ACK)]
1007-
//[Parser(Opcode.CMSG_MOVE_INERTIA_ENABLE_ACK)]
1008-
//[Parser(Opcode.CMSG_MOVE_SET_CAN_FLY_ACK)]
1009-
//[Parser(Opcode.CMSG_MOVE_SET_CAN_TURN_WHILE_FALLING_ACK)]
1010-
//[Parser(Opcode.CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK)]
1012+
[Parser(Opcode.CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK)]
1013+
[Parser(Opcode.CMSG_MOVE_SET_CAN_TURN_WHILE_FALLING_ACK)]
1014+
[Parser(Opcode.CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK)]
1015+
[Parser(Opcode.CMSG_MOVE_SET_CAN_FLY_ACK)]
1016+
[Parser(Opcode.CMSG_MOVE_GRAVITY_DISABLE_ACK)]
1017+
[Parser(Opcode.CMSG_MOVE_GRAVITY_ENABLE_ACK)]
1018+
[Parser(Opcode.CMSG_MOVE_INERTIA_DISABLE_ACK)]
1019+
[Parser(Opcode.CMSG_MOVE_INERTIA_ENABLE_ACK)]
1020+
[Parser(Opcode.CMSG_MOVE_COLLISION_DISABLE_ACK)]
1021+
[Parser(Opcode.CMSG_MOVE_COLLISION_ENABLE_ACK)]
1022+
[Parser(Opcode.CMSG_MOVE_SET_CAN_ADV_FLY_ACK)]
1023+
[Parser(Opcode.CMSG_MOVE_SET_CAN_DRIVE_ACK)]
1024+
[Parser(Opcode.CMSG_MOVE_ENABLE_FULL_SPEED_TURNING_ACK)]
10111025
public static void HandleMoveAck(Packet packet)
10121026
{
10131027
var stats = ReadMovementAck(packet);
@@ -1068,6 +1082,88 @@ public static void HandleMoveTimeSkipped(Packet packet)
10681082
packet.ReadInt32("Time");
10691083
}
10701084

1085+
[Parser(Opcode.CMSG_MOVE_CHANGE_VEHICLE_SEATS)]
1086+
public static void HandleMoveChangeVehicleSeats(Packet packet)
1087+
{
1088+
ReadMovementStats(packet);
1089+
packet.ReadPackedGuid128("DstVehicle");
1090+
packet.ReadByte("DstSeatIndex");
1091+
}
1092+
1093+
[Parser(Opcode.CMSG_MOVE_SET_COLLISION_HEIGHT_ACK)]
1094+
public static void HandleMoveSetCollisionHeightAck(Packet packet)
1095+
{
1096+
ReadMovementAck(packet, "MovementAck");
1097+
packet.ReadSingle("Height");
1098+
packet.ReadInt32("MountDisplayID");
1099+
packet.ReadByte("Reason");
1100+
}
1101+
1102+
[Parser(Opcode.CMSG_SET_ACTIVE_MOVER)]
1103+
public static void HandleSetActiveMover(Packet packet)
1104+
{
1105+
packet.ReadPackedGuid128("ActiveMover");
1106+
}
1107+
1108+
[Parser(Opcode.CMSG_TIME_SYNC_RESPONSE)]
1109+
public static void HandleTimeSyncResp(Packet packet)
1110+
{
1111+
packet.ReadUInt32("Counter");
1112+
packet.ReadUInt32("Ticks");
1113+
}
1114+
1115+
[Parser(Opcode.CMSG_TIME_SYNC_RESPONSE_FAILED)]
1116+
public static void HandleTimeSyncRespFailed(Packet packet)
1117+
{
1118+
packet.ReadUInt32("SequenceIndex");
1119+
}
1120+
1121+
[Parser(Opcode.CMSG_TIME_SYNC_RESPONSE_DROPPED)]
1122+
public static void HandleTimeSyncResponseDropped(Packet packet)
1123+
{
1124+
packet.ReadUInt32("SequenceIndexFirst");
1125+
packet.ReadUInt32("SequenceIndexLast");
1126+
}
1127+
1128+
[Parser(Opcode.CMSG_DISCARDED_TIME_SYNC_ACKS)]
1129+
public static void HandleDiscardedTimeSyncAcks(Packet packet)
1130+
{
1131+
packet.ReadUInt32("MaxSequenceIndex");
1132+
}
1133+
1134+
[Parser(Opcode.CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE)]
1135+
public static void HandleMoveInitActiveMoverComplete(Packet packet)
1136+
{
1137+
packet.ReadUInt32("Ticks");
1138+
}
1139+
1140+
[Parser(Opcode.CMSG_MOVE_APPLY_INERTIA_ACK)]
1141+
public static void HandleMoveApplyMovementInertiaAck(Packet packet)
1142+
{
1143+
ReadMovementAck(packet, "Data");
1144+
packet.ReadInt32("InertiaID");
1145+
packet.ReadUInt32("InertiaLifetimeMs");
1146+
}
1147+
1148+
[Parser(Opcode.CMSG_MOVE_REMOVE_INERTIA_ACK)]
1149+
public static void HandleMoveRemoveMovementInertiaAck(Packet packet)
1150+
{
1151+
ReadMovementAck(packet, "Data");
1152+
packet.ReadUInt32("InertiaID");
1153+
}
1154+
1155+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_BANKING_RATE_ACK)]
1156+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN_ACK)]
1157+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP_ACK)]
1158+
[Parser(Opcode.CMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD_ACK)]
1159+
public static void HandleMovementSpeedRangeAck(Packet packet)
1160+
{
1161+
var stats = ReadMovementAck(packet);
1162+
packet.Holder.ClientMove = new() { Mover = stats.MoverGuid, Position = stats.PositionAsVector4 };
1163+
packet.ReadSingle("SpeedMin");
1164+
packet.ReadSingle("SpeedMax");
1165+
}
1166+
10711167
[Parser(Opcode.SMSG_ABORT_NEW_WORLD)]
10721168
public static void HandleMovementZero(Packet packet)
10731169
{

WowPacketParserModule.V5_5_0_61735/Parsers/SessionHandler.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,13 @@ public static void HandleLogoutRequest(Packet packet)
196196
packet.ReadBit("IdleLogout");
197197
}
198198

199+
[Parser(Opcode.CMSG_CONNECT_TO_FAILED)]
200+
public static void HandleRedirectFailed(Packet packet)
201+
{
202+
packet.ReadSByte("Con");
203+
packet.ReadUInt32("Serial");
204+
}
205+
199206
[Parser(Opcode.SMSG_WAIT_QUEUE_FINISH)]
200207
[Parser(Opcode.CMSG_LOGOUT_CANCEL)]
201208
[Parser(Opcode.CMSG_LOGOUT_INSTANT)]

WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1446,6 +1446,24 @@ public static void HandleLearnTalents(Packet packet)
14461446
packet.ReadUInt16("Talents");
14471447
}
14481448

1449+
[Parser(Opcode.CMSG_UPDATE_MISSILE_TRAJECTORY)]
1450+
public static void HandleUpdateMissileTrajectory(Packet packet)
1451+
{
1452+
packet.ReadPackedGuid128("Guid");
1453+
packet.ReadPackedGuid128("CastID");
1454+
packet.ReadUInt32("MoveMsgID");
1455+
packet.ReadInt32("SpellID");
1456+
packet.ReadSingle("Pitch");
1457+
packet.ReadSingle("Speed");
1458+
packet.ReadVector3("FirePos");
1459+
packet.ReadVector3("ImpactPos");
1460+
1461+
packet.ResetBitReader();
1462+
var hasStatus = packet.ReadBit("HasStatus");
1463+
if (hasStatus)
1464+
Substructures.MovementHandler.ReadMovementStats(packet, "Status");
1465+
}
1466+
14491467
[Parser(Opcode.SMSG_SUMMON_CANCEL)]
14501468
[Parser(Opcode.SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA)]
14511469
[Parser(Opcode.SMSG_PET_CLEAR_SPELLS)]

0 commit comments

Comments
 (0)