Skip to content

Commit 8a010e6

Browse files
committed
Fix a few structures for older versions
1 parent 0053869 commit 8a010e6

20 files changed

Lines changed: 175 additions & 89 deletions

File tree

WowPacketParser/Parsing/Parsers/MiscellaneousHandler.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -646,17 +646,17 @@ public static void HandleTimeSyncResp(Packet packet)
646646
[Parser(Opcode.SMSG_GAME_TIME_SET)]
647647
public static void HandleGametimeSet(Packet packet)
648648
{
649-
packet.ReadUInt32("Unk time");
650-
packet.ReadUInt32("Unk int32");
649+
packet.ReadPackedTime("GameTime");
650+
packet.ReadInt32("GameTimeHolidayOffset");
651651
}
652652

653653
[Parser(Opcode.SMSG_GAME_TIME_UPDATE)]
654654
public static void HandleGametimeUpdate(Packet packet)
655655
{
656-
packet.ReadUInt32("Unk time"); // Time online?
656+
packet.ReadPackedTime("GameTime");
657657

658658
if (packet.CanRead()) // no idea when this was added exactly, doesn't exist in 2.4.0
659-
packet.ReadUInt32("Unk int32");
659+
packet.ReadInt32("GameTimeHolidayOffset");
660660
}
661661

662662
[Parser(Opcode.CMSG_FAR_SIGHT)]

WowPacketParser/Parsing/Parsers/MovementHandler.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -569,11 +569,11 @@ public static void HandleNewWorld510(Packet packet)
569569
public static void HandleLoginSetTimeSpeed(Packet packet)
570570
{
571571
PacketLoginSetTimeSpeed setTime = packet.Holder.LoginSetTimeSpeed = new();
572-
setTime.GameTime = packet.ReadPackedTime("Game Time").ToUniversalTime().ToTimestamp();
573-
setTime.NewSpeed = packet.ReadSingle("Game Speed");
572+
setTime.GameTime = packet.ReadPackedTime("GameTime").ToUniversalTime().ToTimestamp();
573+
setTime.NewSpeed = packet.ReadSingle("NewSpeed");
574574

575575
if (ClientVersion.AddedInVersion(ClientVersionBuild.V3_1_2_9901))
576-
packet.ReadInt32("Unk Int32");
576+
packet.ReadInt32("GameTimeHolidayOffset");
577577
}
578578

579579
[Parser(Opcode.SMSG_BIND_POINT_UPDATE)]

WowPacketParserModule.V10_0_0_46181/Parsers/InstanceHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public static void ReadAuraInfo(Packet packet, params object[] idx)
1111
packet.ReadPackedGuid128("CasterGUID", idx);
1212
packet.ReadUInt32<SpellId>("SpellID", idx);
1313

14-
if (ClientVersion.AddedInVersion(ClientVersionBuild.V12_0_7_67808))
14+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V12_0_7_68182))
1515
packet.ReadInt32("Applications", idx);
1616
}
1717

WowPacketParserModule.V10_0_0_46181/Parsers/LfgHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ public static void HandleDFSetRoles(Packet packet)
4242
packet.ReadByte("PartyIndex");
4343
}
4444

45-
[Parser(Opcode.SMSG_LFG_ROLE_CHOSEN, ClientVersionBuild.V10_1_7_51187)]
45+
[Parser(Opcode.SMSG_ROLE_CHOSEN, ClientVersionBuild.V10_1_7_51187)]
4646
public static void HandleLfgRoleChosen(Packet packet)
4747
{
48-
packet.ReadGuid("Player");
48+
packet.ReadPackedGuid128("Player");
4949
packet.ReadByteE<LfgRoleFlag>("RoleMask");
5050
packet.ReadBit("Accepted");
5151
}

WowPacketParserModule.V10_0_0_46181/Parsers/ScenarioHandler.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,11 @@ public static void HandleScenarioState(Packet packet)
3737
for (int i = 0; i < spellsCount; i++)
3838
V7_0_3_22248.Parsers.ScenarioHandler.ReadScenarioSpellUpdate(packet, "ScenarioSpellUpdate", i);
3939
}
40+
41+
[Parser(Opcode.SMSG_SCENARIO_PROGRESS_UPDATE, ClientVersionBuild.V10_1_5_50232)]
42+
public static void HandleScenarioProgressUpdate(Packet packet)
43+
{
44+
AchievementHandler.ReadCriteriaProgress(packet, "Progress");
45+
}
4046
}
4147
}

