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
This commit is contained in:
parent
16c649934f
commit
686757105c
7 changed files with 160 additions and 5 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue