From ef65c6761bcfa16ab40101ee229c2b88e47251e2 Mon Sep 17 00:00:00 2001 From: Adrian <78108584+AdrianCassar@users.noreply.github.com> Date: Wed, 4 Feb 2026 23:40:23 +0000 Subject: [PATCH] [XAM] Cleanup user settings header to reduce including issues --- src/xenia/kernel/xam/user_settings.cc | 13 +------------ src/xenia/kernel/xam/user_settings.h | 22 ++++++++++++++++------ src/xenia/kernel/xam/user_tracker.cc | 2 +- src/xenia/kernel/xam/user_tracker.h | 1 + 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/xenia/kernel/xam/user_settings.cc b/src/xenia/kernel/xam/user_settings.cc index e7d2e87de..074162b5a 100644 --- a/src/xenia/kernel/xam/user_settings.cc +++ b/src/xenia/kernel/xam/user_settings.cc @@ -12,21 +12,11 @@ #include "third_party/fmt/include/fmt/format.h" #include "xenia/kernel/kernel_state.h" #include "xenia/kernel/util/shim_utils.h" -#include "xenia/kernel/xam/xdbf/gpd_info.h" namespace xe { namespace kernel { namespace xam { -const static std::array default_setting_values = { - UserSetting(UserSettingId::XPROFILE_OPTION_CONTROLLER_VIBRATION, 3), - UserSetting( - UserSettingId::XPROFILE_GAMER_TIER, - X_XAMACCOUNTINFO::AccountSubscriptionTier::kSubscriptionTierGold), - UserSetting( - UserSettingId::XPROFILE_GAMERCARD_PICTURE_KEY, - xe::string_util::read_u16string_and_swap(u"FFFE07D10002000200010002"))}; - UserSetting::UserSetting(const UserSetting& setting) : UserData(setting) { setting_id_ = setting.setting_id_; setting_source_ = setting.setting_source_; @@ -52,8 +42,7 @@ UserSetting::UserSetting(const X_XDBF_GPD_SETTING_HEADER* profile_setting, static_cast(profile_setting->setting_id.get())), setting_source_(X_USER_PROFILE_SETTING_SOURCE::TITLE) {} -std::optional UserSetting::GetDefaultSetting( - const UserProfile* user, uint32_t setting_id) { +std::optional UserSetting::GetDefaultSetting(uint32_t setting_id) { for (const auto& setting : default_setting_values) { if (setting.get_setting_id() == setting_id) { return std::make_optional(setting); diff --git a/src/xenia/kernel/xam/user_settings.h b/src/xenia/kernel/xam/user_settings.h index 6ac2bd0c7..c748581b9 100644 --- a/src/xenia/kernel/xam/user_settings.h +++ b/src/xenia/kernel/xam/user_settings.h @@ -15,16 +15,18 @@ #include #include -#include "xenia/kernel/xam/profile_manager.h" +#include "xenia/kernel/title_id_utils.h" #include "xenia/kernel/xam/user_data.h" -#include "xenia/kernel/xam/user_profile.h" - -#include "xenia/xbox.h" +#include "xenia/kernel/xam/xam.h" +#include "xenia/kernel/xam/xdbf/gpd_info.h" namespace xe { namespace kernel { namespace xam { +enum class X_USER_PROFILE_SETTING_SOURCE : uint32_t; +struct X_USER_PROFILE_SETTING; + constexpr uint32_t SettingKey(X_USER_DATA_TYPE type, uint16_t size, uint16_t id) { return static_cast(type) << 28 | size << 16 | id; @@ -478,8 +480,7 @@ class UserSetting : public UserData { UserSetting(const X_XDBF_GPD_SETTING_HEADER* profile_setting, std::span extended_data); - static std::optional GetDefaultSetting(const UserProfile* user, - uint32_t setting_id); + static std::optional GetDefaultSetting(uint32_t setting_id); void WriteToGuest(X_USER_PROFILE_SETTING* setting_ptr, uint32_t& extended_data_address); std::vector Serialize() const; @@ -521,6 +522,15 @@ class UserSetting : public UserData { } }; +const static std::array default_setting_values = { + UserSetting(UserSettingId::XPROFILE_OPTION_CONTROLLER_VIBRATION, 3), + UserSetting( + UserSettingId::XPROFILE_GAMER_TIER, + X_XAMACCOUNTINFO::AccountSubscriptionTier::kSubscriptionTierGold), + UserSetting( + UserSettingId::XPROFILE_GAMERCARD_PICTURE_KEY, + xe::string_util::read_u16string_and_swap(u"FFFE07D10002000200010002"))}; + } // namespace xam } // namespace kernel } // namespace xe diff --git a/src/xenia/kernel/xam/user_tracker.cc b/src/xenia/kernel/xam/user_tracker.cc index d851b7f59..e9f3588ed 100644 --- a/src/xenia/kernel/xam/user_tracker.cc +++ b/src/xenia/kernel/xam/user_tracker.cc @@ -559,7 +559,7 @@ std::optional UserTracker::GetSetting(UserProfile* user, return gpd_setting.value(); } - return UserSetting::GetDefaultSetting(user, setting_id); + return UserSetting::GetDefaultSetting(setting_id); } bool UserTracker::GetUserSetting(uint64_t xuid, uint32_t title_id, diff --git a/src/xenia/kernel/xam/user_tracker.h b/src/xenia/kernel/xam/user_tracker.h index 35ee0b04d..c3e972bf4 100644 --- a/src/xenia/kernel/xam/user_tracker.h +++ b/src/xenia/kernel/xam/user_tracker.h @@ -16,6 +16,7 @@ #include "xenia/xbox.h" +#include "xenia/kernel/xam/user_profile.h" #include "xenia/kernel/xam/user_settings.h" namespace xe {