Skip to content

Commit 20ca993

Browse files
committed
Add 5.5.0 CMSG handlers
CMSG_CANCEL_TEMP_ENCHANTMENT CMSG_SET_TAXI_BENCHMARK_MODE CMSG_REPORT_PVP_PLAYER_AFK CMSG_ALTER_APPEARANCE CMSG_OPT_OUT_OF_LOOT CMSG_TOTEM_DESTROYED CMSG_DISMISS_CRITTER CMSG_QUERY_INSPECT_ACHIEVEMENTS CMSG_HEARTH_AND_RESURRECT CMSG_SAVE_EQUIPMENT_SET CMSG_DELETE_EQUIPMENT_SET CMSG_INSTANCE_LOCK_RESPONSE CMSG_LOW_LEVEL_RAID2 CMSG_DECLINE_GUILD_INVITES CMSG_OVERRIDE_SCREEN_FLASH CMSG_BATTLEMASTER_JOIN CMSG_BATTLEMASTER_JOIN_ARENA CMSG_BATTLEMASTER_JOIN_SKIRMISH CMSG_BATTLEFIELD_PORT CMSG_REPOP_REQUEST CMSG_CLIENT_PORT_GRAVEYARD CMSG_SET_SELECTION CMSG_INSPECT CMSG_REQUEST_CROWD_CONTROL_SPELL CMSG_BLACK_MARKET_OPEN CMSG_BLACK_MARKET_REQUEST_ITEMS CMSG_BLACK_MARKET_BID_ON_ITEM CMSG_QUEST_LOG_REMOVE_QUEST CMSG_GET_ITEM_PURCHASE_DATA CMSG_ITEM_PURCHASE_REFUND CMSG_SELF_RES CMSG_SET_ACTION_BAR_TOGGLES CMSG_SIGN_PETITION CMSG_DECLINE_PETITION CMSG_TURN_IN_PETITION CMSG_MAIL_GET_LIST CMSG_MAIL_TAKE_MONEY CMSG_MAIL_TAKE_ITEM CMSG_QUERY_NEXT_MAIL_TIME CMSG_MAIL_MARK_AS_READ CMSG_MAIL_CREATE_TEXT_ITEM CMSG_SET_LOOT_SPECIALIZATION CMSG_EMOTE CMSG_OPENING_CINEMATIC CMSG_NEXT_CINEMATIC_CAMERA CMSG_COMPLETE_CINEMATIC CMSG_CONVERSATION_LINE_STARTED CMSG_QUEST_GIVER_CLOSE_QUEST CMSG_LEARN_TALENT CMSG_LEARN_PREVIEW_TALENTS CMSG_PET_LEARN_TALENT CMSG_LEARN_PREVIEW_TALENTS_PET CMSG_SET_PRIMARY_TALENT_TREE CMSG_LEARN_TALENTS CMSG_SET_ACTION_BUTTON CMSG_SET_AMMO CMSG_SHOWING_HELM CMSG_SHOWING_CLOAK CMSG_QUEST_GIVER_STATUS_TRACKED_QUERY CMSG_WRAP_ITEM CMSG_USE_EQUIPMENT_SET CMSG_AUTOSTORE_BANK_ITEM CMSG_AUTOBANK_ITEM CMSG_AUTO_EQUIP_ITEM CMSG_AUTO_STORE_BAG_ITEM CMSG_SWAP_ITEM CMSG_SWAP_INV_ITEM CMSG_SPLIT_ITEM CMSG_AUTO_EQUIP_ITEM_SLOT CMSG_MOVE_START_FORWARD CMSG_MOVE_START_BACKWARD CMSG_MOVE_STOP CMSG_MOVE_START_STRAFE_LEFT CMSG_MOVE_START_STRAFE_RIGHT CMSG_MOVE_STOP_STRAFE CMSG_MOVE_JUMP CMSG_MOVE_DOUBLE_JUMP CMSG_MOVE_START_TURN_LEFT CMSG_MOVE_START_TURN_RIGHT CMSG_MOVE_STOP_TURN CMSG_MOVE_START_PITCH_UP CMSG_MOVE_START_PITCH_DOWN CMSG_MOVE_STOP_PITCH CMSG_MOVE_SET_RUN_MODE CMSG_MOVE_SET_WALK_MODE CMSG_MOVE_TELEPORT_ACK CMSG_MOVE_FALL_LAND CMSG_MOVE_START_SWIM CMSG_MOVE_STOP_SWIM CMSG_MOVE_SET_FACING CMSG_MOVE_SET_PITCH CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK CMSG_MOVE_FORCE_ROOT_ACK CMSG_MOVE_FORCE_UNROOT_ACK CMSG_MOVE_HEARTBEAT CMSG_MOVE_KNOCK_BACK_ACK CMSG_MOVE_HOVER_ACK CMSG_MOVE_SET_VEHICLE_REC_ID_ACK CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK CMSG_MOVE_REMOVE_MOVEMENT_FORCE_ACK CMSG_MOVE_REMOVE_MOVEMENT_FORCES CMSG_MOVE_SPLINE_DONE CMSG_MOVE_FALL_RESET CMSG_MOVE_UPDATE_FALL_SPEED CMSG_MOVE_TIME_SKIPPED CMSG_MOVE_FEATHER_FALL_ACK CMSG_MOVE_WATER_WALK_ACK CMSG_MOVE_ENABLE_DOUBLE_JUMP_ACK
1 parent 12a0e62 commit 20ca993

