aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2025-04-06 14:13:57 +0200
committerOvahlord <dreadkiller@gmx.de>2025-04-06 14:13:57 +0200
commitebf3618f790b4204bbaaba98c45e6fee5689830b (patch)
tree685fc47676ddd028d58308c10072cf93e5a3dec4
parentc8c5af648cd86d1766ba5ab075c2e27d451bb1ef (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.cpp32
-rw-r--r--src/server/game/Server/Packets/SystemPackets.cpp133
-rw-r--r--src/server/game/Server/Packets/SystemPackets.h193
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;
};