0
0
Fork 0

Implement rotate stick 90 degrees clockwise (#3084)

* Implement swapping sticks

* Rotate 90 degrees clockwise

Co-authored-by: matesic.darko@gmail.com <Darkman1979>
This commit is contained in:
darko1979 2022-03-12 18:23:48 +01:00 committed by GitHub
parent 69b05f9918
commit bed516bfda
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 45 additions and 0 deletions

View file

@ -5,6 +5,7 @@
public Stick Joystick { get; set; } public Stick Joystick { get; set; }
public bool InvertStickX { get; set; } public bool InvertStickX { get; set; }
public bool InvertStickY { get; set; } public bool InvertStickY { get; set; }
public bool Rotate90CW { get; set; }
public Button StickButton { get; set; } public Button StickButton { get; set; }
} }
} }

View file

@ -220,6 +220,7 @@ namespace Ryujinx.Headless.SDL2
StickButton = ConfigGamepadInputId.LeftStick, StickButton = ConfigGamepadInputId.LeftStick,
InvertStickX = false, InvertStickX = false,
InvertStickY = false, InvertStickY = false,
Rotate90CW = false,
}, },
RightJoycon = new RightJoyconCommonConfig<ConfigGamepadInputId> RightJoycon = new RightJoyconCommonConfig<ConfigGamepadInputId>
@ -241,6 +242,7 @@ namespace Ryujinx.Headless.SDL2
StickButton = ConfigGamepadInputId.RightStick, StickButton = ConfigGamepadInputId.RightStick,
InvertStickX = false, InvertStickX = false,
InvertStickY = false, InvertStickY = false,
Rotate90CW = false,
}, },
Motion = new StandardMotionConfigController Motion = new StandardMotionConfigController

View file

@ -350,6 +350,14 @@ namespace Ryujinx.Input.SDL2
{ {
resultY = -resultY; resultY = -resultY;
} }
if ((inputId == StickInputId.Left && _configuration.LeftJoyconStick.Rotate90CW) ||
(inputId == StickInputId.Right && _configuration.RightJoyconStick.Rotate90CW))
{
float temp = resultX;
resultX = resultY;
resultY = -temp;
}
} }
return (resultX, resultY); return (resultX, resultY);

View file

