Skip to content

Commit

Permalink
Fix 4.4.1 SMSG_FEATURE_SYSTEM_STATUS
Browse files Browse the repository at this point in the history
  • Loading branch information
funjoker committed Nov 17, 2024
1 parent d994886 commit b734571
Showing 1 changed file with 146 additions and 1 deletion.
147 changes: 146 additions & 1 deletion WowPacketParserModule.V4_4_0_54481/Parsers/MiscellaneousHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ public static void HandleTimeSyncResp(Packet packet)
packet.ReadUInt32("Ticks");
}

[Parser(Opcode.SMSG_FEATURE_SYSTEM_STATUS)]
[Parser(Opcode.SMSG_FEATURE_SYSTEM_STATUS, ClientVersionBuild.V4_4_0_54481, ClientVersionBuild.V4_4_1_57294)]
public static void HandleFeatureSystemStatus(Packet packet)
{
packet.ReadByte("ComplaintStatus");
Expand Down Expand Up @@ -476,6 +476,151 @@ public static void HandleFeatureSystemStatus(Packet packet)
}
}

[Parser(Opcode.SMSG_FEATURE_SYSTEM_STATUS, ClientVersionBuild.V4_4_1_57294)]
public static void HandleFeatureSystemStatus441(Packet packet)
{
packet.ReadByte("ComplaintStatus");
packet.ReadUInt32("CfgRealmID");
packet.ReadInt32("CfgRealmRecID");

packet.ReadUInt32("MaxRecruits", "RAFSystem");
packet.ReadUInt32("MaxRecruitMonths", "RAFSystem");
packet.ReadUInt32("MaxRecruitmentUses", "RAFSystem");
packet.ReadUInt32("DaysInCycle", "RAFSystem");
packet.ReadUInt32("RewardsVersion", "RAFSystem");
packet.ReadUInt32("TokenPollTimeSeconds");
packet.ReadUInt32("KioskSessionMinutes");
packet.ReadInt64("TokenBalanceAmount");
packet.ReadUInt32("BpayStoreProductDeliveryDelay");
packet.ReadUInt32("ClubsPresenceUpdateTimer");
packet.ReadUInt32("HiddenUIClubsPresenceUpdateTimer");
packet.ReadInt32("ActiveSeason");
var gameRuleValuesCount = packet.ReadUInt32("GameRuleValuesCount");
packet.ReadInt32("ActiveTimerunningSeasonID");
packet.ReadInt32("RemainingTimerunningSeasonSeconds");

packet.ReadInt16("MaxPlayerNameQueriesPerPacket");
packet.ReadInt16("PlayerNameQueryTelemetryInterval");
packet.ReadUInt32("PlayerNameQueryInterval");
packet.ReadInt32("MaxTries", "AddonChatThrottle");
packet.ReadInt32("TriesRestoredPerSecond", "AddonChatThrottle");
packet.ReadInt32("UsedTriesPerMessage", "AddonChatThrottle");

for (var i = 0; i < gameRuleValuesCount; ++i)
ReadGameRuleValuePair(packet, "GameRuleValues");

packet.ResetBitReader();
packet.ReadBit("VoiceEnabled");
var hasEuropaTicketSystemStatus = packet.ReadBit("HasEuropaTicketSystemStatus");
packet.ReadBit("StoreEnabled", "BattlePay");
packet.ReadBit("StoreAvailable", "BattlePay");
packet.ReadBit("StoreDisabledByParentalControls", "BattlePay");
packet.ReadBit("ItemRestorationButtonEnabled");
packet.ReadBit("BrowserEnabled");
var hasSessionAlert = packet.ReadBit("HasSessionAlert");

packet.ReadBit("Enabled", "RAFSystem");
packet.ReadBit("RecruitingEnabled", "RAFSystem");
packet.ReadBit("CharUndeleteEnabled");
packet.ReadBit("RestrictedAccount");
packet.ReadBit("CommerceSystemEnabled");
packet.ReadBit("TutorialsEnabled");
packet.ReadBit("VeteranTokenRedeemWillKick");
packet.ReadBit("WorldTokenRedeemWillKick");

packet.ReadBit("KioskModeEnabled");
packet.ReadBit("CompetitiveModeEnabled");
packet.ReadBit("RedeemForBalanceAvailable");
packet.ReadBit("WarModeEnabled");
packet.ReadBit("ClubsEnabled");
packet.ReadBit("ClubsBattleNetClubTypeAllowed");
packet.ReadBit("ClubsCharacterClubTypeAllowed");
packet.ReadBit("ClubsPresenceUpdateEnabled");

packet.ReadBit("VoiceChatDisabledByParentalControl");
packet.ReadBit("VoiceChatMutedByParentalControl");
packet.ReadBit("QuestSessionEnabled");
packet.ReadBit("IsMuted");
packet.ReadBit("ClubFinderEnabled");
packet.ReadBit("CommunityFinderEnabled");
packet.ReadBit("Unknown901CheckoutRelated");
packet.ReadBit("TextToSpeechFeatureEnabled");

packet.ReadBit("ChatDisabledByDefault");
packet.ReadBit("ChatDisabledByPlayer");
packet.ReadBit("LFGListCustomRequiresAuthenticator");
packet.ReadBit("AddonsDisabled");
packet.ReadBit("WarGamesEnabled");
var hasRaceClassExpansionLevels = packet.ReadBit("RaceClassExpansionLevels");
packet.ReadBit("Unknown_441_0");
packet.ReadBit("Unknown_441_1");

packet.ReadBit("Unknown_441_2");
packet.ReadBit("Unknown_441_3");
packet.ReadBit("IsGroupFinderEnabled");
packet.ReadBit("IsLFDEnabled");
packet.ReadBit("IsLFREnabled");
packet.ReadBit("IsPremadeGroupEnabled");
packet.ReadBit("CanShowSetRoleButton");
packet.ReadBit("PetHappinessEnabled");

packet.ReadBit("GuildEventsEditsEnabled");
packet.ReadBit("GuildTradeSkillsEnabled");
var unknown1027StrLen = packet.ReadBits(7);
packet.ReadBit("BNSendWhisperUseV2Services");
packet.ReadBit("BNSendGameDataUseV2Services");
packet.ReadBit("Unknown_441_4");
packet.ReadBit("Unknown_441_5");

{
packet.ResetBitReader();
packet.ReadBit("ToastsDisabled", "QuickJoinConfig");
packet.ReadSingle("ToastDuration", "QuickJoinConfig");
packet.ReadSingle("DelayDuration", "QuickJoinConfig");
packet.ReadSingle("QueueMultiplier", "QuickJoinConfig");
packet.ReadSingle("PlayerMultiplier", "QuickJoinConfig");
packet.ReadSingle("PlayerFriendValue", "QuickJoinConfig");
packet.ReadSingle("PlayerGuildValue", "QuickJoinConfig");
packet.ReadSingle("ThrottleInitialThreshold", "QuickJoinConfig");
packet.ReadSingle("ThrottleDecayTime", "QuickJoinConfig");
packet.ReadSingle("ThrottlePrioritySpike", "QuickJoinConfig");
packet.ReadSingle("ThrottleMinThreshold", "QuickJoinConfig");
packet.ReadSingle("ThrottlePvPPriorityNormal", "QuickJoinConfig");
packet.ReadSingle("ThrottlePvPPriorityLow", "QuickJoinConfig");
packet.ReadSingle("ThrottlePvPHonorThreshold", "QuickJoinConfig");
packet.ReadSingle("ThrottleLfgListPriorityDefault", "QuickJoinConfig");
packet.ReadSingle("ThrottleLfgListPriorityAbove", "QuickJoinConfig");
packet.ReadSingle("ThrottleLfgListPriorityBelow", "QuickJoinConfig");
packet.ReadSingle("ThrottleLfgListIlvlScalingAbove", "QuickJoinConfig");
packet.ReadSingle("ThrottleLfgListIlvlScalingBelow", "QuickJoinConfig");
packet.ReadSingle("ThrottleRfPriorityAbove", "QuickJoinConfig");
packet.ReadSingle("ThrottleRfIlvlScalingAbove", "QuickJoinConfig");
packet.ReadSingle("ThrottleDfMaxItemLevel", "QuickJoinConfig");
packet.ReadSingle("ThrottleDfBestPriority", "QuickJoinConfig");
}

if (hasSessionAlert)
V6_0_2_19033.Parsers.MiscellaneousHandler.ReadClientSessionAlertConfig(packet, "SessionAlert");

if (hasRaceClassExpansionLevels)
{
var count = packet.ReadUInt32();

for (var i = 0; i < count; ++i)
packet.ReadByte("RaceClassExpansionLevels", i);
}

packet.ReadWoWString("Unknown1027", unknown1027StrLen);

V8_0_1_27101.Parsers.MiscellaneousHandler.ReadVoiceChatManagerSettings(packet, "VoiceChatManagerSettings");

if (hasEuropaTicketSystemStatus)
{
packet.ResetBitReader();
V6_0_2_19033.Parsers.MiscellaneousHandler.ReadCliEuropaTicketConfig(packet, "EuropaTicketSystemStatus");
}
}

[Parser(Opcode.CMSG_QUERY_COUNTDOWN_TIMER)]
public static void HandleQueryCountdownTimer(Packet packet)
{
Expand Down

0 comments on commit b734571

Please sign in to comment.