WowPacketParserModule.V11_0_0_55666/Parsers/NpcHandler.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static void HandleNpcGossip(Packet packet)
1818
{
1919
PacketGossipMessage packetGossip = packet.Holder.GossipMessage = new();
2020

21-
WowGuid guid = packet.ReadPackedGuid128("GossipGUID");
21+
var guid = packet.ReadPackedGuid128("GossipGUID");
2222
packetGossip.GossipSource = guid;
2323

2424
var menuId = packet.ReadInt32("GossipID");
@@ -27,26 +27,29 @@ public static void HandleNpcGossip(Packet packet)
2727
var lfgDungeonsId = packet.ReadInt32("LfgDungeonsID");
2828
var friendshipFactionID = packet.ReadInt32("FriendshipFactionID");
2929

30-
CoreParsers.NpcHandler.AddGossipAddon(packetGossip.MenuId, friendshipFactionID, lfgDungeonsId, guid, packet.TimeSpan);
31-
3230
var optionsCount = packet.ReadUInt32("GossipOptionsCount");
3331
var questsCount = packet.ReadUInt32("GossipQuestsCount");
3432

35-
var hasBroadcastTextID = packet.ReadBit("HasBroadcastTextID");
36-
var hasBroadcastTextID2 = packet.ReadBit("HasBroadcastTextID2");
33+
var hasRandomTextID = packet.ReadBit("HasRandomTextID");
34+
var hasBroadcastTextID = packet.ReadBit("HasBroadcastTextID2");
3735

3836
for (var i = 0u; i < optionsCount; ++i)
3937
packetGossip.Options.Add(V6_0_2_19033.Parsers.NpcHandler.ReadGossipOptionsData((uint)menuId, guid, packet, i, "GossipOptions"));
4038

41-
uint broadcastTextID = 0;
42-
uint npcTextID = 0;
39+
var broadcastTextID = 0u;
40+
var npcTextID = 0u;
4341

44-
if (hasBroadcastTextID)
42+
if (hasRandomTextID)
43+
broadcastTextID = (uint)packet.ReadInt32("RandomTextID");
44+
else if (hasBroadcastTextID)
4545
broadcastTextID = (uint)packet.ReadInt32("BroadcastTextID");
46-
else if (hasBroadcastTextID2)
47-
broadcastTextID = (uint)packet.ReadInt32("BroadcastTextID2");
4846

49-
if (hasBroadcastTextID || hasBroadcastTextID2)
47+
for (var i = 0u; i < questsCount; ++i)
48+
packetGossip.Quests.Add(V7_0_3_22248.Parsers.NpcHandler.ReadGossipQuestTextData(packet, i, "GossipQuests"));
49+
50+
CoreParsers.NpcHandler.AddGossipAddon(packetGossip.MenuId, friendshipFactionID, lfgDungeonsId, guid, packet.TimeSpan);
51+
52+
if (hasRandomTextID || hasBroadcastTextID)
5053
npcTextID = SQLDatabase.GetNPCTextIDByMenuIDAndBroadcastText(menuId, broadcastTextID);
5154

5255
if (npcTextID != 0)
@@ -61,12 +64,9 @@ public static void HandleNpcGossip(Packet packet)
6164

6265
Storage.Gossips.Add(gossip, packet.TimeSpan);
6366
}
64-
else if (hasBroadcastTextID || hasBroadcastTextID2)
67+
else if (hasRandomTextID || hasBroadcastTextID)
6568
V9_0_1_36216.Parsers.NpcHandler.AddBroadcastTextToGossip(packetGossip.MenuId, broadcastTextID, guid);
6669

67-
for (var i = 0u; i < questsCount; ++i)
68-
packetGossip.Quests.Add(V7_0_3_22248.Parsers.NpcHandler.ReadGossipQuestTextData(packet, i, "GossipQuests"));
69-
7070
CoreParsers.NpcHandler.AddCreatureTemplateGossip(guid, (uint)menuId, packet.TimeSpan);
7171
CoreParsers.NpcHandler.UpdateLastGossipOptionActionMessage(packet.TimeSpan, (uint)menuId);
7272

