Clean up callback spaghetti when resetting `VirtualPadAnalogStick`

This commit is contained in:
YoshiRulz 2022-05-07 17:04:52 +10:00
parent 41de03e31c
commit b7ffa811bf
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 4 additions and 7 deletions

View File

@ -129,15 +129,12 @@ namespace BizHawk.Client.EmuHawk
public void ClearCallback()
{
ManualX.Value = 0;
ManualY.Value = 0;
manualR.Value = 0;
manualTheta.Value = 0;
AnalogStick.Clear(fromCallback: true);
SetNumericsFromAnalog();
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.XName, false);
_inputManager.StickyXorAdapter.Unset(AnalogStick.XName);
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.YName, false);
_inputManager.StickyXorAdapter.Unset(AnalogStick.YName);
AnalogStick.HasValue = false;
}
public void Clear() => AnalogStick.Clear();

View File

@ -257,12 +257,12 @@ namespace BizHawk.Client.EmuHawk
Refresh();
}
public void Clear()
public void Clear(bool fromCallback = false)
{
if (!HasValue && X == 0 && Y == 0) return;
X = Y = 0;
HasValue = false;
ClearCallback?.Invoke();
if (!fromCallback) ClearCallback?.Invoke();
Refresh();
}