summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/yuzu_cmd/config.cpp36
1 files changed, 28 insertions, 8 deletions
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index 8e9c7d211..ff616da70 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -66,6 +66,11 @@ static const std::array<int, Settings::NativeButton::NumButtons> default_buttons
66 SDL_SCANCODE_M, SDL_SCANCODE_N, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_B, 66 SDL_SCANCODE_M, SDL_SCANCODE_N, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_B,
67}; 67};
68 68
69static const std::array<int, Settings::NativeMotion::NumMotions> default_motions = {
70 SDL_SCANCODE_7,
71 SDL_SCANCODE_8,
72};
73
69static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs{{ 74static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs{{
70 { 75 {
71 SDL_SCANCODE_UP, 76 SDL_SCANCODE_UP,
@@ -102,27 +107,42 @@ void Config::ReadSetting(const std::string& group, Settings::BasicSetting<Type>&
102void Config::ReadValues() { 107void Config::ReadValues() {
103 // Controls 108 // Controls
104 for (std::size_t p = 0; p < Settings::values.players.GetValue().size(); ++p) { 109 for (std::size_t p = 0; p < Settings::values.players.GetValue().size(); ++p) {
110 auto& player = Settings::values.players.GetValue()[p];
111
105 const auto group = fmt::format("ControlsP{}", p); 112 const auto group = fmt::format("ControlsP{}", p);
106 for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) { 113 for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
107 std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]); 114 std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
108 Settings::values.players.GetValue()[p].buttons[i] = 115 player.buttons[i] =
109 sdl2_config->Get(group, Settings::NativeButton::mapping[i], default_param); 116 sdl2_config->Get(group, Settings::NativeButton::mapping[i], default_param);
110 if (Settings::values.players.GetValue()[p].buttons[i].empty()) 117 if (player.buttons[i].empty()) {
111 Settings::values.players.GetValue()[p].buttons[i] = default_param; 118 player.buttons[i] = default_param;
119 }
112 } 120 }
113 121
114 for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) { 122 for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) {
115 std::string default_param = InputCommon::GenerateAnalogParamFromKeys( 123 std::string default_param = InputCommon::GenerateAnalogParamFromKeys(
116 default_analogs[i][0], default_analogs[i][1], default_analogs[i][2], 124 default_analogs[i][0], default_analogs[i][1], default_analogs[i][2],
117 default_analogs[i][3], default_analogs[i][4], 0.5f); 125 default_analogs[i][3], default_analogs[i][4], 0.5f);
118 Settings::values.players.GetValue()[p].analogs[i] = 126 player.analogs[i] =
119 sdl2_config->Get(group, Settings::NativeAnalog::mapping[i], default_param); 127 sdl2_config->Get(group, Settings::NativeAnalog::mapping[i], default_param);
120 if (Settings::values.players.GetValue()[p].analogs[i].empty()) 128 if (player.analogs[i].empty()) {
121 Settings::values.players.GetValue()[p].analogs[i] = default_param; 129 player.analogs[i] = default_param;
130 }
131 }
132
133 for (int i = 0; i < Settings::NativeMotion::NumMotions; ++i) {
134 const std::string default_param =
135 InputCommon::GenerateKeyboardParam(default_motions[i]);
136 auto& player_motions = player.motions[i];
137
138 player_motions =
139 sdl2_config->Get(group, Settings::NativeMotion::mapping[i], default_param);
140 if (player_motions.empty()) {
141 player_motions = default_param;
142 }
122 } 143 }
123 144
124 Settings::values.players.GetValue()[p].connected = 145 player.connected = sdl2_config->GetBoolean(group, "connected", false);
125 sdl2_config->GetBoolean(group, "connected", false);
126 } 146 }
127 147
128 ReadSetting("ControlsGeneral", Settings::values.mouse_enabled); 148 ReadSetting("ControlsGeneral", Settings::values.mouse_enabled);