@ -73,6 +73,7 @@ namespace Ryujinx.Ui.Windows
[GUI] ToggleButton _lStick; [GUI] ToggleButton _lStick;
[GUI] CheckButton _invertLStickX; [GUI] CheckButton _invertLStickX;
[GUI] CheckButton _invertLStickY; [GUI] CheckButton _invertLStickY;
[GUI] CheckButton _rotateL90CW;
[GUI] ToggleButton _lStickUp; [GUI] ToggleButton _lStickUp;
[GUI] ToggleButton _lStickDown; [GUI] ToggleButton _lStickDown;
[GUI] ToggleButton _lStickLeft; [GUI] ToggleButton _lStickLeft;
@ -88,6 +89,7 @@ namespace Ryujinx.Ui.Windows
[GUI] ToggleButton _rStick; [GUI] ToggleButton _rStick;
[GUI] CheckButton _invertRStickX; [GUI] CheckButton _invertRStickX;
[GUI] CheckButton _invertRStickY; [GUI] CheckButton _invertRStickY;
[GUI] CheckButton _rotateR90CW;
[GUI] ToggleButton _rStickUp; [GUI] ToggleButton _rStickUp;
[GUI] ToggleButton _rStickDown; [GUI] ToggleButton _rStickDown;
[GUI] ToggleButton _rStickLeft; [GUI] ToggleButton _rStickLeft;
@ -490,6 +492,7 @@ namespace Ryujinx.Ui.Windows
_lStick.Label = controllerConfig.LeftJoyconStick.Joystick.ToString(); _lStick.Label = controllerConfig.LeftJoyconStick.Joystick.ToString();
_invertLStickX.Active = controllerConfig.LeftJoyconStick.InvertStickX; _invertLStickX.Active = controllerConfig.LeftJoyconStick.InvertStickX;
_invertLStickY.Active = controllerConfig.LeftJoyconStick.InvertStickY; _invertLStickY.Active = controllerConfig.LeftJoyconStick.InvertStickY;
_rotateL90CW.Active = controllerConfig.LeftJoyconStick.Rotate90CW;
_lStickButton.Label = controllerConfig.LeftJoyconStick.StickButton.ToString(); _lStickButton.Label = controllerConfig.LeftJoyconStick.StickButton.ToString();
_dpadUp.Label = controllerConfig.LeftJoycon.DpadUp.ToString(); _dpadUp.Label = controllerConfig.LeftJoycon.DpadUp.ToString();
_dpadDown.Label = controllerConfig.LeftJoycon.DpadDown.ToString(); _dpadDown.Label = controllerConfig.LeftJoycon.DpadDown.ToString();
@ -503,6 +506,7 @@ namespace Ryujinx.Ui.Windows
_rStick.Label = controllerConfig.RightJoyconStick.Joystick.ToString(); _rStick.Label = controllerConfig.RightJoyconStick.Joystick.ToString();
_invertRStickX.Active = controllerConfig.RightJoyconStick.InvertStickX; _invertRStickX.Active = controllerConfig.RightJoyconStick.InvertStickX;
_invertRStickY.Active = controllerConfig.RightJoyconStick.InvertStickY; _invertRStickY.Active = controllerConfig.RightJoyconStick.InvertStickY;
_rotateR90CW.Active = controllerConfig.RightJoyconStick.Rotate90CW;
_rStickButton.Label = controllerConfig.RightJoyconStick.StickButton.ToString(); _rStickButton.Label = controllerConfig.RightJoyconStick.StickButton.ToString();
_a.Label = controllerConfig.RightJoycon.ButtonA.ToString(); _a.Label = controllerConfig.RightJoycon.ButtonA.ToString();
_b.Label = controllerConfig.RightJoycon.ButtonB.ToString(); _b.Label = controllerConfig.RightJoycon.ButtonB.ToString();
@ -718,6 +722,7 @@ namespace Ryujinx.Ui.Windows
Joystick = lStick, Joystick = lStick,
InvertStickY = _invertLStickY.Active, InvertStickY = _invertLStickY.Active,
StickButton = lStickButton, StickButton = lStickButton,
Rotate90CW = _rotateL90CW.Active,
}, },
RightJoycon = new RightJoyconCommonConfig<ConfigGamepadInputId> RightJoycon = new RightJoyconCommonConfig<ConfigGamepadInputId>
{ {
@ -737,6 +742,7 @@ namespace Ryujinx.Ui.Windows
Joystick = rStick, Joystick = rStick,
InvertStickY = _invertRStickY.Active, InvertStickY = _invertRStickY.Active,
StickButton = rStickButton, StickButton = rStickButton,
Rotate90CW = _rotateR90CW.Active,
}, },
Motion = motionConfig, Motion = motionConfig,
Rumble = new RumbleConfigController Rumble = new RumbleConfigController
@ -1056,6 +1062,7 @@ namespace Ryujinx.Ui.Windows
StickButton = ConfigGamepadInputId.LeftStick, StickButton = ConfigGamepadInputId.LeftStick,
InvertStickX = false, InvertStickX = false,
InvertStickY = false, InvertStickY = false,
Rotate90CW = false,
}, },
RightJoycon = new RightJoyconCommonConfig<ConfigGamepadInputId> RightJoycon = new RightJoyconCommonConfig<ConfigGamepadInputId>
@ -1077,6 +1084,7 @@ namespace Ryujinx.Ui.Windows
StickButton = ConfigGamepadInputId.RightStick, StickButton = ConfigGamepadInputId.RightStick,
InvertStickX = false, InvertStickX = false,
InvertStickY = false, InvertStickY = false,
Rotate90CW = false,
}, },
Motion = new StandardMotionConfigController Motion = new StandardMotionConfigController

View file

@ -740,6 +740,19 @@
<property name="top_attach">1</property> <property name="top_attach">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkCheckButton" id="_rotateL90CW">
<property name="label" translatable="yes">Rotate 90° Clockwise</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1697,6 +1710,19 @@
<property name="top_attach">1</property> <property name="top_attach">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkCheckButton" id="_rotateR90CW">
<property name="label" translatable="yes">Rotate 90° Clockwise</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>