summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/InputConfig.cpp
diff options
context:
space:
mode:
authorMai <mai.iam2048@gmail.com>2024-02-05 09:47:08 -0500
committerGitHub <noreply@github.com>2024-02-05 09:47:08 -0500
commit9240f579eab18a2f67eef23846a6b508393d0e6c (patch)
tree80aea0c56b0108e60c0f791713be0960e490b407 /Source/Core/InputCommon/InputConfig.cpp
parentabbc4bd0bdff1a792bc0f6e912a022c17bd8668a (diff)
parent1315b54ffaa2833ddda7e543945c88ed5396efd6 (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.cpp41
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());