diff options
| author | Mai <mai.iam2048@gmail.com> | 2024-02-05 09:47:08 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-05 09:47:08 -0500 |
| commit | 9240f579eab18a2f67eef23846a6b508393d0e6c (patch) | |
| tree | 80aea0c56b0108e60c0f791713be0960e490b407 /Source/Core/InputCommon/InputConfig.cpp | |
| parent | abbc4bd0bdff1a792bc0f6e912a022c17bd8668a (diff) | |
| parent | 1315b54ffaa2833ddda7e543945c88ed5396efd6 (diff) | |
Merge pull request #12561 from JosJuice/profile-consistency
InputCommon: Fix profile path inconsistencies
Diffstat (limited to 'Source/Core/InputCommon/InputConfig.cpp')
| -rw-r--r-- | Source/Core/InputCommon/InputConfig.cpp | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index f372fa3c1f..ff3f68acd0 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -20,57 +20,40 @@ #include "InputCommon/InputProfile.h" InputConfig::InputConfig(const std::string& ini_name, const std::string& gui_name, - const std::string& profile_name) - : m_ini_name(ini_name), m_gui_name(gui_name), m_profile_name(profile_name) + const std::string& profile_directory_name, const std::string& profile_key) + : m_ini_name(ini_name), m_gui_name(gui_name), m_profile_directory_name(profile_directory_name), + m_profile_key(profile_key) { } InputConfig::~InputConfig() = default; -bool InputConfig::LoadConfig(InputClass type) +bool InputConfig::LoadConfig() { Common::IniFile inifile; bool useProfile[MAX_BBMOTES] = {false, false, false, false, false}; static constexpr std::array<std::string_view, MAX_BBMOTES> num = {"1", "2", "3", "4", "BB"}; std::string profile[MAX_BBMOTES]; - std::string path; m_dynamic_input_tex_config_manager.Load(); if (SConfig::GetInstance().GetGameID() != "00000000") { - std::string type_str; - switch (type) - { - case InputClass::GBA: - type_str = "GBA"; - path = "Profiles/GBA/"; - break; - case InputClass::Wii: - type_str = "Wiimote"; - path = "Profiles/Wiimote/"; - break; - case InputClass::GC: - default: - type_str = "Pad"; - path = "Profiles/GCPad/"; - break; - } + const std::string profile_directory = GetUserProfileDirectoryPath(); Common::IniFile game_ini = SConfig::GetInstance().LoadGameIni(); auto* control_section = game_ini.GetOrCreateSection("Controls"); for (int i = 0; i < 4; i++) { - const auto profile_name = fmt::format("{}Profile{}", type_str, num[i]); + const auto profile_name = fmt::format("{}Profile{}", GetProfileKey(), num[i]); if (control_section->Exists(profile_name)) { std::string profile_setting; if (control_section->Get(profile_name, &profile_setting)) { - auto profiles = InputProfile::GetProfilesFromSetting( - profile_setting, File::GetUserPath(D_CONFIG_IDX) + path); + auto profiles = InputProfile::GetProfilesFromSetting(profile_setting, profile_directory); if (profiles.empty()) { @@ -176,6 +159,16 @@ bool InputConfig::ControllersNeedToBeCreated() const return m_controllers.empty(); } +std::string InputConfig::GetUserProfileDirectoryPath() const +{ + return fmt::format("{}Profiles/{}/", File::GetUserPath(D_CONFIG_IDX), GetProfileDirectoryName()); +} + +std::string InputConfig::GetSysProfileDirectoryPath() const +{ + return fmt::format("{}Profiles/{}/", File::GetSysDirectory(), GetProfileDirectoryName()); +} + int InputConfig::GetControllerCount() const { return static_cast<int>(m_controllers.size()); |
