Clean up callback spaghetti when resetting `VirtualPadAnalogStick`
This commit is contained in:
parent
41de03e31c
commit
b7ffa811bf
|
@ -129,15 +129,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
public void ClearCallback()
|
public void ClearCallback()
|
||||||
{
|
{
|
||||||
ManualX.Value = 0;
|
AnalogStick.Clear(fromCallback: true);
|
||||||
ManualY.Value = 0;
|
SetNumericsFromAnalog();
|
||||||
manualR.Value = 0;
|
|
||||||
manualTheta.Value = 0;
|
|
||||||
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.XName, false);
|
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.XName, false);
|
||||||
_inputManager.StickyXorAdapter.Unset(AnalogStick.XName);
|
_inputManager.StickyXorAdapter.Unset(AnalogStick.XName);
|
||||||
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.YName, false);
|
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.YName, false);
|
||||||
_inputManager.StickyXorAdapter.Unset(AnalogStick.YName);
|
_inputManager.StickyXorAdapter.Unset(AnalogStick.YName);
|
||||||
AnalogStick.HasValue = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Clear() => AnalogStick.Clear();
|
public void Clear() => AnalogStick.Clear();
|
||||||
|
|
|
@ -257,12 +257,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Clear()
|
public void Clear(bool fromCallback = false)
|
||||||
{
|
{
|
||||||
if (!HasValue && X == 0 && Y == 0) return;
|
if (!HasValue && X == 0 && Y == 0) return;
|
||||||
X = Y = 0;
|
X = Y = 0;
|
||||||
HasValue = false;
|
HasValue = false;
|
||||||
ClearCallback?.Invoke();
|
if (!fromCallback) ClearCallback?.Invoke();
|
||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue