Browse Source
Merge pull request #3431 from CJBok/npad-fix
InputCommon: analog_from_button get direction implementation
pull/15/merge
bunnei
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
19 additions and
5 deletions
-
src/core/hle/service/hid/controllers/npad.cpp
-
src/input_common/analog_from_button.cpp
|
|
|
@ -287,13 +287,13 @@ void Controller_NPad::RequestPadStateUpdate(u32 npad_id) { |
|
|
|
analog_state[static_cast<std::size_t>(JoystickId::Joystick_Left)]->GetAnalogDirectionStatus( |
|
|
|
Input::AnalogDirection::DOWN)); |
|
|
|
|
|
|
|
pad_state.r_stick_up.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
|
|
|
->GetAnalogDirectionStatus(Input::AnalogDirection::RIGHT)); |
|
|
|
pad_state.r_stick_left.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
|
|
|
->GetAnalogDirectionStatus(Input::AnalogDirection::LEFT)); |
|
|
|
pad_state.r_stick_right.Assign( |
|
|
|
analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
|
|
|
->GetAnalogDirectionStatus(Input::AnalogDirection::UP)); |
|
|
|
->GetAnalogDirectionStatus(Input::AnalogDirection::RIGHT)); |
|
|
|
pad_state.r_stick_left.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
|
|
|
->GetAnalogDirectionStatus(Input::AnalogDirection::LEFT)); |
|
|
|
pad_state.r_stick_up.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
|
|
|
->GetAnalogDirectionStatus(Input::AnalogDirection::UP)); |
|
|
|
pad_state.r_stick_down.Assign(analog_state[static_cast<std::size_t>(JoystickId::Joystick_Right)] |
|
|
|
->GetAnalogDirectionStatus(Input::AnalogDirection::DOWN)); |
|
|
|
|
|
|
|
|
|
|
|
@ -34,6 +34,20 @@ public: |
|
|
|
y * coef * (x == 0 ? 1.0f : SQRT_HALF)); |
|
|
|
} |
|
|
|
|
|
|
|
bool GetAnalogDirectionStatus(Input::AnalogDirection direction) const override { |
|
|
|
switch (direction) { |
|
|
|
case Input::AnalogDirection::RIGHT: |
|
|
|
return right->GetStatus(); |
|
|
|
case Input::AnalogDirection::LEFT: |
|
|
|
return left->GetStatus(); |
|
|
|
case Input::AnalogDirection::UP: |
|
|
|
return up->GetStatus(); |
|
|
|
case Input::AnalogDirection::DOWN: |
|
|
|
return down->GetStatus(); |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private: |
|
|
|
Button up; |
|
|
|
Button down; |
|
|
|
|