Просмотр исходного кода

core: hid: Fix GC triggers overwritting ZL and ZR buttons

Narr the Reg 3 лет назад
Родитель
Сommit
dc8d42243b
1 измененных файлов с 15 добавлено и 0 удалено
  1. 15 0
      src/core/hid/emulated_controller.cpp

+ 15 - 0
src/core/hid/emulated_controller.cpp

@@ -562,6 +562,16 @@ void EmulatedController::SetButton(const Common::Input::CallbackStatus& callback
         return;
         return;
     }
     }
 
 
+    // GC controllers have triggers not buttons
+    if (npad_type == NpadStyleIndex::GameCube) {
+        if (index == Settings::NativeButton::ZR) {
+            return;
+        }
+        if (index == Settings::NativeButton::ZL) {
+            return;
+        }
+    }
+
     switch (index) {
     switch (index) {
     case Settings::NativeButton::A:
     case Settings::NativeButton::A:
         controller.npad_button_state.a.Assign(current_status.value);
         controller.npad_button_state.a.Assign(current_status.value);
@@ -738,6 +748,11 @@ void EmulatedController::SetTrigger(const Common::Input::CallbackStatus& callbac
         return;
         return;
     }
     }
 
 
+    // Only GC controllers have analog triggers
+    if (npad_type != NpadStyleIndex::GameCube) {
+        return;
+    }
+
     const auto& trigger = controller.trigger_values[index];
     const auto& trigger = controller.trigger_values[index];
 
 
     switch (index) {
     switch (index) {