make savestate library its own object, also removed savestate.registersave and savestate.registerload (users should now use the events library instead). Todo: update documentation and remove references to these in any checked in lua scripts that might use them

This commit is contained in:
adelikat 2013-10-31 16:20:45 +00:00
parent 18f0704a7c
commit 21a21ac7b7
3 changed files with 30 additions and 60 deletions

View File

@ -121,7 +121,9 @@ namespace BizHawk.MultiClient
public string event_onloadstate(LuaFunction luaf, object name = null) public string event_onloadstate(LuaFunction luaf, object name = null)
{ {
return savestate_registerload(luaf, name); NamedLuaFunction nlf = new NamedLuaFunction(luaf, "OnSavestateLoad", name != null ? name.ToString() : null);
lua_functions.Add(nlf);
return nlf.GUID.ToString();
} }
public void event_onmemoryread(LuaFunction luaf, object address = null) public void event_onmemoryread(LuaFunction luaf, object address = null)
@ -199,7 +201,9 @@ namespace BizHawk.MultiClient
public string event_onsavestate(LuaFunction luaf, object name = null) public string event_onsavestate(LuaFunction luaf, object name = null)
{ {
return savestate_registersave(luaf, name); NamedLuaFunction nlf = new NamedLuaFunction(luaf, "OnSavestateSave", name != null ? name.ToString() : null);
lua_functions.Add(nlf);
return nlf.GUID.ToString();
} }
public bool event_unregisterbyid(object guid) public bool event_unregisterbyid(object guid)

View File

@ -4,8 +4,23 @@ using BizHawk.Client.Common;
namespace BizHawk.MultiClient namespace BizHawk.MultiClient
{ {
public partial class EmuLuaLibrary public class SavestateLuaLibrary : LuaLibraryBase
{ {
public override string Name { get { return "savestate"; } }
public override string[] Functions
{
get
{
return new[]
{
"load",
"loadslot",
"save",
"saveslot",
};
}
}
public void savestate_load(object lua_input) public void savestate_load(object lua_input)
{ {
if (lua_input is string) if (lua_input is string)
@ -16,35 +31,12 @@ namespace BizHawk.MultiClient
public void savestate_loadslot(object lua_input) public void savestate_loadslot(object lua_input)
{ {
int x; int slot = LuaInt(lua_input);
try //adelikat: This crap might not be necessary, need to test for a more elegant solution if (slot >= 0 && slot <= 9)
{ {
x = int.Parse(lua_input.ToString()); GlobalWinF.MainForm.LoadState("QuickSave" + slot.ToString(), true);
} }
catch
{
return;
}
if (x < 0 || x > 9)
return;
GlobalWinF.MainForm.LoadState("QuickSave" + x.ToString(), true);
}
public string savestate_registerload(LuaFunction luaf, object name)
{
NamedLuaFunction nlf = new NamedLuaFunction(luaf, "OnSavestateLoad", name != null ? name.ToString() : null);
lua_functions.Add(nlf);
return nlf.GUID.ToString();
}
public string savestate_registersave(LuaFunction luaf, object name)
{
NamedLuaFunction nlf = new NamedLuaFunction(luaf, "OnSavestateSave", name != null ? name.ToString() : null);
lua_functions.Add(nlf);
return nlf.GUID.ToString();
} }
public void savestate_save(object lua_input) public void savestate_save(object lua_input)
@ -58,21 +50,12 @@ namespace BizHawk.MultiClient
public void savestate_saveslot(object lua_input) public void savestate_saveslot(object lua_input)
{ {
int x; int slot = LuaInt(lua_input);
try //adelikat: This crap might not be necessary, need to test for a more elegant solution if (slot >= 0 && slot <= 9)
{ {
x = int.Parse(lua_input.ToString()); GlobalWinF.MainForm.SaveState("QuickSave" + slot.ToString());
} }
catch
{
return;
}
if (x < 0 || x > 9)
return;
GlobalWinF.MainForm.SaveState("QuickSave" + x.ToString());
} }
} }
} }

View File

@ -61,7 +61,7 @@ namespace BizHawk.MultiClient
"frameskip", "frameskip",
"getsystemid", "getsystemid",
"islagged", "islagged",
"ispaused", "ispaused",
"lagcount", "lagcount",
"limitframerate", "limitframerate",
"minimizeframeskip", "minimizeframeskip",
@ -106,16 +106,6 @@ namespace BizHawk.MultiClient
"textbox", "textbox",
}; };
public static string[] SaveStateFunctions = new[]
{
"load",
"loadslot",
"registerload",
"registersave",
"save",
"saveslot",
};
public void LuaRegister(Lua lua) public void LuaRegister(Lua lua)
{ {
lua.RegisterFunction("print", this, GetType().GetMethod("print")); lua.RegisterFunction("print", this, GetType().GetMethod("print"));
@ -129,6 +119,7 @@ namespace BizHawk.MultiClient
new MainMemoryLuaLibrary(_lua).LuaRegister(lua, Docs); new MainMemoryLuaLibrary(_lua).LuaRegister(lua, Docs);
new MovieLuaLibrary(_lua).LuaRegister(lua, Docs); new MovieLuaLibrary(_lua).LuaRegister(lua, Docs);
new NESLuaLibrary().LuaRegister(lua, Docs); new NESLuaLibrary().LuaRegister(lua, Docs);
new SavestateLuaLibrary().LuaRegister(lua, Docs);
new SNESLuaLibrary().LuaRegister(lua, Docs); new SNESLuaLibrary().LuaRegister(lua, Docs);
lua.NewTable("gui"); lua.NewTable("gui");
@ -145,14 +136,6 @@ namespace BizHawk.MultiClient
Docs.Add("emu", t, GetType().GetMethod("emu_" + t)); Docs.Add("emu", t, GetType().GetMethod("emu_" + t));
} }
lua.NewTable("savestate");
foreach (string t in SaveStateFunctions)
{
lua.RegisterFunction("savestate." + t, this,
GetType().GetMethod("savestate_" + t));
Docs.Add("savestate", t, GetType().GetMethod("savestate_" + t));
}
lua.NewTable("forms"); lua.NewTable("forms");
foreach (string t in FormsFunctions) foreach (string t in FormsFunctions)
{ {