From f12da4e1ff6d57f57b91a8ee554ab88a766b72e0 Mon Sep 17 00:00:00 2001 From: funjoker Date: Tue, 5 Nov 2024 22:54:51 +0100 Subject: [PATCH] Fix 4.4.1 SMSG_INITIALIZE_FACTIONS --- .../Parsers/ReputationHandler.cs | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/WowPacketParserModule.V4_4_0_54481/Parsers/ReputationHandler.cs b/WowPacketParserModule.V4_4_0_54481/Parsers/ReputationHandler.cs index c21323087b..6e6c214643 100644 --- a/WowPacketParserModule.V4_4_0_54481/Parsers/ReputationHandler.cs +++ b/WowPacketParserModule.V4_4_0_54481/Parsers/ReputationHandler.cs @@ -18,14 +18,30 @@ public static void HandleFactionBonusInfo(Packet packet) [Parser(Opcode.SMSG_INITIALIZE_FACTIONS)] public static void HandleInitializeFactions(Packet packet) { - for (var i = 0; i < FactionCount; i++) + uint factionCount = FactionCount; + uint bonusCount = FactionCount; + if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_4_1_57294)) { + factionCount = packet.ReadUInt32(); + bonusCount = packet.ReadUInt32(); + } + + for (var i = 0; i < factionCount; i++) + { + if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_4_1_57294)) + packet.ReadInt32("FactionID"); + packet.ReadUInt16E("ReputationFlags", i); - packet.ReadUInt32E("FactionStandings", i); + packet.ReadUInt32E("FactionStanding", i); } - for (var i = 0; i < FactionCount; i++) + for (var i = 0; i < bonusCount; i++) + { + if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_4_1_57294)) + packet.ReadInt32("FactionID"); + packet.ReadBit("FactionHasBonus", i); + } } [Parser(Opcode.SMSG_SET_FORCED_REACTIONS)]