summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Morph2020-09-02 12:18:41 -0400
committerGravatar german2020-09-04 21:48:13 -0500
commitdf3cbd4758bed28d2bc33f7ba63485a3221e6070 (patch)
tree7607175f01ca4fba8b3e26833779e42924e24ec2
parentInclude HID and configuration changes related to motion (diff)
downloadyuzu-df3cbd4758bed28d2bc33f7ba63485a3221e6070.tar.gz
yuzu-df3cbd4758bed28d2bc33f7ba63485a3221e6070.tar.xz
yuzu-df3cbd4758bed28d2bc33f7ba63485a3221e6070.zip
controllers/npad: Simplify motion entry assignment
Simplifies the motion assignment in the Dual Joycon entry and assigns index 1 of the motion entry (Motion 2) for the right joycon.
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp47
1 files changed, 18 insertions, 29 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index acf748bf1..9701318b5 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -490,30 +490,19 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8*
490 libnx_entry.connection_status.IsLeftJoyConnected.Assign(1); 490 libnx_entry.connection_status.IsLeftJoyConnected.Assign(1);
491 libnx_entry.connection_status.IsRightJoyConnected.Assign(1); 491 libnx_entry.connection_status.IsRightJoyConnected.Assign(1);
492 492
493 if (sixaxis_sensors_enabled) { 493 if (sixaxis_sensors_enabled && motions[i][0]) {
494 if (motions[i][0] && motions[i][1]) { 494 // Set motion for the left joycon
495 // set both 495 dual_left_sixaxis_entry.accel = motion_devices[0].accel;
496 dual_left_sixaxis_entry.accel = motion_devices[0].accel; 496 dual_left_sixaxis_entry.gyro = motion_devices[0].gyro;
497 dual_left_sixaxis_entry.gyro = motion_devices[0].gyro; 497 dual_left_sixaxis_entry.rotation = motion_devices[0].rotation;
498 dual_left_sixaxis_entry.rotation = motion_devices[0].rotation; 498 dual_left_sixaxis_entry.orientation = motion_devices[0].orientation;
499 dual_left_sixaxis_entry.orientation = motion_devices[0].orientation; 499 }
500 dual_right_sixaxis_entry.accel = motion_devices[1].accel; 500 if (sixaxis_sensors_enabled && motions[i][1]) {
501 dual_right_sixaxis_entry.gyro = motion_devices[1].gyro; 501 // Set motion for the right joycon
502 dual_right_sixaxis_entry.rotation = motion_devices[1].rotation; 502 dual_right_sixaxis_entry.accel = motion_devices[1].accel;
503 dual_right_sixaxis_entry.orientation = motion_devices[1].orientation; 503 dual_right_sixaxis_entry.gyro = motion_devices[1].gyro;
504 } else if (motions[i][0]) { 504 dual_right_sixaxis_entry.rotation = motion_devices[1].rotation;
505 // set right 505 dual_right_sixaxis_entry.orientation = motion_devices[1].orientation;
506 dual_right_sixaxis_entry.accel = motion_devices[0].accel;
507 dual_right_sixaxis_entry.gyro = motion_devices[0].gyro;
508 dual_right_sixaxis_entry.rotation = motion_devices[0].rotation;
509 dual_right_sixaxis_entry.orientation = motion_devices[0].orientation;
510 } else if (motions[i][1]) {
511 // set right
512 dual_right_sixaxis_entry.accel = motion_devices[1].accel;
513 dual_right_sixaxis_entry.gyro = motion_devices[1].gyro;
514 dual_right_sixaxis_entry.rotation = motion_devices[1].rotation;
515 dual_right_sixaxis_entry.orientation = motion_devices[1].orientation;
516 }
517 } 506 }
518 break; 507 break;
519 case NPadControllerType::JoyLeft: 508 case NPadControllerType::JoyLeft:
@@ -543,11 +532,11 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8*
543 532
544 libnx_entry.connection_status.IsRightJoyConnected.Assign(1); 533 libnx_entry.connection_status.IsRightJoyConnected.Assign(1);
545 534
546 if (sixaxis_sensors_enabled && motions[i][0]) { 535 if (sixaxis_sensors_enabled && motions[i][1]) {
547 right_sixaxis_entry.accel = motion_devices[0].accel; 536 right_sixaxis_entry.accel = motion_devices[1].accel;
548 right_sixaxis_entry.gyro = motion_devices[0].gyro; 537 right_sixaxis_entry.gyro = motion_devices[1].gyro;
549 right_sixaxis_entry.rotation = motion_devices[0].rotation; 538 right_sixaxis_entry.rotation = motion_devices[1].rotation;
550 right_sixaxis_entry.orientation = motion_devices[0].orientation; 539 right_sixaxis_entry.orientation = motion_devices[1].orientation;
551 } 540 }
552 break; 541 break;
553 case NPadControllerType::Pokeball: 542 case NPadControllerType::Pokeball: