Skip to content

Commit ce8f3e8

Browse files
committed
Fix parsing of 1.15.8 in lieu of 255
1 parent 2221fde commit ce8f3e8

8 files changed

Lines changed: 26 additions & 30 deletions

File tree

WowPacketParser/Enums/ClientVersionBuild.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,7 @@ public enum ClientVersionBuild
841841
V1_15_8_64272 = 64272, // live
842842
V1_15_8_64858 = 64858, // live
843843
V1_15_8_64907 = 64907, // live
844+
V1_15_8_66129 = 66129, // live
844845

845846
// TBC Classic
846847
V2_5_1_38598 = 38598, // ptr

WowPacketParser/Enums/Version/Opcodes.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1149,6 +1149,7 @@ public static ClientVersionBuild GetOpcodeDefiningBuild(ClientVersionBuild build
11491149
case ClientVersionBuild.V1_15_8_64272:
11501150
case ClientVersionBuild.V1_15_8_64858:
11511151
case ClientVersionBuild.V1_15_8_64907:
1152+
case ClientVersionBuild.V1_15_8_66129:
11521153
return ClientVersionBuild.V1_15_8_63829;
11531154
case ClientVersionBuild.V3_4_4_59817:
11541155
case ClientVersionBuild.V3_4_4_59853:

WowPacketParser/Enums/Version/UpdateFields.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,7 @@ private static string GetUpdateFieldDictionaryBuildName(ClientVersionBuild build
12181218
case ClientVersionBuild.V1_15_8_64272:
12191219
case ClientVersionBuild.V1_15_8_64858:
12201220
case ClientVersionBuild.V1_15_8_64907:
1221+
case ClientVersionBuild.V1_15_8_66129:
12211222
{
12221223
return "V1_15_8_63829";
12231224
}

WowPacketParser/Enums/Version/V1_15_8_63829/Opcodes.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ 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 },
3333
{ Opcode.SMSG_UPDATE_OBJECT, 0x4A0000 },

WowPacketParser/Misc/ClientVersion.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,6 +1665,7 @@ public static ClientVersionBuild GetVersionDefiningBuild(ClientVersionBuild buil
16651665
case ClientVersionBuild.V1_15_8_64272:
16661666
case ClientVersionBuild.V1_15_8_64858:
16671667
case ClientVersionBuild.V1_15_8_64907:
1668+
case ClientVersionBuild.V1_15_8_66129:
16681669
case ClientVersionBuild.V2_5_5_64796:
16691670
case ClientVersionBuild.V2_5_5_64912:
16701671
case ClientVersionBuild.V2_5_5_65000:
@@ -2115,6 +2116,7 @@ public static bool IsSeasonOfDiscoveryClientVersionBuild(ClientVersionBuild buil
21152116
case ClientVersionBuild.V1_15_8_64272:
21162117
case ClientVersionBuild.V1_15_8_64858:
21172118
case ClientVersionBuild.V1_15_8_64907:
2119+
case ClientVersionBuild.V1_15_8_66129:
21182120
return true;
21192121
default:
21202122
return false;

WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1077,7 +1077,7 @@ public static void HandleSpellGo(Packet packet)
10771077
ReadSpellCastLogData(packet, "LogData");
10781078
}
10791079

1080-
[Parser(Opcode.SMSG_SPELL_START)]
1080+
[Parser(Opcode.SMSG_SPELL_START, ClientBranch.MoP)]
10811081
public static void HandleSpellStart(Packet packet)
10821082
{
10831083
ReadSpellCastData(packet, "Cast");

WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler1158.cs

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ public static void HandlePetSpells(Packet packet)
9898
}
9999

100100
[HasSniffData]
101+
[Parser(Opcode.SMSG_AURA_UPDATE, ClientBranch.Classic)]
101102
[Parser(Opcode.SMSG_AURA_UPDATE, ClientBranch.TBC)]
102103
public static void HandleAuraUpdate(Packet packet)
103104
{
@@ -134,7 +135,7 @@ public static void HandleAuraUpdate(Packet packet)
134135
packet.ResetBitReader();
135136

136137
var hasCastUnit = packet.ReadBit("HasCastUnit", i);
137-
var hasCastItem = ClientVersion.AddedInVersion(ClientBranch.TBC, ClientVersionBuild.V2_5_5_64796) && packet.ReadBit("HasCastItem", i);
138+
var hasCastItem = (ClientVersion.AddedInVersion(ClientBranch.TBC, ClientVersionBuild.V2_5_5_64796) || ClientVersion.AddedInVersion(ClientBranch.Classic, ClientVersionBuild.V1_15_8_63829)) && packet.ReadBit("HasCastItem", i);
138139
var hasDuration = packet.ReadBit("HasDuration", i);
139140
var hasRemaining = packet.ReadBit("HasRemaining", i);
140141

@@ -235,10 +236,7 @@ public static void ReadCreatureImmunities(Packet packet, params object[] idx)
235236
public static void ReadSpellHealPrediction(Packet packet, params object[] idx)
236237
{
237238
packet.ReadInt32("Points", idx);
238-
if (ClientVersion.AddedInVersion(ClientBranch.TBC, ClientVersionBuild.V2_5_5_64796))
239-
packet.ReadInt32("Type", idx);
240-
else
241-
packet.ReadByte("Type", idx);
239+
packet.ReadInt32("Type", idx);
242240
packet.ReadPackedGuid128("BeaconGUID", idx);
243241
}
244242

@@ -252,18 +250,12 @@ public static void ReadSpellTargetData(Packet packet, PacketSpellData packetSpel
252250
{
253251
packet.ResetBitReader();
254252

255-
if (ClientVersion.AddedInVersion(ClientBranch.TBC, ClientVersionBuild.V2_5_5_64796))
256-
packet.ReadUInt32E<TargetFlag>("Flags", idx);
257-
else
258-
packet.ReadBitsE<TargetFlag>("Flags", 28, idx);
253+
packet.ReadUInt32E<TargetFlag>("Flags", idx);
259254

260-
if (ClientVersion.AddedInVersion(ClientBranch.TBC, ClientVersionBuild.V2_5_5_64796))
261-
{
262-
var targetUnit = packet.ReadPackedGuid128("Unit", idx);
263-
if (packetSpellData != null)
264-
packetSpellData.TargetUnit = targetUnit;
265-
packet.ReadPackedGuid128("Item", idx);
266-
}
255+
var targetUnit = packet.ReadPackedGuid128("Unit", idx);
256+
if (packetSpellData != null)
257+
packetSpellData.TargetUnit = targetUnit;
258+
packet.ReadPackedGuid128("Item", idx);
267259

268260
if (ClientVersion.AddedInVersion(ClientBranch.TBC, ClientVersionBuild.V2_5_5_64796))
269261
{
@@ -277,14 +269,6 @@ public static void ReadSpellTargetData(Packet packet, PacketSpellData packetSpel
277269
var hasMapID = packet.ReadBit("hasMapID ", idx);
278270
var nameLength = packet.ReadBits(7);
279271

280-
if (ClientVersion.RemovedInVersion(ClientBranch.TBC, ClientVersionBuild.V2_5_5_64796))
281-
{
282-
var targetUnit = packet.ReadPackedGuid128("Unit", idx);
283-
if (packetSpellData != null)
284-
packetSpellData.TargetUnit = targetUnit;
285-
packet.ReadPackedGuid128("Item", idx);
286-
}
287-
288272
if (hasSrcLoc)
289273
ReadLocation(packet, idx, "SrcLocation");
290274

@@ -438,5 +422,12 @@ public static void HandleSpellGo(Packet packet)
438422
if (hasLog)
439423
ReadSpellCastLogData(packet, "LogData");
440424
}
425+
426+
[Parser(Opcode.SMSG_SPELL_START, ClientBranch.Classic)]
427+
[Parser(Opcode.SMSG_SPELL_START, ClientBranch.TBC)]
428+
public static void HandleSpellStart(Packet packet)
429+
{
430+
ReadSpellCastData(packet, "Cast");
431+
}
441432
}
442433
}

WowPacketParserModule.V5_5_0_61735/Parsers/UpdateFieldsHandler1158.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3192,8 +3192,8 @@ public override IActivePlayerData ReadCreateActivePlayerData(Packet packet, Upda
31923192
data.TaskQuests.Resize(packet.ReadUInt32());
31933193
data.TimerunningSeasonID = packet.ReadInt32("TimerunningSeasonID", indexes);
31943194
data.TransportServerTime = packet.ReadInt32("TransportServerTime", indexes);
3195-
data.TraitConfigs.Resize(packet.ReadUInt32());
31963195
data.ActiveCombatTraitConfigID = packet.ReadUInt32("ActiveCombatTraitConfigID", indexes);
3196+
data.TraitConfigs.Resize(packet.ReadUInt32());
31973197
for (var i = 0; i < 9; ++i)
31983198
{
31993199
data.GlyphSlots[i] = packet.ReadUInt32("GlyphSlots", indexes, i);
@@ -4379,7 +4379,7 @@ public override IGameObjectData ReadUpdateGameObjectData(Packet packet, params o
43794379
var data = new GameObjectData();
43804380
packet.ResetBitReader();
43814381
var rawChangesMask = new int[1];
4382-
rawChangesMask[0] = (int)packet.ReadBits(20);
4382+
rawChangesMask[0] = (int)packet.ReadBits(21);
43834383
var changesMask = new BitArray(rawChangesMask);
43844384

43854385
if (changesMask[0])

0 commit comments

Comments
 (0)