diff options
| author | MutantAura <44103205+MutantAura@users.noreply.github.com> | 2022-01-03 11:49:29 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-03 12:49:29 +0100 |
| commit | 686757105c83a1485117ff5f5d30b2fad4df39b1 (patch) | |
| tree | 0605169608fa384f5d79caa7a924d1771c60d870 /Ryujinx.Input | |
| parent | 16c649934fde134d7e8fc9539cf562dd129fbaac (diff) | |
Implement analog stick range modifier (#2783)
* adjust position vector + GUI
* remove brackets
* Update configuration
* Update ConfigurationFileFormat.cs
* rebase + review changes
* spacing
* revert deletion
* fix profile loading
* spacing
* comment spacing
Diffstat (limited to 'Ryujinx.Input')
| -rw-r--r-- | Ryujinx.Input/HLE/NpadController.cs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Ryujinx.Input/HLE/NpadController.cs b/Ryujinx.Input/HLE/NpadController.cs index 79c18ecf..2af114d2 100644 --- a/Ryujinx.Input/HLE/NpadController.cs +++ b/Ryujinx.Input/HLE/NpadController.cs @@ -381,8 +381,8 @@ namespace Ryujinx.Input.HLE (float leftAxisX, float leftAxisY) = State.GetStick(StickInputId.Left); (float rightAxisX, float rightAxisY) = State.GetStick(StickInputId.Right); - state.LStick = ClampToCircle(ApplyDeadzone(leftAxisX, leftAxisY, controllerConfig.DeadzoneLeft)); - state.RStick = ClampToCircle(ApplyDeadzone(rightAxisX, rightAxisY, controllerConfig.DeadzoneRight)); + state.LStick = ClampToCircle(ApplyDeadzone(leftAxisX, leftAxisY, controllerConfig.DeadzoneLeft), controllerConfig.RangeLeft); + state.RStick = ClampToCircle(ApplyDeadzone(rightAxisX, rightAxisY, controllerConfig.DeadzoneRight), controllerConfig.RangeRight); } return state; @@ -412,9 +412,9 @@ namespace Ryujinx.Input.HLE } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static JoystickPosition ClampToCircle(JoystickPosition position) + private static JoystickPosition ClampToCircle(JoystickPosition position, float range) { - Vector2 point = new Vector2(position.Dx, position.Dy); + Vector2 point = new Vector2(position.Dx, position.Dy) * range; if (point.Length() > short.MaxValue) { |
