From e475edc3c68ef6170ef59a13603ccb1591f9a3a0 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 29 Jun 2014 13:40:49 +0000 Subject: [PATCH] Lua - joypad.setfrommnemonicstr() - catch errors and log to the lua console the error instead of killing the script --- .../lua/EmuLuaLibrary.Joypad.cs | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/BizHawk.Client.Common/lua/EmuLuaLibrary.Joypad.cs b/BizHawk.Client.Common/lua/EmuLuaLibrary.Joypad.cs index cb2c8ab84d..57cc1679c1 100644 --- a/BizHawk.Client.Common/lua/EmuLuaLibrary.Joypad.cs +++ b/BizHawk.Client.Common/lua/EmuLuaLibrary.Joypad.cs @@ -73,17 +73,24 @@ namespace BizHawk.Client.Common )] public void SetFromMnemonicStr(string inputLogEntry) { - var lg = Global.MovieSession.MovieControllerInstance(); - lg.SetControllersAsMnemonic(inputLogEntry); - - foreach (var button in lg.Type.BoolButtons) + try { - Global.LuaAndAdaptor.SetButton(button, lg.IsPressed(button)); + var lg = Global.MovieSession.MovieControllerInstance(); + lg.SetControllersAsMnemonic(inputLogEntry); + + foreach (var button in lg.Type.BoolButtons) + { + Global.LuaAndAdaptor.SetButton(button, lg.IsPressed(button)); + } + + foreach (var floatButton in lg.Type.FloatControls) + { + Global.LuaAndAdaptor.SetFloat(floatButton, lg.GetFloat(floatButton)); + } } - - foreach (var floatButton in lg.Type.FloatControls) + catch (Exception) { - Global.LuaAndAdaptor.SetFloat(floatButton, lg.GetFloat(floatButton)); + Log("invalid mnemonic string: " + inputLogEntry); } }