diff --git a/BizHawk.MultiClient/LuaImplementation.cs b/BizHawk.MultiClient/LuaImplementation.cs index 1d7df38cbb..4ee0c68cf0 100644 --- a/BizHawk.MultiClient/LuaImplementation.cs +++ b/BizHawk.MultiClient/LuaImplementation.cs @@ -2,13 +2,14 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.IO; using LuaInterface; using System.Windows.Forms; using BizHawk.MultiClient.tools; namespace BizHawk.MultiClient { - class LuaImplementation + public class LuaImplementation { Lua lua = new Lua(); LuaConsole Caller; @@ -62,6 +63,13 @@ namespace BizHawk.MultiClient lua.RegisterFunction("joypad." + JoypadFunctions[i], this, this.GetType().GetMethod("joypad_" + JoypadFunctions[i])); LuaLibraryList += "joypad." + JoypadFunctions[i] + "\n"; } + + lua.NewTable("client"); + for (int i = 0; i < MultiClientFunctions.Length; i++) + { + lua.RegisterFunction("client." + MultiClientFunctions[i], this, this.GetType().GetMethod("client_" + MultiClientFunctions[i])); + LuaLibraryList += "client." + MultiClientFunctions[i] + "\n"; + } } public void DoLuaFile(string File) @@ -98,6 +106,9 @@ namespace BizHawk.MultiClient //"register" }; public static string[] MemoryFunctions = new string[] { + //"usememorydomain", + //"getmemorydomainlist", + //"getcurrentmemorydomain", "readbyte", //"readbytesigned", //"readword", @@ -114,7 +125,7 @@ namespace BizHawk.MultiClient public static string[] SaveStateFunctions = new string[] { //"create", "save", - //"load", + "load" //"write" }; public static string[] MovieFunctions = new string[] { @@ -127,6 +138,10 @@ namespace BizHawk.MultiClient //"get", }; + public static string[] MultiClientFunctions = new string[] { + "openramwatch" + }; + /****************************************************/ /*************function definitions********************/ /****************************************************/ @@ -228,7 +243,18 @@ namespace BizHawk.MultiClient public void savestate_save(object lua_input) { - // + if (lua_input.GetType() == typeof(string)) + { + // + } + } + + public void savestate_load(object lua_input) + { + if (lua_input.GetType() == typeof(string)) + { + Global.MainForm.LoadStateFile(lua_input.ToString(), Path.GetFileName(lua_input.ToString())); + } } //---------------------------------------------------- @@ -261,5 +287,14 @@ namespace BizHawk.MultiClient { } + + //---------------------------------------------------- + //Client library + //---------------------------------------------------- + + public void client_openramwatch() + { + Global.MainForm.LoadRamWatch(); + } } } diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 20e0c5857b..4b560855b7 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -1834,7 +1834,7 @@ namespace BizHawk.MultiClient SaveStateFile(writer, sfd.FileName); } - private void LoadStateFile(string path, string name) + public void LoadStateFile(string path, string name) { if (HandleMovieLoadState(path)) { diff --git a/BizHawk.MultiClient/tools/LuaConsole.cs b/BizHawk.MultiClient/tools/LuaConsole.cs index 94777c63e4..33a0cb087b 100644 --- a/BizHawk.MultiClient/tools/LuaConsole.cs +++ b/BizHawk.MultiClient/tools/LuaConsole.cs @@ -32,7 +32,7 @@ namespace BizHawk.MultiClient int defaultHeight; List luaList = new List(); - LuaImplementation LuaImp; + public LuaImplementation LuaImp; string lastLuaFile = ""; private List GetLuaFileList()