19 files changed

+675
-0
lines changed

WowPacketParserModule.V5_5_0_61735/Parsers/AchievementHandler.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,5 +119,11 @@ public static void HandleCriteriaUpdateAccount(Packet packet)
119119
{
120120
ReadCriteriaProgress(packet, "Progress");
121121
}
122+
123+
[Parser(Opcode.CMSG_QUERY_INSPECT_ACHIEVEMENTS)]
124+
public static void HandleQueryInspectAchievements(Packet packet)
125+
{
126+
packet.ReadPackedGuid128("Player");
127+
}
122128
}
123129
}

WowPacketParserModule.V5_5_0_61735/Parsers/ActionBarHandler.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,21 @@ public static void HandleActionButtons(Packet packet)
5353

5454
packet.ReadByte("Reason");
5555
}
56+
57+
[Parser(Opcode.CMSG_SET_ACTION_BAR_TOGGLES)]
58+
public static void HandleSetActionBarToggles(Packet packet)
59+
{
60+
packet.ReadByte("ActionBar");
61+
}
62+
63+
[Parser(Opcode.CMSG_SET_ACTION_BUTTON)]
64+
public static void HandleActionButton(Packet packet)
65+
{
66+
var data = packet.ReadUInt64();
67+
68+
packet.AddValue("Type", (ActionButtonType)((data & 0xFF00000000000000) >> 56));
69+
packet.AddValue("ID", data & 0x00FFFFFFFFFFFFFF);
70+
packet.ReadByte("Button");
71+
}
5672
}
5773
}

WowPacketParserModule.V5_5_0_61735/Parsers/BattlegroundHandler.cs

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,12 +518,67 @@ public static void HandleAreaSpiritHealer(Packet packet)
518518
packet.ReadPackedGuid128("HealerGuid");
519519
}
520520

521+
[Parser(Opcode.CMSG_REPORT_PVP_PLAYER_AFK)]
522+
public static void HandleReportPvPPlayerAfk(Packet packet)
523+
{
524+
packet.ReadGuid("Offender");
525+
}
526+
527+
[Parser(Opcode.CMSG_BATTLEMASTER_JOIN)]
528+
public static void HandleBattlemasterJoin(Packet packet)
529+
{
530+
ReadPackedBattlegroundQueueTypeID(packet);
531+
packet.ReadByte("Roles");
532+
533+
for (int i = 0; i < 2; i++)
534+
packet.ReadInt32("BlacklistMap", i);
535+
536+
packet.ReadPackedGuid128("BattlemasterGuid");
537+
packet.ReadInt32("UnkID");
538+
packet.ReadInt32("BattlefieldIndexSpecific");
539+
packet.ReadBit("JoinAsGroup");
540+
}
541+
542+
[Parser(Opcode.CMSG_BATTLEMASTER_JOIN_ARENA)]
543+
public static void HandleBattlemasterJoinArena(Packet packet)
544+
{
545+
packet.ReadPackedGuid128("BattlemasterGuid");
546+
packet.ReadByte("TeamSizeIndex");
547+
packet.ReadByteE<LfgRoleFlag>("Roles");
548+
}
549+
550+
[Parser(Opcode.CMSG_BATTLEMASTER_JOIN_SKIRMISH)]
551+
public static void HandleBattlemasterJoinSkirmish(Packet packet)
552+
{
553+
packet.ReadPackedGuid128("BattlemasterGUID");
554+
packet.ReadByteE<LfgRoleFlag>("Roles");
555+
packet.ReadByte("Bracket");
556+
packet.ResetBitReader();
557+
packet.ReadBit("JoinAsGroup");
558+
packet.ReadBit("IsRequeue");
559+
}
560+
561+
[Parser(Opcode.CMSG_BATTLEFIELD_PORT)]
562+
public static void HandleBattlefieldPort(Packet packet)
563+
{
564+
LfgHandler.ReadCliRideTicket(packet);
565+
packet.ResetBitReader();
566+
packet.ReadBit("AcceptedInvite");
567+
}
568+
569+
[Parser(Opcode.CMSG_REQUEST_CROWD_CONTROL_SPELL)]
570+
public static void HandleRequestCrowdControlSpell(Packet packet)
571+
{
572+
packet.ReadPackedGuid128("PlayerGuid");
573+
}
574+
521575
[Parser(Opcode.SMSG_BATTLEFIELD_PORT_DENIED)]
522576
[Parser(Opcode.SMSG_BATTLEGROUND_INFO_THROTTLED)]
523577
[Parser(Opcode.CMSG_BATTLEFIELD_LEAVE)]
524578
[Parser(Opcode.CMSG_PVP_LOG_DATA)]
525579
[Parser(Opcode.CMSG_REQUEST_PVP_REWARDS)]
526580
[Parser(Opcode.CMSG_REQUEST_SCHEDULED_PVP_INFO)]
581+
[Parser(Opcode.CMSG_HEARTH_AND_RESURRECT)]
527582
public static void HandleBattlegroundZero(Packet packet)
528583
{
529584
}

WowPacketParserModule.V5_5_0_61735/Parsers/BlackMarketHandler.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,27 @@ public static void HandleBlackMarketOutbidOrWon(Packet packet)
4747
packet.ReadInt32("RandomPropertiesID");
4848
Substructures.ItemHandler.ReadItemInstance(packet, "Item");
4949
}
50+
51+
[Parser(Opcode.CMSG_BLACK_MARKET_OPEN)]
52+
public static void HandleBlackMarketOpen(Packet packet)
53+
{
54+
packet.ReadPackedGuid128("NpcGUID");
55+
}
56+
57+
[Parser(Opcode.CMSG_BLACK_MARKET_REQUEST_ITEMS)]
58+
public static void HandleBlackMarketRequestItems(Packet packet)
59+
{
60+
packet.ReadPackedGuid128("NpcGUID");
61+
packet.ReadTime64("LastUpdate");
62+
}
63+
64+
[Parser(Opcode.CMSG_BLACK_MARKET_BID_ON_ITEM)]
65+
public static void HandleBlackMarketBidOnItem(Packet packet)
66+
{
67+
packet.ReadPackedGuid128("NpcGUID");
68+
packet.ReadInt32("MarketID");
69+
packet.ReadUInt64("BidAmount");
70+
Substructures.ItemHandler.ReadItemInstance(packet, "Item");
71+
}
5072
}
5173
}

WowPacketParserModule.V5_5_0_61735/Parsers/CharacterHandler.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,38 @@ public static void HandleSetPVP(Packet packet)
733733
packet.ReadBit("EnablePVP");
734734
}
735735

