Parcourir la source

Merge pull request #5743 from german77/HandheldFix

Fix player 1 turning on handheld and not updating handheld settings
bunnei il y a 5 ans
Parent
commit
d98b0f8f48

+ 2 - 1
src/yuzu/configuration/config.cpp

@@ -1005,7 +1005,8 @@ void Config::SavePlayerValue(std::size_t player_index) {
                  static_cast<u8>(Settings::ControllerType::ProController));
                  static_cast<u8>(Settings::ControllerType::ProController));
 
 
     if (!player_prefix.isEmpty()) {
     if (!player_prefix.isEmpty()) {
-        WriteSetting(QStringLiteral("%1connected").arg(player_prefix), player.connected, false);
+        WriteSetting(QStringLiteral("%1connected").arg(player_prefix), player.connected,
+                     player_index == 0);
         WriteSetting(QStringLiteral("%1vibration_enabled").arg(player_prefix),
         WriteSetting(QStringLiteral("%1vibration_enabled").arg(player_prefix),
                      player.vibration_enabled, true);
                      player.vibration_enabled, true);
         WriteSetting(QStringLiteral("%1vibration_strength").arg(player_prefix),
         WriteSetting(QStringLiteral("%1vibration_strength").arg(player_prefix),

+ 10 - 0
src/yuzu/configuration/configure_input_player.cpp

@@ -575,6 +575,16 @@ void ConfigureInputPlayer::ApplyConfiguration() {
 
 
     std::transform(motions_param.begin(), motions_param.end(), motions.begin(),
     std::transform(motions_param.begin(), motions_param.end(), motions.begin(),
                    [](const Common::ParamPackage& param) { return param.Serialize(); });
                    [](const Common::ParamPackage& param) { return param.Serialize(); });
+
+    // Apply configuration for handheld
+    if (player_index == 0) {
+        auto& handheld = Settings::values.players.GetValue()[HANDHELD_INDEX];
+        if (player.controller_type == Settings::ControllerType::Handheld) {
+            handheld = player;
+        }
+        handheld.connected = ui->groupConnectedController->isChecked() &&
+                             player.controller_type == Settings::ControllerType::Handheld;
+    }
 }
 }
 
 
 void ConfigureInputPlayer::TryConnectSelectedController() {
 void ConfigureInputPlayer::TryConnectSelectedController() {