diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2022-05-19 22:19:17 -0500 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2022-06-26 22:33:44 -0500 |
| commit | 643f82539c9bc43a8573fabee3a236bfeb67cd47 (patch) | |
| tree | a72b6215c4f32f551325d20c80b0515822dbd9b1 /Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp | |
| parent | e18053d3075dd010a3a9db80d1b29b99cf7b69da (diff) | |
ControllerEmu: Expose gate size setting for octagon analog sticks.
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp')
| -rw-r--r-- | Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp index aaabfa5b17..e4d74aa524 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp @@ -65,9 +65,18 @@ OctagonAnalogStick::OctagonAnalogStick(const char* name_, ControlState gate_radi OctagonAnalogStick::OctagonAnalogStick(const char* name_, const char* ui_name_, ControlState gate_radius) - : AnalogStick(name_, ui_name_, std::make_unique<ControllerEmu::OctagonStickGate>(gate_radius)) + : AnalogStick(name_, ui_name_, std::make_unique<ControllerEmu::OctagonStickGate>(1.0)) { AddVirtualNotchSetting(&m_virtual_notch_setting, 45); + + AddSetting( + &m_gate_size_setting, + {_trans("Gate Size"), + // i18n: The percent symbol. + _trans("%"), + // i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. + _trans("Adjusts target radius of simulated stick gate.")}, + gate_radius * 100, 0.01, 100); } ControlState OctagonAnalogStick::GetVirtualNotchSize() const @@ -75,4 +84,9 @@ ControlState OctagonAnalogStick::GetVirtualNotchSize() const return m_virtual_notch_setting.GetValue() * MathUtil::TAU / 360; } +ControlState OctagonAnalogStick::GetGateRadiusAtAngle(double ang) const +{ + return AnalogStick::GetGateRadiusAtAngle(ang) * m_gate_size_setting.GetValue() / 100; +} + } // namespace ControllerEmu |
