Skip to content

Commit f83be14

Browse files
committed
Implement parsing of 2.5.5
1 parent 93b7f9e commit f83be14

69 files changed

Lines changed: 8280 additions & 10 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

WowPacketParser/Enums/ClientVersionBuild.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,8 @@ public enum ClientVersionBuild
871871
V1_15_8_64272 = 64272, // live
872872
V1_15_8_64858 = 64858, // live
873873
V1_15_8_64907 = 64907, // live
874+
V1_15_8_66129 = 66129, // live
875+
V1_15_8_66564 = 66564, // live
874876

875877
// TBC Classic
876878
V2_5_1_38598 = 38598, // ptr
@@ -922,6 +924,21 @@ public enum ClientVersionBuild
922924
V2_5_4_44400 = 44400, // both live and ptr
923925
V2_5_4_44833 = 44833, // both live and ptr
924926

927+
V2_5_5_64796 = 64796, // ptr
928+
V2_5_5_64912 = 64912, // ptr
929+
V2_5_5_65000 = 65000, // ptr
930+
V2_5_5_65417 = 65417, // ptr and live
931+
V2_5_5_65534 = 65534, // live
932+
V2_5_5_65676 = 65676, // live
933+
V2_5_5_65795 = 65795, // live
934+
V2_5_5_65895 = 65895, // live
935+
V2_5_5_66150 = 66150, // live
936+
V2_5_5_66265 = 66265, // live
937+
V2_5_5_66383 = 66383, // live
938+
V2_5_5_66567 = 66567, // live
939+
V2_5_5_66765 = 66765, // live
940+
V2_5_5_67157 = 67157, // live
941+
925942
V3_4_0_44832 = 44832, // ptr / beta
926943
V3_4_0_45166 = 45166, // ptr / beta
927944
V3_4_0_45189 = 45189, // ptr / beta

WowPacketParser/Enums/Version/Opcodes.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
using WowPacketParser.Enums.Version.V12_0_1_65818;
107107
using WowPacketParser.Enums.Version.V12_0_5_66741;
108108
using WowPacketParser.Misc;
109+
using WowPacketParser.Enums.Version.V2_5_5_64796;
109110