WowPacketParserModule.V11_0_0_55666/Parsers/QuestHandler.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,5 +434,28 @@ public static void HandleForceSpawnTrackingUpdate(Packet packet)
434434
{
435435
packet.ReadInt32<QuestId>("Quest");
436436
}
437+
438+
[Parser(Opcode.SMSG_QUEST_UPDATE_ADD_CREDIT, ClientVersionBuild.V11_2_5_63506)]
439+
public static void HandleQuestUpdateAddCredit(Packet packet)
440+
{
441+
var addCredit = packet.Holder.QuestAddKillCredit = new();
442+
addCredit.Victim = packet.ReadPackedGuid128("VictimGUID");
443+
444+
addCredit.QuestId = (uint)packet.ReadInt32<QuestId>("QuestID");
445+
addCredit.KillCredit = (uint)packet.ReadInt32("ObjectID");
446+
447+
addCredit.Count = packet.ReadUInt16("Count");
448+
addCredit.RequiredCount = packet.ReadUInt16("Required");
449+
450+
packet.ReadUInt32("ObjectiveType");
451+
}
452+
453+
[Parser(Opcode.SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE, ClientVersionBuild.V11_2_5_63506)]
454+
public static void HandleQuestUpdateAddCreditSimple(Packet packet)
455+
{
456+
packet.ReadInt32<QuestId>("QuestID");
457+
packet.ReadInt32("ObjectID");
458+
packet.ReadUInt32("ObjectiveType");
459+
}
437460
}
438461
}

WowPacketParserModule.V11_0_0_55666/Parsers/SpellHandler.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,27 @@ public static void HandleSpellVisualLoadScreen(Packet packet)
1313
packet.ReadInt32("Duration");
1414
packet.ReadInt32("Delay");
1515
}
16+
17+
[Parser(Opcode.SMSG_MIRROR_IMAGE_COMPONENTED_DATA, ClientVersionBuild.V11_1_5_60392)]
18+
public static void HandleMirrorImageData(Packet packet)
19+
{
20+
packet.ReadPackedGuid128("UnitGUID");
21+
packet.ReadInt32("ChrModelID");
22+
23+
packet.ReadByte("RaceID");
24+
packet.ReadByte("Gender");
25+
packet.ReadByte("ClassID");
26+
var customizationCount = packet.ReadUInt32();
27+
packet.ReadPackedGuid128("GuildGUID");
28+
var itemDisplayCount = packet.ReadInt32("ItemDisplayCount");
29+
packet.ReadInt32("SpellVisualKitID");
30+
packet.ReadSingle("DisplayScale");
31+
32+
for (var j = 0u; j < customizationCount; ++j)
33+
V9_0_1_36216.Parsers.CharacterHandler.ReadChrCustomizationChoice(packet, "Customizations", j);
34+
35+
for (var i = 0u; i < itemDisplayCount; i++)
36+
packet.ReadInt32("ItemDisplayID", i);
37+
}
1638
}
1739
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using WowPacketParser.Enums;
2+
using WowPacketParser.Misc;
3+
using WowPacketParser.Parsing;
4+
5+
namespace WowPacketParserModule.V11_0_0_55666.Parsers
6+
{
7+
public static class TaxiHandler
8+
{
9+
[Parser(Opcode.SMSG_NEW_TAXI_PATH)]
10+
public static void HandleTaxiNull(Packet packet)
11+
{
12+
packet.ReadInt32("TaxiNodesID");
13+
}
14+
}
15+
}

WowPacketParserModule.V6_0_2_19033/Parsers/CombatLogHandler.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,9 @@ public static void HandleSpellInterruptLog(Packet packet)
261261

262262
packet.ReadInt32<SpellId>("SpellID");
263263
packet.ReadInt32<SpellId>("InterruptedSpellID");
264+
265+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V12_0_1_65818))
266+
packet.ReadBit("HideFromCombatLog");
264267
}
265268

266269
[Parser(Opcode.SMSG_SPELL_OR_DAMAGE_IMMUNE)]

0 commit comments

Comments
 (0)