diff options
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/am/applets/applet_controller.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/core/hle/service/am/applets/applet_controller.cpp b/src/core/hle/service/am/applets/applet_controller.cpp index c1b6cd126..658265a00 100644 --- a/src/core/hle/service/am/applets/applet_controller.cpp +++ b/src/core/hle/service/am/applets/applet_controller.cpp | |||
| @@ -243,19 +243,11 @@ void Controller::Execute() { | |||
| 243 | void Controller::ConfigurationComplete() { | 243 | void Controller::ConfigurationComplete() { |
| 244 | ControllerSupportResultInfo result_info{}; | 244 | ControllerSupportResultInfo result_info{}; |
| 245 | 245 | ||
| 246 | const auto& players = Settings::values.players.GetValue(); | ||
| 247 | |||
| 248 | // If enable_single_mode is enabled, player_count is 1 regardless of any other parameters. | 246 | // If enable_single_mode is enabled, player_count is 1 regardless of any other parameters. |
| 249 | // Otherwise, only count connected players from P1-P8. | 247 | // Otherwise, only count connected players from P1-P8. |
| 250 | result_info.player_count = | 248 | result_info.player_count = is_single_mode ? 1 : system.HIDCore().GetPlayerCount(); |
| 251 | is_single_mode | 249 | |
| 252 | ? 1 | 250 | result_info.selected_id = static_cast<u32>(system.HIDCore().GetFirstNpadId()); |
| 253 | : static_cast<s8>(std::count_if(players.begin(), players.end() - 2, | ||
| 254 | [](const auto& player) { return player.connected; })); | ||
| 255 | |||
| 256 | result_info.selected_id = HID::Controller_NPad::IndexToNPad(std::distance( | ||
| 257 | players.begin(), std::find_if(players.begin(), players.end(), | ||
| 258 | [](const auto& player) { return player.connected; }))); | ||
| 259 | 251 | ||
| 260 | result_info.result = 0; | 252 | result_info.result = 0; |
| 261 | 253 | ||