736+
[Parser(Opcode.CMSG_ALTER_APPEARANCE)]
737+
public static void HandleAlterAppearance(Packet packet)
738+
{
739+
var customizationsCount = packet.ReadUInt32("CustomizationsCount");
740+
packet.ReadByte("NewSexID");
741+
packet.ReadByteE<Race>("CustomizedRace");
742+
packet.ReadInt32("CustomizedChrModelID");
743+
packet.ReadByteE<Race>("UnalteredVisualRaceID");
744+
745+
for (var i = 0; i < customizationsCount; i++)
746+
ReadChrCustomizationChoice(packet, "Customizations", i);
747+
}
748+
749+
[Parser(Opcode.CMSG_INSPECT)]
750+
public static void HandleInspect(Packet packet)
751+
{
752+
packet.ReadPackedGuid128("Target");
753+
}
754+
755+
[Parser(Opcode.CMSG_SET_LOOT_SPECIALIZATION)]
756+
public static void HandleSetLootSpecialization(Packet packet)
757+
{
758+
packet.ReadInt32("SpecID");
759+
}
760+
761+
[Parser(Opcode.CMSG_SHOWING_CLOAK)]
762+
[Parser(Opcode.CMSG_SHOWING_HELM)]
763+
public static void HandleShowingCloakAndHelm434(Packet packet)
764+
{
765+
packet.ReadBool("Showing");
766+
}
767+
736768
[Parser(Opcode.SMSG_PLAYER_CHOICE_CLEAR)]
737769
[Parser(Opcode.SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI)]
738770
[Parser(Opcode.CMSG_CONFIRM_BARBERS_CHOICE)]

WowPacketParserModule.V5_5_0_61735/Parsers/ChatHandler.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,5 +309,10 @@ public static void HandleSendTextEmote(Packet packet)
309309
for (var i = 0; i < count; ++i)
310310
packet.ReadInt32("SpellVisualKitID", i);
311311
}
312+
313+
[Parser(Opcode.CMSG_EMOTE)]
314+
public static void HandleChatNull(Packet packet)
315+
{
316+
}
312317
}
313318
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using WowPacketParser.Enums;
2+
using WowPacketParser.Misc;
3+
using WowPacketParser.Parsing;
4+
5+
namespace WowPacketParserModule.V5_5_0_61735.Parsers
6+
{
7+
public static class ConversationHandler
8+
{
9+
[Parser(Opcode.CMSG_CONVERSATION_LINE_STARTED)]
10+
public static void HandleConversationLineStarted(Packet packet)
11+
{
12+
packet.ReadPackedGuid128("ConversationGUID");
13+
packet.ReadUInt32("ConversationLineID");
14+
}
15+
}
16+
}

WowPacketParserModule.V5_5_0_61735/Parsers/EquipmentSetHandler.cs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,61 @@ public static void HandleAssignEquipmentSetSpec(Packet packet)
6969
packet.ReadUInt64("Guid");
7070
packet.ReadInt32("SpecID");
7171
}
72+
73+
[Parser(Opcode.CMSG_SAVE_EQUIPMENT_SET)]
74+
public static void HandleEquipmentSetSave(Packet packet)
75+
{
76+
packet.ReadInt32("Type");
77+
packet.ReadUInt64("Guid");
78+
packet.ReadInt32("SetID");
79+
int ignoreMask = packet.ReadInt32("IgnoreMask");
80+
81+
for (var i = 0; i < NumSlots; i++)
82+
{
83+
bool ignore = (ignoreMask & (1 << i)) != 0;
84+
packet.ReadPackedGuid128("Item Guid" + (ignore ? " (Ignored)" : ""), i);
85+
packet.ReadInt32("Appearance");
86+
}
87+
88+
for (var j = 0; j < 2; j++)
89+
packet.ReadInt32("Enchants", j);
90+
91+
packet.ReadInt32("SecondaryShoulderApparanceID");
92+
packet.ReadInt32("SecondaryShoulderSlot");
93+
packet.ReadInt32("SecondaryWeaponAppearanceID");
94+
packet.ReadInt32("SecondaryWeaponSlot");
95+
96+
packet.ResetBitReader();
97+
98+
var hasSpecIndex = packet.ReadBit("HasSpecIndex");
99+
var setNameLen = packet.ReadBits(8);
100+
var setIconLen = packet.ReadBits(9);
101+
102+
if (hasSpecIndex)
103+
packet.ReadInt32("AssignedSpecIndex");
104+
105+
packet.ReadWoWString("SetName", setNameLen);
106+
packet.ReadWoWString("SetIcon", setIconLen);
107+
}
108+
109+
[Parser(Opcode.CMSG_DELETE_EQUIPMENT_SET)]
110+
public static void HandleDeleteEquipmentSet(Packet packet)
111+
{
112+
packet.ReadUInt64("ID");
113+
}
114+
115+
[Parser(Opcode.CMSG_USE_EQUIPMENT_SET)]
116+
public static void HandleUseEquipmentSet(Packet packet)
117+
{
118+
ItemHandler.ReadInvUpdate(packet, "InvUpdate");
119+
for (int i = 0; i < NumSlots; i++)
120+
{
121+
packet.ReadPackedGuid128("Item");
122+
packet.ReadByte("ContainerSlot");
123+
packet.ReadByte("Slot");
124+
}
125+
126+
packet.ReadUInt64("GUID");
127+
}
72128
}
73129
}

WowPacketParserModule.V5_5_0_61735/Parsers/GuildHandler.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -961,6 +961,36 @@ public static void HandleClientPetitionShowSignatures(Packet packet)
961961
packet.ReadPackedGuid128("PetitionGuid");
962962
}
963963

964+
[Parser(Opcode.CMSG_DECLINE_GUILD_INVITES)]
965+
public static void HandleDeclineGuildInvites(Packet packet)
966+
{
967+
packet.ReadBit("Allow");
968+
}
969+
970+
[Parser(Opcode.CMSG_SIGN_PETITION)]
971+
public static void HandleSignPetition(Packet packet)
972+
{
973+
packet.ReadPackedGuid128("PetitionGUID");
974+
packet.ReadByte("Choice");
975+
}
976+
977+
[Parser(Opcode.CMSG_DECLINE_PETITION)]
978+
public static void HandleDeclinePetition(Packet packet)
979+
{
980+
packet.ReadPackedGuid128("PetitionGUID");
981+
}
982+
983+
[Parser(Opcode.CMSG_TURN_IN_PETITION)]
984+
public static void HandleTurnInPetition(Packet packet)
985+
{
986+
packet.ReadPackedGuid128("PetitionGUID");
987+
packet.ReadInt32("BgColorRGB");
988+
packet.ReadInt32("IconStyle");
989+
packet.ReadInt32("IconColorRGB");
990+
packet.ReadInt32("BorderStyle");
991+
packet.ReadInt32("BorderColorRGB");
992+
}
993+
964994
[Parser(Opcode.SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED)]
965995
[Parser(Opcode.SMSG_GUILD_EVENT_DISBANDED)]
966996
[Parser(Opcode.SMSG_GUILD_EVENT_RANKS_UPDATED)]

WowPacketParserModule.V5_5_0_61735/Parsers/InstanceHandler.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,12 @@ public static void HandleSetDifficultyId(Packet packet)
228228
packet.ReadInt32<DifficultyId>("DifficultyID");
229229
}
230230

231+
[Parser(Opcode.CMSG_INSTANCE_LOCK_RESPONSE)]
232+
public static void HandleInstanceLockResponse(Packet packet)
233+
{
234+
packet.ReadBool("Accept");
235+
}
236+
231237
[Parser(Opcode.SMSG_RESET_FAILED_NOTIFY)]
232238
[Parser(Opcode.SMSG_INSTANCE_ENCOUNTER_END)]
233239
[Parser(Opcode.SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION)]

0 commit comments

Comments
 (0)