diff options
| -rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 10 | ||||
| -rwxr-xr-x | src/input_common/analog_from_button.cpp | 14 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index 15c09f04c..c1e32b28c 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp | |||
| @@ -287,13 +287,13 @@ void Controller_NPad::RequestPadStateUpdate(u32 npad_id) { | |||
| 287 | analog_state[static_cast<std::size_t>(JoystickId::Joystick_Left)]->GetAnalogDirectionStatus( | 287 | analog_state[static_cast<std::size_t>(JoystickId::Joystick_Left)]->GetAnalogDirectionStatus( |
| 288 | Input::AnalogDirection::DOWN)); | 288 | Input::AnalogDirection::DOWN)); |
| 289 | 289 | ||
| 290 | pad_state.r_stick_up.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] | ||
| 291 | ->GetAnalogDirectionStatus(Input::AnalogDirection::RIGHT)); | ||
| 292 | pad_state.r_stick_left.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] | ||
| 293 | ->GetAnalogDirectionStatus(Input::AnalogDirection::LEFT)); | ||
| 294 | pad_state.r_stick_right.Assign( | 290 | pad_state.r_stick_right.Assign( |
| 295 | analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] | 291 | analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
| 296 | ->GetAnalogDirectionStatus(Input::AnalogDirection::UP)); | 292 | ->GetAnalogDirectionStatus(Input::AnalogDirection::RIGHT)); |
| 293 | pad_state.r_stick_left.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] | ||
| 294 | ->GetAnalogDirectionStatus(Input::AnalogDirection::LEFT)); | ||
| 295 | pad_state.r_stick_up.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] | ||
| 296 | ->GetAnalogDirectionStatus(Input::AnalogDirection::UP)); | ||
| 297 | pad_state.r_stick_down.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] | 297 | pad_state.r_stick_down.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
| 298 | ->GetAnalogDirectionStatus(Input::AnalogDirection::DOWN)); | 298 | ->GetAnalogDirectionStatus(Input::AnalogDirection::DOWN)); |
| 299 | 299 | ||
diff --git a/src/input_common/analog_from_button.cpp b/src/input_common/analog_from_button.cpp index e1a260762..6cabdaa3c 100755 --- a/src/input_common/analog_from_button.cpp +++ b/src/input_common/analog_from_button.cpp | |||
| @@ -34,6 +34,20 @@ public: | |||
| 34 | y * coef * (x == 0 ? 1.0f : SQRT_HALF)); | 34 | y * coef * (x == 0 ? 1.0f : SQRT_HALF)); |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | bool GetAnalogDirectionStatus(Input::AnalogDirection direction) const override { | ||
| 38 | switch (direction) { | ||
| 39 | case Input::AnalogDirection::RIGHT: | ||
| 40 | return right->GetStatus(); | ||
| 41 | case Input::AnalogDirection::LEFT: | ||
| 42 | return left->GetStatus(); | ||
| 43 | case Input::AnalogDirection::UP: | ||
| 44 | return up->GetStatus(); | ||
| 45 | case Input::AnalogDirection::DOWN: | ||
| 46 | return down->GetStatus(); | ||
| 47 | } | ||
| 48 | return false; | ||
| 49 | } | ||
| 50 | |||
| 37 | private: | 51 | private: |
| 38 | Button up; | 52 | Button up; |
| 39 | Button down; | 53 | Button down; |