115 lines
2.4 KiB
C#
115 lines
2.4 KiB
C#
using System;
|
|
using LuaInterface;
|
|
|
|
namespace BizHawk.Client.Common
|
|
{
|
|
public class GameInfoLuaLibrary : LuaLibraryBase
|
|
{
|
|
public GameInfoLuaLibrary(Lua lua)
|
|
: base(lua) { }
|
|
|
|
public GameInfoLuaLibrary(Lua lua, Action<string> logOutputCallback)
|
|
: base(lua, logOutputCallback) { }
|
|
|
|
public override string Name { get { return "gameinfo"; } }
|
|
|
|
[LuaMethodAttributes(
|
|
"getromname",
|
|
"returns the path of the currently loaded rom, if a rom is loaded"
|
|
)]
|
|
public string GetRomName()
|
|
{
|
|
if (Global.Game != null)
|
|
{
|
|
return Global.Game.Name ?? string.Empty;
|
|
}
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
[LuaMethodAttributes(
|
|
"getromhash",
|
|
"returns the hash of the currently loaded rom, if a rom is loaded"
|
|
)]
|
|
public string GetRomHash()
|
|
{
|
|
if (Global.Game != null)
|
|
{
|
|
return Global.Game.Hash ?? string.Empty;
|
|
}
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
[LuaMethodAttributes(
|
|
"indatabase",
|
|
"returns whether or not the currently loaded rom is in the game database"
|
|
)]
|
|
public bool InDatabase()
|
|
{
|
|
if (Global.Game != null)
|
|
{
|
|
return !Global.Game.NotInDatabase;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
[LuaMethodAttributes(
|
|
"getstatus",
|
|
"returns the game database status of the currently loaded rom. Statuses are for example: GoodDump, BadDump, Hack, Unknown, NotInDatabase"
|
|
)]
|
|
public string GetStatus()
|
|
{
|
|
if (Global.Game != null)
|
|
{
|
|
return Global.Game.Status.ToString() ?? string.Empty;
|
|
}
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
[LuaMethodAttributes(
|
|
"isstatusbad",
|
|
"returns the currently loaded rom's game database status is considered 'bad'"
|
|
)]
|
|
public bool IsStatusBad()
|
|
{
|
|
if (Global.Game != null)
|
|
{
|
|
return Global.Game.IsRomStatusBad();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
[LuaMethodAttributes(
|
|
"getboardtype",
|
|
"returns identifying information about the 'mapper' or similar capability used for this game. empty if no such useful distinction can be drawn"
|
|
)]
|
|
public string GetBoardType()
|
|
{
|
|
return Global.Emulator.BoardName;
|
|
}
|
|
|
|
[LuaMethodAttributes(
|
|
"getoptions",
|
|
"returns the game options for the currently loaded rom. Options vary per platform"
|
|
)]
|
|
public LuaTable GetOptions()
|
|
{
|
|
var options = Lua.NewTable();
|
|
|
|
if (Global.Game != null)
|
|
{
|
|
foreach (var option in Global.Game.GetOptionsDict())
|
|
{
|
|
options[option.Key] = option.Value;
|
|
}
|
|
}
|
|
|
|
return options;
|
|
}
|
|
}
|
|
}
|