Lua - fix joypad roundtrip testing

This commit is contained in:
adelikat 2014-05-24 03:24:05 +00:00
parent c79b143135
commit 6d981c73e1
1 changed files with 10 additions and 6 deletions

View File

@ -20,27 +20,28 @@ namespace BizHawk.Client.Common
public LuaTable Get(int? controller = null) public LuaTable Get(int? controller = null)
{ {
var buttons = Lua.NewTable(); var buttons = Lua.NewTable();
foreach (var button in Global.ControllerOutput.Source.Type.BoolButtons) var adaptor = Global.AutofireStickyXORAdapter;
foreach (var button in adaptor.Source.Type.BoolButtons)
{ {
if (!controller.HasValue) if (!controller.HasValue)
{ {
buttons[button] = Global.ControllerOutput[button]; buttons[button] = adaptor[button];
} }
else if (button.Length >= 3 && button.Substring(0, 2) == "P" + controller) else if (button.Length >= 3 && button.Substring(0, 2) == "P" + controller)
{ {
buttons[button.Substring(3)] = Global.ControllerOutput["P" + controller + " " + button.Substring(3)]; buttons[button.Substring(3)] = adaptor["P" + controller + " " + button.Substring(3)];
} }
} }
foreach (var button in Global.ControllerOutput.Source.Type.FloatControls) foreach (var button in adaptor.Source.Type.FloatControls)
{ {
if (controller == null) if (controller == null)
{ {
buttons[button] = Global.ControllerOutput.GetFloat(button); buttons[button] = adaptor.GetFloat(button);
} }
else if (button.Length >= 3 && button.Substring(0, 2) == "P" + controller) else if (button.Length >= 3 && button.Substring(0, 2) == "P" + controller)
{ {
buttons[button.Substring(3)] = Global.ControllerOutput.GetFloat("P" + controller + " " + button.Substring(3)); buttons[button.Substring(3)] = adaptor.GetFloat("P" + controller + " " + button.Substring(3));
} }
} }
@ -132,15 +133,18 @@ namespace BizHawk.Client.Common
if (theValue.HasValue) // Force if (theValue.HasValue) // Force
{ {
Global.LuaAndAdaptor.SetButton(toPress, theValue.Value); Global.LuaAndAdaptor.SetButton(toPress, theValue.Value);
Global.ActiveController.Overrides(Global.LuaAndAdaptor);
} }
else // Unset else // Unset
{ {
Global.LuaAndAdaptor.UnSet(toPress); Global.LuaAndAdaptor.UnSet(toPress);
Global.ActiveController.Overrides(Global.LuaAndAdaptor);
} }
} }
else // Inverse else // Inverse
{ {
Global.LuaAndAdaptor.SetInverse(toPress); Global.LuaAndAdaptor.SetInverse(toPress);
Global.ActiveController.Overrides(Global.LuaAndAdaptor);
} }
} }
} }