110111
namespace WowPacketParser.Enums.Version
111112
{
@@ -1181,6 +1182,8 @@ public static ClientVersionBuild GetOpcodeDefiningBuild(ClientVersionBuild build
11811182
case ClientVersionBuild.V1_15_8_64272:
11821183
case ClientVersionBuild.V1_15_8_64858:
11831184
case ClientVersionBuild.V1_15_8_64907:
1185+
case ClientVersionBuild.V1_15_8_66129:
1186+
case ClientVersionBuild.V1_15_8_66564:
11841187
return ClientVersionBuild.V1_15_8_63829;
11851188
case ClientVersionBuild.V3_4_4_59817:
11861189
case ClientVersionBuild.V3_4_4_59853:
@@ -1256,6 +1259,21 @@ public static ClientVersionBuild GetOpcodeDefiningBuild(ClientVersionBuild build
12561259
case ClientVersionBuild.V5_5_3_66128:
12571260
case ClientVersionBuild.V5_5_3_66290:
12581261
return ClientVersionBuild.V5_5_3_64802;
1262+
case ClientVersionBuild.V2_5_5_64796:
1263+
case ClientVersionBuild.V2_5_5_64912:
1264+
case ClientVersionBuild.V2_5_5_65000:
1265+
case ClientVersionBuild.V2_5_5_65417:
1266+
case ClientVersionBuild.V2_5_5_65534:
1267+
case ClientVersionBuild.V2_5_5_65676:
1268+
case ClientVersionBuild.V2_5_5_65795:
1269+
case ClientVersionBuild.V2_5_5_65895:
1270+
case ClientVersionBuild.V2_5_5_66150:
1271+
case ClientVersionBuild.V2_5_5_66265:
1272+
case ClientVersionBuild.V2_5_5_66383:
1273+
case ClientVersionBuild.V2_5_5_66567:
1274+
case ClientVersionBuild.V2_5_5_66765:
1275+
case ClientVersionBuild.V2_5_5_67157:
1276+
return ClientVersionBuild.V2_5_5_64796;
12591277
default:
12601278
return ClientVersionBuild.V3_3_5a_12340;
12611279
}
@@ -1457,6 +1475,8 @@ public static BiDictionary<Opcode, int> GetOpcodeDictionary(ClientVersionBuild b
14571475
return Opcodes_2_5_3.Opcodes(direction);
14581476
case ClientVersionBuild.V2_5_4_42695:
14591477
return Opcodes_2_5_4.Opcodes(direction);
1478+
case ClientVersionBuild.V2_5_5_64796:
1479+
return Opcodes_2_5_5.Opcodes(direction);
14601480
case ClientVersionBuild.V3_4_0_45166:
14611481
return Opcodes_3_4_0.Opcodes(direction);
14621482
case ClientVersionBuild.V3_4_1_47014:

WowPacketParser/Enums/Version/UpdateFields.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,6 +1246,8 @@ private static ClientVersionBuild GetUpdateFieldDictionaryBuild(ClientVersionBui
12461246
case ClientVersionBuild.V1_15_8_64272:
12471247
case ClientVersionBuild.V1_15_8_64858:
12481248
case ClientVersionBuild.V1_15_8_64907:
1249+
case ClientVersionBuild.V1_15_8_66129:
1250+
case ClientVersionBuild.V1_15_8_66564:
12491251
{
12501252
return ClientVersionBuild.V1_15_8_63829;
12511253
}
@@ -1306,6 +1308,23 @@ private static ClientVersionBuild GetUpdateFieldDictionaryBuild(ClientVersionBui
13061308
{
13071309
return ClientVersionBuild.V2_5_4_42800;
13081310
}
1311+
case ClientVersionBuild.V2_5_5_64796:
1312+
case ClientVersionBuild.V2_5_5_64912:
1313+
case ClientVersionBuild.V2_5_5_65000:
1314+
case ClientVersionBuild.V2_5_5_65417:
1315+
case ClientVersionBuild.V2_5_5_65534:
1316+
case ClientVersionBuild.V2_5_5_65676:
1317+
case ClientVersionBuild.V2_5_5_65795:
1318+
case ClientVersionBuild.V2_5_5_65895:
1319+
case ClientVersionBuild.V2_5_5_66150:
1320+
case ClientVersionBuild.V2_5_5_66265:
1321+
case ClientVersionBuild.V2_5_5_66383:
1322+
case ClientVersionBuild.V2_5_5_66567:
1323+
case ClientVersionBuild.V2_5_5_66765:
1324+
case ClientVersionBuild.V2_5_5_67157:
1325+
{
1326+
return ClientVersionBuild.V2_5_5_64796;
1327+
}
13091328
case ClientVersionBuild.V3_4_0_45166:
13101329
case ClientVersionBuild.V3_4_0_44832:
13111330
case ClientVersionBuild.V3_4_0_45189:

WowPacketParser/Enums/Version/V1_15_8_63829/Opcodes.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,17 @@ public static BiDictionary<Opcode, int> Opcodes(Direction direction)
2020
private static readonly BiDictionary<Opcode, int> ClientOpcodes = new()
2121
{
2222
{ Opcode.CMSG_CHAT_MESSAGE_SAY, 0x2F0023 },
23-
{ Opcode.CMSG_SEND_TEXT_EMOTE, 0x2F0024 },
23+
{ Opcode.CMSG_SEND_TEXT_EMOTE, 0x340013 },
2424
{ Opcode.CMSG_USE_ITEM, 0x30016B },
2525
};
2626

2727
private static readonly BiDictionary<Opcode, int> ServerOpcodes = new()
2828
{
29-
{ Opcode.SMSG_TEXT_EMOTE, 0x3B0116 },
30-
{ Opcode.SMSG_EMOTE, 0x3A026B },
29+
{ Opcode.SMSG_TEXT_EMOTE, 0x3A011D },
30+
{ Opcode.SMSG_EMOTE, 0x3A026C },
3131
{ Opcode.SMSG_CHAT, 0x3F0001 },
3232
{ Opcode.SMSG_ON_MONSTER_MOVE, 0x4C0002 },
33+
{ Opcode.SMSG_MOVE_UPDATE_TELEPORT, 0x4C000F },
3334
{ Opcode.SMSG_UPDATE_OBJECT, 0x4A0000 },
3435
{ Opcode.SMSG_AURA_UPDATE, 0x510011 },
3536
{ Opcode.SMSG_SPELL_GO, 0x510028 },
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using WowPacketParser.Misc;
2+
3+
namespace WowPacketParser.Enums.Version.V2_5_5_64796
4+
{
5+
public static class Opcodes_2_5_5
6+
{
7+
public static BiDictionary<Opcode, int> Opcodes(Direction direction)
8+
{
9+
switch (direction)
10+
{
11+
case Direction.ClientToServer:
12+
return ClientOpcodes;
13+
case Direction.ServerToClient:
14+
return ServerOpcodes;
15+
default:
16+
return MiscOpcodes;
17+
}
18+
}
19+
20+
private static readonly BiDictionary<Opcode, int> ClientOpcodes = new()
21+
{
22+
{ Opcode.CMSG_CHAT_MESSAGE_SAY, 0x2F0023 },
23+
{ Opcode.CMSG_SEND_TEXT_EMOTE, 0x3E0013 },
24+
{ Opcode.CMSG_USE_ITEM, 0x30016B },
25+
};
26+
27+
private static readonly BiDictionary<Opcode, int> ServerOpcodes = new()
28+
{
29+
{ Opcode.SMSG_TEXT_EMOTE, 0x440121 },
30+
{ Opcode.SMSG_EMOTE, 0x440270 },
31+
{ Opcode.SMSG_CHAT, 0x490001 },
32+
{ Opcode.SMSG_ON_MONSTER_MOVE, 0x5C0002 },
33+
{ Opcode.SMSG_UPDATE_OBJECT, 0x5A0000 },
34+
{ Opcode.SMSG_AURA_UPDATE, 0x630011 },
35+
{ Opcode.SMSG_SPELL_GO, 0x630028 },
36+
{ Opcode.SMSG_SPELL_START, 0x630029 },
37+
{ Opcode.SMSG_PET_SPELLS_MESSAGE, 0x630014 },
38+
{ Opcode.SMSG_SPELL_NON_MELEE_DAMAGE_LOG, 0x630021 },
39+
};
40+
41+
private static readonly BiDictionary<Opcode, int> MiscOpcodes = new();
42+
}
43+
}

WowPacketParser/Misc/ClientVersion.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1728,6 +1728,22 @@ public static ClientVersionBuild GetVersionDefiningBuild(ClientVersionBuild buil
17281728
case ClientVersionBuild.V1_15_8_64272:
17291729
case ClientVersionBuild.V1_15_8_64858:
17301730
case ClientVersionBuild.V1_15_8_64907:
1731+
case ClientVersionBuild.V1_15_8_66129:
1732+
case ClientVersionBuild.V1_15_8_66564:
1733+
case ClientVersionBuild.V2_5_5_64796:
1734+
case ClientVersionBuild.V2_5_5_64912:
1735+
case ClientVersionBuild.V2_5_5_65000:
1736+
case ClientVersionBuild.V2_5_5_65417:
1737+
case ClientVersionBuild.V2_5_5_65534:
1738+
case ClientVersionBuild.V2_5_5_65676:
1739+
case ClientVersionBuild.V2_5_5_65795:
1740+
case ClientVersionBuild.V2_5_5_65895:
1741+
case ClientVersionBuild.V2_5_5_66150:
1742+
case ClientVersionBuild.V2_5_5_66265:
1743+
case ClientVersionBuild.V2_5_5_66383:
1744+
case ClientVersionBuild.V2_5_5_66567:
1745+
case ClientVersionBuild.V2_5_5_66765:
1746+
case ClientVersionBuild.V2_5_5_67157:
17311747
return ClientVersionBuild.V5_5_0_61735;
17321748
case ClientVersionBuild.BattleNetV37165:
17331749
return ClientVersionBuild.BattleNetV37165;
@@ -2167,6 +2183,8 @@ public static bool IsSeasonOfDiscoveryClientVersionBuild(ClientVersionBuild buil
21672183
case ClientVersionBuild.V1_15_8_64272:
21682184
case ClientVersionBuild.V1_15_8_64858:
21692185
case ClientVersionBuild.V1_15_8_64907:
2186+
case ClientVersionBuild.V1_15_8_66129:
2187+
case ClientVersionBuild.V1_15_8_66564:
21702188
return true;
21712189
default:
21722190
return false;
@@ -2222,6 +2240,20 @@ public static bool IsBurningCrusadeClassicClientVersionBuild(ClientVersionBuild
22222240
case ClientVersionBuild.V2_5_4_44171:
22232241
case ClientVersionBuild.V2_5_4_44400:
22242242
case ClientVersionBuild.V2_5_4_44833:
2243+
case ClientVersionBuild.V2_5_5_64796:
2244+
case ClientVersionBuild.V2_5_5_64912:
2245+
case ClientVersionBuild.V2_5_5_65000:
2246+
case ClientVersionBuild.V2_5_5_65417:
2247+
case ClientVersionBuild.V2_5_5_65534:
2248+
case ClientVersionBuild.V2_5_5_65676:
2249+
case ClientVersionBuild.V2_5_5_65795:
2250+
case ClientVersionBuild.V2_5_5_65895:
2251+
case ClientVersionBuild.V2_5_5_66150:
2252+
case ClientVersionBuild.V2_5_5_66265:
2253+
case ClientVersionBuild.V2_5_5_66383:
2254+
case ClientVersionBuild.V2_5_5_66567:
2255+
case ClientVersionBuild.V2_5_5_66765:
2256+
case ClientVersionBuild.V2_5_5_67157:
22252257
return true;
22262258
default:
22272259
return false;

WowPacketParserModule.Substructures/MythicPlusHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static void ReadDungeonScoreSummary550(Packet packet, params object[] ind
4747

4848
public static void ReadDungeonScoreSummary(Packet packet, params object[] indexes)
4949
{
50-
if (ClientVersion.IsMoPClassicClientVersionBuild(ClientVersion.Build) || ClientVersion.IsSeasonOfDiscoveryClientVersionBuild(ClientVersion.Build))
50+
if (ClientVersion.IsMoPClassicClientVersionBuild(ClientVersion.Build) || ClientVersion.IsSeasonOfDiscoveryClientVersionBuild(ClientVersion.Build) || ClientVersion.IsBurningCrusadeClassicClientVersionBuild(ClientVersion.Build))
5151
ReadDungeonScoreSummary550(packet, indexes);
5252
else
5353
{

WowPacketParserModule.V5_5_0_61735/Parsers/CombatLogHandler.cs

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ public static void ReadSpellDamageShield(Packet packet)
347347
SpellHandler.ReadSpellCastLogData(packet);
348348
}
349349

350-
[Parser(Opcode.SMSG_SPELL_NON_MELEE_DAMAGE_LOG)]
350+
[Parser(Opcode.SMSG_SPELL_NON_MELEE_DAMAGE_LOG, ClientBranch.MoP)]
351351
public static void HandleSpellNonMeleeDmgLog(Packet packet)
352352
{
353353
packet.ReadPackedGuid128("Me");
@@ -371,6 +371,44 @@ public static void HandleSpellNonMeleeDmgLog(Packet packet)
371371
packet.ReadBit("Periodic");
372372

373373
packet.ReadBitsE<AttackerStateFlags>("Flags", 7);
374+
var hasDebugData = packet.ReadBit("HasDebugData");
375+
var hasLogData = packet.ReadBit("HasLogData");
376+
var hasContentTuning = packet.ReadBit("HasContentTuning");
377+
378+
if (hasLogData)
379+
SpellHandler.ReadSpellCastLogData(packet, "SpellCastLogData");
380+
381+
if (hasDebugData)
382+
ReadSpellNonMeleeDebugData(packet, "DebugData");
383+
384+
if (hasContentTuning)
385+
ReadContentTuningParams(packet, "ContentTuning");
386+
}
387+
388+
[Parser(Opcode.SMSG_SPELL_NON_MELEE_DAMAGE_LOG, ClientBranch.TBC)]
389+
public static void HandleSpellNonMeleeDmgLog255(Packet packet)
390+
{
391+
packet.ReadPackedGuid128("Me");
392+
packet.ReadPackedGuid128("CasterGUID");
393+
packet.ReadPackedGuid128("CastID");
394+
395+
packet.ReadInt32<SpellId>("SpellID");
396+
packet.ReadInt32("SpellXSpellVisual");
397+
packet.ReadInt32("Damage");
398+
packet.ReadInt32("OriginalDamage");
399+
packet.ReadInt32("OverKill");
400+
401+
packet.ReadByte("SchoolMask");
402+
403+
packet.ReadInt32("Absorbed");
404+
packet.ReadInt32("Resisted");
405+
packet.ReadInt32("ShieldBlock");
406+
407+
packet.ReadInt32E<AttackerStateFlags>("Flags");
408+
409+
packet.ResetBitReader();
410+
411+
packet.ReadBit("Periodic");
374412

375413
var hasDebugData = packet.ReadBit("HasDebugData");
376414
var hasLogData = packet.ReadBit("HasLogData");

WowPacketParserModule.V5_5_0_61735/Parsers/MovementHandler1158.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ public static void ReadMoveStateChange(Packet packet, params object[] idx)
369369
}
370370

371371
[Parser(Opcode.SMSG_ON_MONSTER_MOVE, ClientBranch.Classic)]
372+
[Parser(Opcode.SMSG_ON_MONSTER_MOVE, ClientBranch.TBC)]
372373
public static void HandleOnMonsterMove(Packet packet)
373374
{
374375
PacketMonsterMove monsterMove = packet.Holder.MonsterMove = new();

WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,7 @@ public static void HandleSpellDispelLog(Packet packet)
851851
}
852852

853853
[HasSniffData]
854-
[Parser(Opcode.SMSG_AURA_UPDATE)]
854+
[Parser(Opcode.SMSG_AURA_UPDATE, ClientBranch.MoP)]
855855
public static void HandleAuraUpdate(Packet packet)
856856
{
857857
PacketAuraUpdate packetAuraUpdate = packet.Holder.AuraUpdate = new();
@@ -1195,7 +1195,7 @@ public static void SpellPrepare(Packet packet)
11951195
packet.ReadPackedGuid128("ServerCastID");
11961196
}
11971197

1198-
[Parser(Opcode.SMSG_SPELL_GO)]
1198+
[Parser(Opcode.SMSG_SPELL_GO, ClientBranch.MoP)]
11991199
public static void HandleSpellGo(Packet packet)
12001200
{
12011201
PacketSpellGo packetSpellGo = new();
@@ -1208,7 +1208,7 @@ public static void HandleSpellGo(Packet packet)
12081208
ReadSpellCastLogData(packet, "LogData");
12091209
}
12101210

1211-
[Parser(Opcode.SMSG_SPELL_START)]
1211+
[Parser(Opcode.SMSG_SPELL_START, ClientBranch.MoP)]
12121212
public static void HandleSpellStart(Packet packet)
12131213
{
12141214
ReadSpellCastData(packet, "Cast");

0 commit comments

Comments
 (0)