diff --git a/src/BizHawk.Client.Common/lua/LuaHelperLibs/EventsLuaLibrary.cs b/src/BizHawk.Client.Common/lua/LuaHelperLibs/EventsLuaLibrary.cs index b1efe07a58..a9d9030e30 100644 --- a/src/BizHawk.Client.Common/lua/LuaHelperLibs/EventsLuaLibrary.cs +++ b/src/BizHawk.Client.Common/lua/LuaHelperLibs/EventsLuaLibrary.cs @@ -29,84 +29,8 @@ namespace BizHawk.Client.Common public override string Name => "event"; - public void CallExitEvent(LuaFile luaFile) - { - var exitCallbacks = RegisteredFunctions - .ForFile(luaFile) - .ForEvent("OnExit"); - - foreach (var exitCallback in exitCallbacks) - { - exitCallback.Call(); - } - } - public LuaFunctionList RegisteredFunctions { get; } = new LuaFunctionList(); - public void CallSaveStateEvent(string name) - { - var lfs = RegisteredFunctions.Where(l => l.Event == "OnSavestateSave").ToList(); - try - { - foreach (var lf in lfs) - { - lf.Call(name); - } - } - catch (Exception e) - { - Log($"error running function attached by lua function event.onsavestate\nError message: {e.Message}"); - } - } - - public void CallLoadStateEvent(string name) - { - var lfs = RegisteredFunctions.Where(l => l.Event == "OnSavestateLoad").ToList(); - try - { - foreach (var lf in lfs) - { - lf.Call(name); - } - } - catch (Exception e) - { - Log($"error running function attached by lua function event.onloadstate\nError message: {e.Message}"); - } - } - - public void CallFrameBeforeEvent() - { - var lfs = RegisteredFunctions.Where(l => l.Event == "OnFrameStart").ToList(); - try - { - foreach (var lf in lfs) - { - lf.Call(); - } - } - catch (Exception e) - { - Log($"error running function attached by lua function event.onframestart\nError message: {e.Message}"); - } - } - - public void CallFrameAfterEvent() - { - var lfs = RegisteredFunctions.Where(l => l.Event == "OnFrameEnd").ToList(); - try - { - foreach (var lf in lfs) - { - lf.Call(); - } - } - catch (Exception e) - { - Log($"error running function attached by lua function event.onframeend\nError message: {e.Message}"); - } - } - private void LogMemoryCallbacksNotImplemented() { Log($"{Emulator.Attributes().CoreName} does not implement memory callbacks"); diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs index 2f7926f3d9..026324c05b 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs @@ -154,33 +154,72 @@ namespace BizHawk.Client.EmuHawk public override void CallSaveStateEvent(string name) { - EventsLibrary.CallSaveStateEvent(name); + try + { + foreach (var lf in RegisteredFunctions.Where(l => l.Event == "OnSavestateSave")) + { + lf.Call(name); + } + } + catch (Exception e) + { + LogToLuaConsole($"error running function attached by lua function event.onsavestate\nError message: {e.Message}"); + } } public override void CallLoadStateEvent(string name) { - EventsLibrary.CallLoadStateEvent(name); + try + { + foreach (var lf in RegisteredFunctions.Where(l => l.Event == "OnSavestateLoad")) + { + lf.Call(name); + } + } + catch (Exception e) + { + LogToLuaConsole($"error running function attached by lua function event.onloadstate\nError message: {e.Message}"); + } } public override void CallFrameBeforeEvent() { - if (!IsUpdateSupressed) + if (IsUpdateSupressed) return; + try { - EventsLibrary.CallFrameBeforeEvent(); + foreach (var lf in RegisteredFunctions.Where(l => l.Event == "OnFrameStart")) + { + lf.Call(); + } + } + catch (Exception e) + { + LogToLuaConsole($"error running function attached by lua function event.onframestart\nError message: {e.Message}"); } } public override void CallFrameAfterEvent() { - if (!IsUpdateSupressed) + if (IsUpdateSupressed) return; + try { - EventsLibrary.CallFrameAfterEvent(); + foreach (var lf in RegisteredFunctions.Where(l => l.Event == "OnFrameEnd")) + { + lf.Call(); + } + } + catch (Exception e) + { + LogToLuaConsole($"error running function attached by lua function event.onframeend\nError message: {e.Message}"); } } public override void CallExitEvent(LuaFile lf) { - EventsLibrary.CallExitEvent(lf); + foreach (var exitCallback in RegisteredFunctions.ForFile(lf).ForEvent("OnExit")) + { + exitCallback.Call(); + } } public override void Close()