diff options
author | Ovahlord <dreadkiller@gmx.de> | 2025-04-06 14:13:57 +0200 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2025-04-06 14:13:57 +0200 |
commit | ebf3618f790b4204bbaaba98c45e6fee5689830b (patch) | |
tree | 685fc47676ddd028d58308c10072cf93e5a3dec4 | |
parent | c8c5af648cd86d1766ba5ab075c2e27d451bb1ef (diff) |
Core/Packets: updated struct of SMSG_FEATURE_SYSTEM_STATUS and SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 32 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SystemPackets.cpp | 133 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SystemPackets.h | 193 |
3 files changed, 182 insertions, 176 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 32f0ad8b7b2..9c9d751f3c1 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1329,18 +1329,18 @@ void WorldSession::SendFeatureSystemStatus() features.ComplaintStatus = COMPLAINT_ENABLED_WITH_AUTO_IGNORE; features.CfgRealmID = 2; features.CfgRealmRecID = 0; - features.TokenPollTimeSeconds = 300; + features.CommercePricePollTimeSeconds = 300; features.VoiceEnabled = false; features.BrowserEnabled = false; // Has to be false, otherwise client will crash if "Customer Support" is opened // Enable guilds only. // This is required to restore old guild channel behavior for GMs. // The new club streams do not support sending messages through the guild channel when you are not in a guild. - features.ClubsEnabled = true; - features.ClubsBattleNetClubTypeAllowed = false; - features.ClubsCharacterClubTypeAllowed = false; - features.ClubsPresenceUpdateEnabled = true; - features.HiddenUIClubsPresenceUpdateTimer = 60000; + features.CommunitiesEnabled = true; + features.BnetGroupsEnabled = false; + features.CharacterCommunitiesEnabled = false; + features.ClubPresenceAllowSubscribeAll = true; + features.ClubPresenceUnsubscribeDelay = 60000; features.EuropaTicketSystemStatus.emplace(); features.EuropaTicketSystemStatus->ThrottleState.MaxTries = 10; @@ -1348,11 +1348,11 @@ void WorldSession::SendFeatureSystemStatus() features.EuropaTicketSystemStatus->ThrottleState.TryCount = 1; features.EuropaTicketSystemStatus->ThrottleState.LastResetTimeBeforeNow = 111111; - features.TutorialsEnabled = true; - features.WarModeFeatureEnabled = true; + features.TutorialEnabled = true; + features.WarModeEnabled = true; features.QuestSessionEnabled = true; features.WarGamesEnabled = true; - features.CanShowSetRoleButton = true; + features.Unk441_0 = 1; // set to true according to sniffs features.GuildEventsEditsEnabled = true; features.GuildTradeSkillsEnabled = false; // currently disabled on 4.4.1 @@ -1361,8 +1361,6 @@ void WorldSession::SendFeatureSystemStatus() features.AddonChatThrottle.TriesRestoredPerSecond = 1; features.AddonChatThrottle.UsedTriesPerMessage = 1; - features.VoiceChatDisabledByParentalControl = true; - features.VoiceChatMutedByParentalControl = true; /// END OF DUMMY VALUES features.EuropaTicketSystemStatus->TicketsEnabled = sWorld->getBoolConfig(CONFIG_SUPPORT_TICKETS_ENABLED); @@ -1372,12 +1370,14 @@ void WorldSession::SendFeatureSystemStatus() features.CharUndeleteEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_CHARACTER_UNDELETE_ENABLED); features.BpayStoreEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_BPAY_STORE_ENABLED); - features.IsMuted = !CanSpeak(); + features.IsChatMuted = !CanSpeak(); - features.IsLFDEnabled = sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER); - features.IsLFREnabled = sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_RAID_FINDER); - features.IsPremadeGroupEnabled = sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_PREMADE_GROUP); - features.IsGroupFinderEnabled = features.IsLFDEnabled || features.IsLFREnabled || features.IsPremadeGroupEnabled; + features.SpeakForMeAllowed = false; + + features.LFDEnabled = sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER); + features.LFREnabled = sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_RAID_FINDER); + features.PremadeGroupEnabled = sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_PREMADE_GROUP); + features.GroupFinderEnabled = features.LFDEnabled || features.LFREnabled || features.PremadeGroupEnabled; SendPacket(features.Write()); } diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp index 7a0f8510724..407059662b3 100644 --- a/src/server/game/Server/Packets/SystemPackets.cpp +++ b/src/server/game/Server/Packets/SystemPackets.cpp @@ -44,6 +44,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GameRuleValuePair const& gameRuleValue) { data << int32(gameRuleValue.Rule); data << int32(gameRuleValue.Value); + data << float(gameRuleValue.ValueF); return data; } @@ -69,31 +70,33 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << uint32(RAFSystem.MaxRecruitMonths); _worldPacket << uint32(RAFSystem.MaxRecruitmentUses); _worldPacket << uint32(RAFSystem.DaysInCycle); - _worldPacket << uint32(RAFSystem.Unknown1007); + _worldPacket << uint32(RAFSystem.RewardsVersion); - _worldPacket << uint32(TokenPollTimeSeconds); - _worldPacket << uint32(KioskSessionMinutes); - _worldPacket << int64(TokenBalanceAmount); + _worldPacket << uint32(CommercePricePollTimeSeconds); + _worldPacket << uint32(KioskSessionDurationMinutes); + _worldPacket << int64(RedeemForBalanceAmount); - _worldPacket << uint32(BpayStoreProductDeliveryDelay); + _worldPacket << uint32(BpayStorePurchaseTimeout); - _worldPacket << uint32(ClubsPresenceUpdateTimer); - _worldPacket << uint32(HiddenUIClubsPresenceUpdateTimer); + _worldPacket << uint32(ClubsPresenceDelay); + _worldPacket << uint32(ClubPresenceUnsubscribeDelay); - _worldPacket << int32(ActiveSeason); - _worldPacket << uint32(GameRuleValues.size()); + _worldPacket << int32(ContentSetID); + _worldPacket << uint32(GameRules.size()); _worldPacket << int32(ActiveTimerunningSeasonID); _worldPacket << int32(RemainingTimerunningSeasonSeconds); - _worldPacket << int16(MaxPlayerNameQueriesPerPacket); - _worldPacket << int16(PlayerNameQueryTelemetryInterval); - _worldPacket << PlayerNameQueryInterval; + _worldPacket << int16(MaxPlayerGuidLookupsPerRequest); + _worldPacket << int16(NameLookupTelemetryInterval); + _worldPacket << NotFoundCacheTimeSeconds; + + _worldPacket << int32(RealmPvpTypeOverride); _worldPacket << int32(AddonChatThrottle.MaxTries); _worldPacket << int32(AddonChatThrottle.TriesRestoredPerSecond); _worldPacket << int32(AddonChatThrottle.UsedTriesPerMessage); - for (GameRuleValuePair const& gameRuleValue : GameRuleValues) + for (GameRuleValuePair const& gameRuleValue : GameRules) _worldPacket << gameRuleValue; _worldPacket << Bits<1>(VoiceEnabled); @@ -109,54 +112,54 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << Bits<1>(RAFSystem.RecruitingEnabled); _worldPacket << Bits<1>(CharUndeleteEnabled); _worldPacket << Bits<1>(RestrictedAccount); - _worldPacket << Bits<1>(CommerceSystemEnabled); - _worldPacket << Bits<1>(TutorialsEnabled); - _worldPacket << Bits<1>(Unk67); - _worldPacket << Bits<1>(WillKickFromWorld); + _worldPacket << Bits<1>(CommerceServerEnabled); + _worldPacket << Bits<1>(TutorialEnabled); + _worldPacket << Bits<1>(VeteranTokenRedeemWillKick); + _worldPacket << Bits<1>(WorldTokenRedeemWillKick); _worldPacket << Bits<1>(KioskModeEnabled); _worldPacket << Bits<1>(CompetitiveModeEnabled); - _worldPacket << Bits<1>(TokenBalanceEnabled); - _worldPacket << Bits<1>(WarModeFeatureEnabled); - _worldPacket << Bits<1>(ClubsEnabled); - _worldPacket << Bits<1>(ClubsBattleNetClubTypeAllowed); - _worldPacket << Bits<1>(ClubsCharacterClubTypeAllowed); - _worldPacket << Bits<1>(ClubsPresenceUpdateEnabled); - - _worldPacket << Bits<1>(VoiceChatDisabledByParentalControl); - _worldPacket << Bits<1>(VoiceChatMutedByParentalControl); + _worldPacket << Bits<1>(RedeemForBalanceAvailable); + _worldPacket << Bits<1>(WarModeEnabled); + _worldPacket << Bits<1>(CommunitiesEnabled); + _worldPacket << Bits<1>(BnetGroupsEnabled); + _worldPacket << Bits<1>(CharacterCommunitiesEnabled); + _worldPacket << Bits<1>(ClubPresenceAllowSubscribeAll); + + _worldPacket << Bits<1>(VoiceChatParentalDisabled); + _worldPacket << Bits<1>(VoiceChatParentalMuted); _worldPacket << Bits<1>(QuestSessionEnabled); - _worldPacket << Bits<1>(IsMuted); + _worldPacket << Bits<1>(IsChatMuted); _worldPacket << Bits<1>(ClubFinderEnabled); _worldPacket << Bits<1>(CommunityFinderEnabled); - _worldPacket << Bits<1>(Unknown901CheckoutRelated); - _worldPacket << Bits<1>(TextToSpeechFeatureEnabled); + _worldPacket << Bits<1>(BrowserCrashReporterEnabled); + _worldPacket << Bits<1>(SpeakForMeAllowed); - _worldPacket << Bits<1>(ChatDisabledByDefault); - _worldPacket << Bits<1>(ChatDisabledByPlayer); - _worldPacket << Bits<1>(LFGListCustomRequiresAuthenticator); - _worldPacket << Bits<1>(AddonsDisabled); + _worldPacket << Bits<1>(DoesAccountNeedAADCPrompt); + _worldPacket << Bits<1>(IsAccountOptedInToAADC); + _worldPacket << Bits<1>(LfgRequireAuthenticatorEnabled); + _worldPacket << Bits<1>(ScriptsDisallowedForBeta); _worldPacket << Bits<1>(WarGamesEnabled); _worldPacket << OptionalInit(RaceClassExpansionLevels); - _worldPacket << Bits<1>(Unknown_441_0); - _worldPacket << Bits<1>(Unknown_441_1); - - _worldPacket << Bits<1>(Unknown_441_2); - _worldPacket << Bits<1>(Unknown_441_3); - _worldPacket << Bits<1>(IsGroupFinderEnabled); - _worldPacket << Bits<1>(IsLFDEnabled); - _worldPacket << Bits<1>(IsLFREnabled); - _worldPacket << Bits<1>(IsPremadeGroupEnabled); - _worldPacket << Bits<1>(CanShowSetRoleButton); - _worldPacket << Bits<1>(PetHappinessEnabled); + _worldPacket << Bits<1>(Unk441_0); + _worldPacket << Bits<1>(Unk441_1); + _worldPacket << Bits<1>(GroupFinderEnabled); + _worldPacket << Bits<1>(PremadeGroupEnabled); + _worldPacket << Bits<1>(LFDEnabled); + _worldPacket << Bits<1>(LFREnabled); + _worldPacket << Bits<1>(UseActivePlayerDataQuestCompleted); + _worldPacket << Bits<1>(PetHappinessEnabled); _worldPacket << Bits<1>(GuildEventsEditsEnabled); _worldPacket << Bits<1>(GuildTradeSkillsEnabled); + _worldPacket << BitsSize<7>(Unknown1027); _worldPacket << Bits<1>(BNSendWhisperUseV2Services); _worldPacket << Bits<1>(BNSendGameDataUseV2Services); - _worldPacket << Bits<1>(Unknown_441_4); - _worldPacket << Bits<1>(Unknown_441_5); + _worldPacket << Bits<1>(IsAccountCurrencyTransferEnabled); + _worldPacket << Bits<1>(false); // unused 11.0.7 + _worldPacket << Bits<1>(LobbyMatchmakerQueueFromMainlineEnabled); + _worldPacket << Bits<1>(CanSendLobbyMatchmakerPartyCustomizations); _worldPacket.FlushBits(); @@ -220,27 +223,27 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << Bits<1>(BpayStoreAvailable); _worldPacket << Bits<1>(BpayStoreDisabledByParentalControls); _worldPacket << Bits<1>(CharUndeleteEnabled); - _worldPacket << Bits<1>(CommerceSystemEnabled); - _worldPacket << Bits<1>(Unk14); - _worldPacket << Bits<1>(WillKickFromWorld); - _worldPacket << Bits<1>(IsExpansionPreorderInStore); + _worldPacket << Bits<1>(CommerceServerEnabled); + _worldPacket << Bits<1>(VeteranTokenRedeemWillKick); + _worldPacket << Bits<1>(WorldTokenRedeemWillKick); + _worldPacket << Bits<1>(ExpansionPreorderInStore); _worldPacket << Bits<1>(KioskModeEnabled); _worldPacket << Bits<1>(CompetitiveModeEnabled); - _worldPacket << Bits<1>(IsBoostEnabled); + _worldPacket << Bits<1>(BoostEnabled); _worldPacket << Bits<1>(TrialBoostEnabled); - _worldPacket << Bits<1>(TokenBalanceEnabled); + _worldPacket << Bits<1>(RedeemForBalanceAvailable); _worldPacket << Bits<1>(PaidCharacterTransfersBetweenBnetAccountsEnabled); _worldPacket << Bits<1>(LiveRegionCharacterListEnabled); _worldPacket << Bits<1>(LiveRegionCharacterCopyEnabled); _worldPacket << Bits<1>(LiveRegionAccountCopyEnabled); _worldPacket << Bits<1>(LiveRegionKeyBindingsCopyEnabled); - _worldPacket << Bits<1>(Unknown901CheckoutRelated); - _worldPacket << Bits<1>(false); // unused, 10.0.2 + _worldPacket << Bits<1>(BrowserCrashReporterEnabled); + _worldPacket << Bits<1>(IsEmployeeAccount); _worldPacket << OptionalInit(EuropaTicketSystemStatus); - _worldPacket << Bits<1>(IsNameReservationEnabled); - _worldPacket << OptionalInit(LaunchETA); + _worldPacket << Bits<1>(NameReservationOnly); + _worldPacket << OptionalInit(LaunchDurationETA); _worldPacket << Bits<1>(TimerunningEnabled); _worldPacket << Bits<1>(Unk441_0); @@ -269,23 +272,23 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << int32(MaxCharactersPerRealm); _worldPacket << uint32(LiveRegionCharacterCopySourceRegions.size()); _worldPacket << uint32(BpayStoreProductDeliveryDelay); - _worldPacket << int32(ActiveCharacterUpgradeBoostType); - _worldPacket << int32(ActiveClassTrialBoostType); + _worldPacket << int32(ActiveBoostType); + _worldPacket << int32(TrialBoostType); _worldPacket << int32(MinimumExpansionLevel); _worldPacket << int32(MaximumExpansionLevel); - _worldPacket << int32(ActiveSeason); + _worldPacket << int32(ContentSetID); _worldPacket << uint32(GameRuleValues.size()); _worldPacket << int32(ActiveTimerunningSeasonID); _worldPacket << int32(RemainingTimerunningSeasonSeconds); - _worldPacket << int16(MaxPlayerNameQueriesPerPacket); - _worldPacket << int16(PlayerNameQueryTelemetryInterval); - _worldPacket << PlayerNameQueryInterval; + _worldPacket << int16(MaxPlayerGuidLookupsPerRequest); + _worldPacket << int16(NameLookupTelemetryInterval); + _worldPacket << NotFoundCacheTimeSeconds; _worldPacket << uint32(DebugTimeEvents.size()); - _worldPacket << int32(Unused1007); + _worldPacket << int32(MostRecentTimeEventID); _worldPacket << uint32(EventRealmQueues); - if (LaunchETA) - _worldPacket << int32(*LaunchETA); + if (LaunchDurationETA) + _worldPacket << int32(*LaunchDurationETA); if (!RealmHiddenAlert.empty()) _worldPacket << RealmHiddenAlert; diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h index 8d7d141bf4c..9b59c4b6d38 100644 --- a/src/server/game/Server/Packets/SystemPackets.h +++ b/src/server/game/Server/Packets/SystemPackets.h @@ -49,6 +49,7 @@ namespace WorldPackets { int32 Rule = 0; int32 Value = 0; + float ValueF = 0.0f; }; class FeatureSystemStatus final : public ServerPacket @@ -103,7 +104,7 @@ namespace WorldPackets uint32 MaxRecruitMonths = 0; uint32 MaxRecruitmentUses = 0; uint32 DaysInCycle = 0; - uint32 Unknown1007 = 0; + uint32 RewardsVersion = 0; }; struct AddonChatThrottleParams @@ -126,67 +127,68 @@ namespace WorldPackets uint32 CfgRealmID = 0; uint8 ComplaintStatus = 0; int32 CfgRealmRecID = 0; - uint32 TokenPollTimeSeconds = 0; - int64 TokenBalanceAmount = 0; - uint32 BpayStoreProductDeliveryDelay = 0; - uint32 ClubsPresenceUpdateTimer = 0; - uint32 HiddenUIClubsPresenceUpdateTimer = 0; ///< Timer for updating club presence when communities ui frame is hidden - uint32 KioskSessionMinutes = 0; - int32 ActiveSeason = 0; ///< Currently active Classic season - int16 MaxPlayerNameQueriesPerPacket = 50; - int16 PlayerNameQueryTelemetryInterval = 600; - Duration<Seconds, uint32> PlayerNameQueryInterval = 10s; + uint32 CommercePricePollTimeSeconds = 0; + int64 RedeemForBalanceAmount = 0; + uint32 BpayStorePurchaseTimeout = 0; + uint32 ClubsPresenceDelay = 0; + uint32 ClubPresenceUnsubscribeDelay = 0; ///< Timer for updating club presence when communities ui frame is hidden + uint32 KioskSessionDurationMinutes = 0; + int32 ContentSetID = 0; ///< Currently active Classic season + int16 MaxPlayerGuidLookupsPerRequest = 50; + int16 NameLookupTelemetryInterval = 600; + Duration<Seconds, uint32> NotFoundCacheTimeSeconds = 10s; + int32 RealmPvpTypeOverride = 0; bool ItemRestorationButtonEnabled = false; bool CharUndeleteEnabled = false; ///< Implemented bool BpayStoreDisabledByParentalControls = false; - bool CommerceSystemEnabled = false; - bool Unk67 = false; - bool WillKickFromWorld = false; + bool CommerceServerEnabled = false; + bool VeteranTokenRedeemWillKick = false; + bool WorldTokenRedeemWillKick = false; bool RestrictedAccount = false; - bool TutorialsEnabled = false; + bool TutorialEnabled = false; bool KioskModeEnabled = false; bool CompetitiveModeEnabled = false; - bool TokenBalanceEnabled = false; - bool WarModeFeatureEnabled = false; - bool ClubsEnabled = false; - bool ClubsBattleNetClubTypeAllowed = false; - bool ClubsCharacterClubTypeAllowed = false; - bool ClubsPresenceUpdateEnabled = false; - bool VoiceChatDisabledByParentalControl = false; - bool VoiceChatMutedByParentalControl = false; + bool RedeemForBalanceAvailable = false; + bool WarModeEnabled = false; + bool CommunitiesEnabled = false; + bool BnetGroupsEnabled = false; + bool CharacterCommunitiesEnabled = false; + bool ClubPresenceAllowSubscribeAll = false; + bool VoiceChatParentalDisabled = false; + bool VoiceChatParentalMuted = false; bool QuestSessionEnabled = false; - bool IsMuted = false; + bool IsChatMuted = false; bool ClubFinderEnabled = false; bool CommunityFinderEnabled = false; - bool Unknown901CheckoutRelated = false; - bool TextToSpeechFeatureEnabled = false; - bool ChatDisabledByDefault = false; - bool ChatDisabledByPlayer = false; - bool LFGListCustomRequiresAuthenticator = false; - bool AddonsDisabled = false; + bool BrowserCrashReporterEnabled = false; + bool SpeakForMeAllowed = false; + bool DoesAccountNeedAADCPrompt = false; + bool IsAccountOptedInToAADC = false; + bool LfgRequireAuthenticatorEnabled = false; + bool ScriptsDisallowedForBeta = false; + bool TimerunningEnabled = false; bool WarGamesEnabled = false; - bool Unknown_441_0 = false; - bool Unknown_441_1 = false; - bool Unknown_441_2 = false; - bool Unknown_441_3 = false; - bool IsGroupFinderEnabled = false; - bool IsLFDEnabled = false; - bool IsLFREnabled = false; - bool IsPremadeGroupEnabled = false; - bool CanShowSetRoleButton = false; + bool Unk441_0 = false; + bool Unk441_1 = false; + bool GroupFinderEnabled = false; + bool PremadeGroupEnabled = false; + bool LFDEnabled = false; + bool LFREnabled = false; + bool UseActivePlayerDataQuestCompleted = false; ///< Uses ActivePlayerData::QuestCompleted (legacy) to store completed quest bits instead of ActivePlayerData::BitVectors[9] bool PetHappinessEnabled = false; - bool GuildEventsEditsEnabled = false; - bool GuildTradeSkillsEnabled = false; - bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService - bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService - bool Unknown_441_4 = false; - bool Unknown_441_5 = false; + bool GuildEventsEditsEnabled = true; + bool GuildTradeSkillsEnabled = true; + bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService + bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService + bool IsAccountCurrencyTransferEnabled = false; + bool LobbyMatchmakerQueueFromMainlineEnabled = false; + bool CanSendLobbyMatchmakerPartyCustomizations = false; Optional<std::vector<uint8>> RaceClassExpansionLevels; SocialQueueConfig QuickJoinConfig; SquelchInfo Squelch; RafSystemFeatureInfo RAFSystem; - std::vector<GameRuleValuePair> GameRuleValues; + std::vector<GameRuleValuePair> GameRules; int32 ActiveTimerunningSeasonID = 0; int32 RemainingTimerunningSeasonSeconds = 0; std::string Unknown1027; // related to movement lua functions used by keybinds @@ -206,60 +208,61 @@ namespace WorldPackets WorldPacket const* Write() override; - bool BpayStoreAvailable = false; // NYI - bool BpayStoreDisabledByParentalControls = false; // NYI - bool CharUndeleteEnabled = false; - bool BpayStoreEnabled = false; // NYI - bool CommerceSystemEnabled = false; // NYI - bool Unk14 = false; // NYI - bool WillKickFromWorld = false; // NYI - bool IsExpansionPreorderInStore = false; // NYI - bool KioskModeEnabled = false; // NYI - bool CompetitiveModeEnabled = false; // NYI - bool IsBoostEnabled = false; // classic only - bool TrialBoostEnabled = false; // NYI - bool TokenBalanceEnabled = false; // NYI + bool BpayStoreEnabled = false; + bool BpayStoreAvailable = false; + bool BpayStoreDisabledByParentalControls = false; + bool CharUndeleteEnabled = false; + bool CommerceServerEnabled = false; + bool VeteranTokenRedeemWillKick = false; + bool WorldTokenRedeemWillKick = false; + bool ExpansionPreorderInStore = false; + bool KioskModeEnabled = false; + bool CompetitiveModeEnabled = false; + bool BoostEnabled = false; + bool TrialBoostEnabled = false; + bool RedeemForBalanceAvailable = false; bool PaidCharacterTransfersBetweenBnetAccountsEnabled = false; - bool LiveRegionCharacterListEnabled = false; // NYI - bool LiveRegionCharacterCopyEnabled = false; // NYI - bool LiveRegionAccountCopyEnabled = false; // NYI - bool LiveRegionKeyBindingsCopyEnabled = false; - bool Unknown901CheckoutRelated = false; // NYI - bool IsNameReservationEnabled = false; // classic only - bool TimerunningEnabled = false; // NYI - bool Unk441_0 = false; - bool Unk441_1 = false; - bool SoMNotificationEnabled = false; - bool Unk441_2 = false; - bool AddonsDisabled = false; - bool Unused1000 = false; - bool AccountSaveDataExportEnabled = false; - bool AccountLockedByExport = false; - bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService - bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService - bool CharacterSelectListModeRealmless = false; + bool LiveRegionCharacterListEnabled = false; + bool LiveRegionCharacterCopyEnabled = false; + bool LiveRegionAccountCopyEnabled = false; + bool LiveRegionKeyBindingsCopyEnabled = false; + bool BrowserCrashReporterEnabled = false; + bool IsEmployeeAccount = false; + bool NameReservationOnly = false; + bool TimerunningEnabled = false; + bool Unk441_0 = false; + bool Unk441_1 = false; + bool SoMNotificationEnabled = false; + bool Unk441_2 = false; + bool AddonsDisabled = false; + bool Unused1000 = false; + bool AccountSaveDataExportEnabled = false; + bool AccountLockedByExport = false; + bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService + bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService + bool CharacterSelectListModeRealmless = false; Optional<EuropaTicketConfig> EuropaTicketSystemStatus; std::vector<int32> LiveRegionCharacterCopySourceRegions; - uint32 TokenPollTimeSeconds = 0; // NYI - int64 TokenBalanceAmount = 0; // NYI - int32 MaxCharactersPerRealm = 0; - uint32 BpayStoreProductDeliveryDelay = 0; // NYI - int32 ActiveCharacterUpgradeBoostType = 0; // NYI - int32 ActiveClassTrialBoostType = 0; // NYI - int32 MinimumExpansionLevel = 0; - int32 MaximumExpansionLevel = 0; - uint32 KioskSessionMinutes = 0; - int32 ActiveSeason = 0; // Currently active Classic season + uint32 TokenPollTimeSeconds = 0; + uint32 KioskSessionMinutes = 0; + int64 TokenBalanceAmount = 0; + int32 MaxCharactersPerRealm = 0; + uint32 BpayStoreProductDeliveryDelay = 0; + int32 ActiveBoostType = 0; + int32 TrialBoostType = 0; + int32 MinimumExpansionLevel = 0; + int32 MaximumExpansionLevel = 0; + int32 ContentSetID = 0; std::vector<GameRuleValuePair> GameRuleValues; - int32 ActiveTimerunningSeasonID = 0; - int32 RemainingTimerunningSeasonSeconds = 0; - int16 MaxPlayerNameQueriesPerPacket = 50; - int16 PlayerNameQueryTelemetryInterval = 600; - Duration<Seconds, uint32> PlayerNameQueryInterval = 10s; - Optional<int32> LaunchETA; + int32 ActiveTimerunningSeasonID = 0; + int32 RemainingTimerunningSeasonSeconds = 0; + int16 MaxPlayerGuidLookupsPerRequest = 50; + int16 NameLookupTelemetryInterval = 600; + Duration<Seconds, uint32> NotFoundCacheTimeSeconds = 10s; + Optional<int32> LaunchDurationETA; std::vector<DebugTimeEventInfo> DebugTimeEvents; - int32 Unused1007 = 0; - uint32 EventRealmQueues = 0; + int32 MostRecentTimeEventID = 0; + uint32 EventRealmQueues = 0; std::string RealmHiddenAlert; }; |