summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp10
-rwxr-xr-xsrc/input_common/analog_from_button.cpp14
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
37private: 51private:
38 Button up; 52 Button up;
39 Button down; 53 Button down;