a round of code cleanup in Client.Common
This commit is contained in:
parent
16f7c7fcdc
commit
7482cfdc5e
|
@ -1,7 +1,8 @@
|
|||
using System;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
|
@ -17,7 +18,7 @@ namespace BizHawk.Client.Common
|
|||
public const string Movieheader = "Header";
|
||||
*/
|
||||
|
||||
private static Dictionary<BinaryStateLump, string> LumpNames;
|
||||
private static readonly Dictionary<BinaryStateLump, string> LumpNames;
|
||||
|
||||
static BinaryStateFileNames()
|
||||
{
|
||||
|
@ -50,7 +51,7 @@ namespace BizHawk.Client.Common
|
|||
public class BinaryStateLoader : IDisposable
|
||||
{
|
||||
|
||||
private bool isDisposed;
|
||||
private bool _isDisposed;
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
|
@ -59,9 +60,9 @@ namespace BizHawk.Client.Common
|
|||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!isDisposed)
|
||||
if (!_isDisposed)
|
||||
{
|
||||
isDisposed = true;
|
||||
_isDisposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
|
@ -70,8 +71,8 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
ZipFile zip;
|
||||
Version ver;
|
||||
private ZipFile zip;
|
||||
private Version ver;
|
||||
|
||||
private BinaryStateLoader()
|
||||
{
|
||||
|
@ -81,10 +82,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
// the "BizState 1.0" tag contains an integer in it describing the sub version.
|
||||
if (s.Length == 0)
|
||||
{
|
||||
ver = new Version(1, 0, 0); // except for the first release, which doesn't
|
||||
}
|
||||
else
|
||||
{
|
||||
StreamReader sr = new StreamReader(s);
|
||||
var sr = new StreamReader(s);
|
||||
ver = new Version(1, 0, int.Parse(sr.ReadLine()));
|
||||
}
|
||||
Console.WriteLine("Read a zipstate of version {0}", ver.ToString());
|
||||
|
@ -92,17 +95,22 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static BinaryStateLoader LoadAndDetect(string Filename)
|
||||
{
|
||||
BinaryStateLoader ret = new BinaryStateLoader();
|
||||
var ret = new BinaryStateLoader();
|
||||
|
||||
//PORTABLE TODO - SKIP THIS.. FOR NOW
|
||||
//check whether its an archive before we try opening it
|
||||
// PORTABLE TODO - SKIP THIS.. FOR NOW
|
||||
// check whether its an archive before we try opening it
|
||||
int offset;
|
||||
bool isExecutable;
|
||||
bool isArchive;
|
||||
using(var archiveChecker = new SevenZipSharpArchiveHandler())
|
||||
using (var archiveChecker = new SevenZipSharpArchiveHandler())
|
||||
{
|
||||
isArchive = archiveChecker.CheckSignature(Filename, out offset, out isExecutable);
|
||||
if(!isArchive)
|
||||
}
|
||||
|
||||
if (!isArchive)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -112,6 +120,7 @@ namespace BizHawk.Client.Common
|
|||
ret.zip.Close();
|
||||
return null;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
catch (ZipException)
|
||||
|
@ -121,7 +130,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// Gets a lump
|
||||
/// </summary>
|
||||
/// <param name="Lump">lump to retriever</param>
|
||||
/// <param name="abort">true to throw exception on failure</param>
|
||||
|
@ -133,7 +142,7 @@ namespace BizHawk.Client.Common
|
|||
var e = zip.GetEntry(Name);
|
||||
if (e != null)
|
||||
{
|
||||
using (Stream zs = zip.GetInputStream(e))
|
||||
using (var zs = zip.GetInputStream(e))
|
||||
{
|
||||
callback(zs);
|
||||
}
|
||||
|
@ -170,8 +179,6 @@ namespace BizHawk.Client.Common
|
|||
/// <summary>
|
||||
/// load binary state, or text state if binary state lump doesn't exist
|
||||
/// </summary>
|
||||
/// <param name="callbackBinary"></param>
|
||||
/// <param name="callbackText"></param>
|
||||
public void GetCoreState(Action<Stream> callbackBinary, Action<Stream> callbackText)
|
||||
{
|
||||
if (!GetLump(BinaryStateLump.Corestate, false, callbackBinary)
|
||||
|
@ -210,7 +217,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
private void WriteVersion(Stream s)
|
||||
{
|
||||
StreamWriter sw = new StreamWriter(s);
|
||||
var sw = new StreamWriter(s);
|
||||
sw.WriteLine("1"); // version 1.0.1
|
||||
sw.Flush();
|
||||
}
|
||||
|
@ -244,7 +251,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
PutLump(Lump, delegate(Stream s)
|
||||
{
|
||||
BinaryWriter bw = new BinaryWriter(s);
|
||||
var bw = new BinaryWriter(s);
|
||||
callback(bw);
|
||||
bw.Flush();
|
||||
});
|
||||
|
@ -287,7 +294,8 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
*/
|
||||
|
||||
private bool isDisposed;
|
||||
private bool _isDisposed;
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
|
@ -296,9 +304,9 @@ namespace BizHawk.Client.Common
|
|||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!isDisposed)
|
||||
if (!_isDisposed)
|
||||
{
|
||||
isDisposed = true;
|
||||
_isDisposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
|
@ -306,6 +314,5 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
public class Controller : IController
|
||||
{
|
||||
private ControllerDefinition type;
|
||||
private ControllerDefinition _type;
|
||||
private readonly WorkingDictionary<string, List<string>> bindings = new WorkingDictionary<string, List<string>>();
|
||||
private readonly WorkingDictionary<string, bool> buttons = new WorkingDictionary<string, bool>();
|
||||
|
||||
|
@ -21,17 +21,18 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public Controller(ControllerDefinition definition)
|
||||
{
|
||||
type = definition;
|
||||
for (int i = 0; i < type.FloatControls.Count; i++)
|
||||
_type = definition;
|
||||
for (int i = 0; i < _type.FloatControls.Count; i++)
|
||||
{
|
||||
FloatButtons[type.FloatControls[i]] = type.FloatRanges[i].Mid;
|
||||
FloatRanges[type.FloatControls[i]] = type.FloatRanges[i];
|
||||
FloatButtons[_type.FloatControls[i]] = _type.FloatRanges[i].Mid;
|
||||
FloatRanges[_type.FloatControls[i]] = _type.FloatRanges[i];
|
||||
}
|
||||
}
|
||||
|
||||
public ControllerDefinition Type { get { return type; } }
|
||||
public ControllerDefinition Type { get { return _type; } }
|
||||
|
||||
/// <summary>don't do this</summary>
|
||||
public void ForceType(ControllerDefinition newtype) { type = newtype; }
|
||||
public void ForceType(ControllerDefinition newtype) { _type = newtype; }
|
||||
public bool this[string button] { get { return IsPressed(button); } }
|
||||
public bool IsPressed(string button)
|
||||
{
|
||||
|
@ -40,13 +41,13 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public float GetFloat(string name) { return FloatButtons[name]; }
|
||||
|
||||
//look for bindings which are activated by the supplied physical button.
|
||||
// Looks for bindings which are activated by the supplied physical button.
|
||||
public List<string> SearchBindings(string button)
|
||||
{
|
||||
return (from kvp in bindings from bound_button in kvp.Value where bound_button == button select kvp.Key).ToList();
|
||||
}
|
||||
|
||||
//Searches bindings for the controller and returns true if this binding is mapped somewhere in this controller
|
||||
// Searches bindings for the controller and returns true if this binding is mapped somewhere in this controller
|
||||
public bool HasBinding(string button)
|
||||
{
|
||||
return bindings.SelectMany(kvp => kvp.Value).Any(bound_button => bound_button == button);
|
||||
|
@ -66,7 +67,9 @@ namespace BizHawk.Client.Common
|
|||
foreach (var bound_button in kvp.Value)
|
||||
{
|
||||
if (controller[bound_button])
|
||||
{
|
||||
buttons[kvp.Key] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -110,15 +113,17 @@ namespace BizHawk.Client.Common
|
|||
public void OR_FromLogical(IController controller)
|
||||
{
|
||||
// change: or from each button that the other input controller has
|
||||
//foreach (string button in type.BoolButtons)
|
||||
// foreach (string button in type.BoolButtons)
|
||||
if (controller.Type != null)
|
||||
foreach (string button in controller.Type.BoolButtons)
|
||||
{
|
||||
foreach (var button in controller.Type.BoolButtons)
|
||||
{
|
||||
if (controller.IsPressed(button))
|
||||
{
|
||||
buttons[button] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void BindButton(string button, string control)
|
||||
|
@ -129,10 +134,15 @@ namespace BizHawk.Client.Common
|
|||
public void BindMulti(string button, string controlString)
|
||||
{
|
||||
if (string.IsNullOrEmpty(controlString))
|
||||
{
|
||||
return;
|
||||
string[] controlbindings = controlString.Split(',');
|
||||
foreach (string control in controlbindings)
|
||||
}
|
||||
|
||||
var controlbindings = controlString.Split(',');
|
||||
foreach (var control in controlbindings)
|
||||
{
|
||||
bindings[button].Add(control.Trim());
|
||||
}
|
||||
}
|
||||
|
||||
public void BindFloat(string button, Config.AnalogBind bind)
|
||||
|
@ -143,7 +153,6 @@ namespace BizHawk.Client.Common
|
|||
/// <summary>
|
||||
/// Returns a list of all keys mapped and the name of the button they are mapped to
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<KeyValuePair<string, string>> MappingList()
|
||||
{
|
||||
return (from key in bindings from binding in key.Value select new KeyValuePair<string, string>(binding, key.Key)).ToList();
|
||||
|
@ -201,7 +210,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public float GetFloat(string name) { throw new NotImplementedException(); }
|
||||
|
||||
//look for bindings which are activated by the supplied physical button.
|
||||
// look for bindings which are activated by the supplied physical button.
|
||||
public List<string> SearchBindings(string button)
|
||||
{
|
||||
return (from kvp in bindings from bound_button in kvp.Value where bound_button == button select kvp.Key).ToList();
|
||||
|
@ -218,7 +227,9 @@ namespace BizHawk.Client.Common
|
|||
foreach (var bound_button in kvp.Value)
|
||||
{
|
||||
if (buttons[kvp.Key] == false && controller[bound_button])
|
||||
{
|
||||
buttonStarts[kvp.Key] = Global.Emulator.Frame;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -241,13 +252,10 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public void OR_FromLogical(IController controller)
|
||||
{
|
||||
foreach (string button in type.BoolButtons)
|
||||
foreach (var button in type.BoolButtons.Where(controller.IsPressed))
|
||||
{
|
||||
if (controller.IsPressed(button))
|
||||
{
|
||||
buttons[button] = true;
|
||||
Console.WriteLine(button);
|
||||
}
|
||||
buttons[button] = true;
|
||||
Console.WriteLine(button);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -260,8 +268,8 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
if (!String.IsNullOrEmpty(controlString))
|
||||
{
|
||||
string[] controlbindings = controlString.Split(',');
|
||||
foreach (string control in controlbindings)
|
||||
var controlbindings = controlString.Split(',');
|
||||
foreach (var control in controlbindings)
|
||||
{
|
||||
bindings[button].Add(control.Trim());
|
||||
}
|
||||
|
@ -270,7 +278,10 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void IncrementStarts()
|
||||
{
|
||||
foreach (var key in buttonStarts.Keys.ToArray()) buttonStarts[key]++;
|
||||
foreach (var key in buttonStarts.Keys.ToArray())
|
||||
{
|
||||
buttonStarts[key]++;
|
||||
}
|
||||
}
|
||||
|
||||
public List<string> PressedButtons
|
||||
|
|
|
@ -12,9 +12,9 @@ namespace BizHawk.Client.Common
|
|||
|
||||
Action<string> ShowWarning;
|
||||
|
||||
public CoreFileProvider(Action<string> ShowWarning)
|
||||
public CoreFileProvider(Action<string> showWarning)
|
||||
{
|
||||
this.ShowWarning = ShowWarning;
|
||||
ShowWarning = showWarning;
|
||||
}
|
||||
|
||||
public Stream OpenFirmware(string sysId, string key)
|
||||
|
@ -39,6 +39,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
|
||||
#region EmuLoadHelper api
|
||||
|
||||
void FirmwareWarn(string sysID, string firmwareID, bool required, string msg = null)
|
||||
{
|
||||
if (required)
|
||||
|
|
|
@ -7,27 +7,33 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public static class InputValidate
|
||||
{
|
||||
public static bool IsValidUnsignedNumber(string Str)
|
||||
public static bool IsValidUnsignedNumber(string str)
|
||||
{
|
||||
char[] input = (Str.ToCharArray());
|
||||
ASCIIEncoding AE = new ASCIIEncoding();
|
||||
var input = str.ToCharArray();
|
||||
var asciiEncoding = new ASCIIEncoding();
|
||||
|
||||
// Check each character in the new label to determine if it is a number.
|
||||
for (int x = 0; x < input.Length; x++)
|
||||
for (int i = 0; i < input.Length; i++)
|
||||
{
|
||||
// Encode the character from the character array to its ASCII code.
|
||||
byte[] bc = AE.GetBytes(input[x].ToString());
|
||||
var bc = asciiEncoding.GetBytes(input[i].ToString());
|
||||
|
||||
// Determine if the ASCII code is within the valid range of numerical values.
|
||||
if (bc[0] < 47 || bc[0] > 58)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsValidUnsignedNumber(char c)
|
||||
{
|
||||
if (c < 47 || c > 58)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -35,40 +41,50 @@ namespace BizHawk.Client.Common
|
|||
/// <summary>
|
||||
/// Validates all chars are 0-9 or a dash as the first value
|
||||
/// </summary>
|
||||
/// <param name="Str"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsValidSignedNumber(string Str)
|
||||
public static bool IsValidSignedNumber(string str)
|
||||
{
|
||||
char[] input = (Str.Trim().ToCharArray());
|
||||
ASCIIEncoding AE = new ASCIIEncoding();
|
||||
var input = str.Trim().ToCharArray();
|
||||
var asciiEncoding = new ASCIIEncoding();
|
||||
|
||||
// Check each character in the new label to determine if it is a number.
|
||||
for (int x = 0; x < input.Length; x++)
|
||||
for (int i = 0; i < input.Length; i++)
|
||||
{
|
||||
// Encode the character from the character array to its ASCII code.
|
||||
byte[] bc = AE.GetBytes(input[x].ToString());
|
||||
var bc = asciiEncoding.GetBytes(input[i].ToString());
|
||||
|
||||
// Determine if the ASCII code is within the valid range of numerical values.
|
||||
if (bc[0] > 58)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (bc[0] < 47)
|
||||
{
|
||||
if (bc[0] == 45 && x == 0)
|
||||
if (bc[0] == 45 && i == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsValidSignedNumber(char c)
|
||||
{
|
||||
if (c == 45) return true;
|
||||
if (c == 45)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (c < 47 || c > 58)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -76,147 +92,174 @@ namespace BizHawk.Client.Common
|
|||
/// <summary>
|
||||
/// validates is a Hex number 0-9, A-F (must be capital letters)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool IsValidHexNumber(string Str)
|
||||
public static bool IsValidHexNumber(string str)
|
||||
{
|
||||
char[] input = (Str.ToCharArray());
|
||||
ASCIIEncoding AE = new ASCIIEncoding();
|
||||
var input = str.ToCharArray();
|
||||
var asciiEncoding = new ASCIIEncoding();
|
||||
|
||||
// Check each character in the new label to determine if it is a number.
|
||||
for (int x = 0; x < input.Length; x++)
|
||||
for (int i = 0; i < input.Length; i++)
|
||||
{
|
||||
// Encode the character from the character array to its ASCII code.
|
||||
byte[] bc = AE.GetBytes(input[x].ToString());
|
||||
var bc = asciiEncoding.GetBytes(input[i].ToString());
|
||||
|
||||
// Determine if the ASCII code is within the valid range of numerical values.
|
||||
if (bc[0] < 47) //0
|
||||
return false;
|
||||
if (bc[0] > 58) //9
|
||||
if (bc[0] < 47) // 0
|
||||
{
|
||||
if (bc[0] < 65) //A
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (bc[0] > 70) //F
|
||||
if (bc[0] > 58) // 9
|
||||
{
|
||||
if (bc[0] < 65) // A
|
||||
{
|
||||
if (bc[0] < 97 || bc[0] > 102) //a-f
|
||||
return false;
|
||||
}
|
||||
|
||||
if (bc[0] > 70) // F
|
||||
{
|
||||
if (bc[0] < 97 || bc[0] > 102) // a-f
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsValidHexNumber(char c)
|
||||
{
|
||||
if (c < 47) return false; //0
|
||||
|
||||
if (c > 58) //9
|
||||
if (c < 47)
|
||||
{
|
||||
if (c < 65) //A
|
||||
return false;
|
||||
return false; // 0
|
||||
}
|
||||
|
||||
if (c > 70) //F
|
||||
if (c > 58) // 9
|
||||
{
|
||||
if (c < 65) // A
|
||||
{
|
||||
if (c < 97 || c > 102) //a-f
|
||||
return false;
|
||||
}
|
||||
|
||||
if (c > 70) // F
|
||||
{
|
||||
if (c < 97 || c > 102) // a-f
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Takes any string and removes any value that is not a valid hex value (0-9, a-f, A-F), returns the remaining characters in uppercase
|
||||
/// </summary>
|
||||
/// <param name="raw"></param>
|
||||
/// <returns></returns>
|
||||
public static string DoHexString(string raw)
|
||||
{
|
||||
raw = raw.ToUpper();
|
||||
StringBuilder output = new StringBuilder();
|
||||
foreach (char x in raw)
|
||||
var output = new StringBuilder();
|
||||
foreach (var chr in raw)
|
||||
{
|
||||
if (x >= 'A' && x <= 'F')
|
||||
if (chr >= 'A' && chr <= 'F')
|
||||
{
|
||||
output.Append(x);
|
||||
output.Append(chr);
|
||||
}
|
||||
else if (x >= '0' && x <= '9')
|
||||
else if (chr >= '0' && chr <= '9')
|
||||
{
|
||||
output.Append(x);
|
||||
output.Append(chr);
|
||||
}
|
||||
}
|
||||
|
||||
return output.ToString();
|
||||
}
|
||||
|
||||
|
||||
public static bool IsValidBinaryNumber(string s)
|
||||
public static bool IsValidBinaryNumber(string str)
|
||||
{
|
||||
char[] input = (s.ToCharArray());
|
||||
ASCIIEncoding AE = new ASCIIEncoding();
|
||||
var input = str.ToCharArray();
|
||||
var asciiEncoding = new ASCIIEncoding();
|
||||
|
||||
// Check each character in the new label to determine if it is a number.
|
||||
for (int x = 0; x < input.Length; x++)
|
||||
for (int i = 0; i < input.Length; i++)
|
||||
{
|
||||
// Encode the character from the character array to its ASCII code.
|
||||
byte[] bc = AE.GetBytes(input[x].ToString());
|
||||
var bc = asciiEncoding.GetBytes(input[i].ToString());
|
||||
|
||||
// Determine if the ASCII code is within the valid range of numerical values.
|
||||
if (bc[0] != 48 && bc[0] != 49) //0 or 1
|
||||
if (bc[0] != 48 && bc[0] != 49) // 0 or 1
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsValidBinaryNumber(char c)
|
||||
{
|
||||
return (c == 48 || c == 49);
|
||||
return c == 48 || c == 49;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validates all chars are 0-9 or decimal
|
||||
/// </summary>
|
||||
/// <param name="Str"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsValidFixedPointNumber(string Str)
|
||||
public static bool IsValidFixedPointNumber(string str)
|
||||
{
|
||||
if (StringHelpers.HowMany(Str, '.') > 1)
|
||||
if (StringHelpers.HowMany(str, '.') > 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
char[] input = (Str.Trim().ToCharArray());
|
||||
ASCIIEncoding AE = new ASCIIEncoding();
|
||||
var input = str.Trim().ToCharArray();
|
||||
var asciiEncoding = new ASCIIEncoding();
|
||||
|
||||
// Check each character in the new label to determine if it is a number.
|
||||
|
||||
for (int x = 0; x < input.Length; x++)
|
||||
for (int i = 0; i < input.Length; i++)
|
||||
{
|
||||
// Encode the character from the character array to its ASCII code.
|
||||
byte[] bc = AE.GetBytes(input[x].ToString());
|
||||
var bc = asciiEncoding.GetBytes(input[i].ToString());
|
||||
|
||||
// Determine if the ASCII code is within the valid range of numerical values.
|
||||
if (bc[0] > 58)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (bc[0] == 46)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (bc[0] < 48)
|
||||
{
|
||||
if (bc[0] == 45 && x == 0)
|
||||
if (bc[0] == 45 && i == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsValidFixedPointNumber(char c)
|
||||
{
|
||||
if (c == 46 || c == 45) return true;
|
||||
if (c == 46 || c == 45)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (c < 48 || c > 58)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -224,45 +267,52 @@ namespace BizHawk.Client.Common
|
|||
/// <summary>
|
||||
/// Validates all chars are 0-9 or decimal or dash as the first character
|
||||
/// </summary>
|
||||
/// <param name="Str"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsValidDecimalNumber(string Str)
|
||||
public static bool IsValidDecimalNumber(string str)
|
||||
{
|
||||
if (StringHelpers.HowMany(Str, '.') > 1)
|
||||
if (StringHelpers.HowMany(str, '.') > 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
char[] input = (Str.Trim().ToCharArray());
|
||||
ASCIIEncoding AE = new ASCIIEncoding();
|
||||
var input = str.Trim().ToCharArray();
|
||||
var asciiEncoding = new ASCIIEncoding();
|
||||
|
||||
// Check each character in the new label to determine if it is a number.
|
||||
for (int x = 0; x < input.Length; x++)
|
||||
for (int i = 0; i < input.Length; i++)
|
||||
{
|
||||
// Encode the character from the character array to its ASCII code.
|
||||
byte[] bc = AE.GetBytes(input[x].ToString());
|
||||
var bc = asciiEncoding.GetBytes(input[i].ToString());
|
||||
|
||||
// Determine if the ASCII code is within the valid range of numerical values.
|
||||
if (bc[0] > 58)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (bc[0] == 46)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (bc[0] < 48)
|
||||
{
|
||||
if (bc[0] == 45 && x == 0)
|
||||
if (bc[0] == 45 && i == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsValidDecimalNumber(char c)
|
||||
{
|
||||
if (c == 45 || c == 46) //45 = dash, 46 = dot
|
||||
if (c == 45 || c == 46) // 45 = dash, 46 = dot
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -7,40 +7,45 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
public static int HowMany(string str, char c)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(str))
|
||||
{
|
||||
return str.Count(t => t == c);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return !String.IsNullOrEmpty(str) ? str.Count(t => t == c) : 0;
|
||||
}
|
||||
|
||||
public static int HowMany(string str, string s)
|
||||
{
|
||||
int count = 0;
|
||||
for (int x = 0; x < (str.Length - s.Length); x++)
|
||||
var count = 0;
|
||||
for (int i = 0; i < (str.Length - s.Length); i++)
|
||||
{
|
||||
if (str.Substring(x, s.Length) == s)
|
||||
if (str.Substring(i, s.Length) == s)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: put it in its own file
|
||||
public static class IntHelpers //TODO: a less lame name
|
||||
// TODO: put it in its own file
|
||||
public static class IntHelpers // TODO: a less lame name
|
||||
{
|
||||
public static int GetNumDigits(Int32 i)
|
||||
{
|
||||
//if (i == 0) return 0;
|
||||
//if (i < 0x10) return 1;
|
||||
if (i < 0x100) return 2;
|
||||
//if (i < 0x1000) return 3; //adelikat: let's only do even numbers
|
||||
if (i < 0x10000) return 4;
|
||||
if (i < 0x1000000) return 6;
|
||||
else return 8;
|
||||
if (i < 0x100)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
else if (i < 0x10000)
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
else if (i < 0x1000000)
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
public static uint MaxHexValueFromMaxDigits(Int32 i)
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
using System;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public class BitLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
|
||||
using LuaInterface;
|
||||
using BizHawk.Emulation.Cores.Nintendo.NES;
|
||||
using BizHawk.Emulation.Cores.PCEngine;
|
||||
using BizHawk.Emulation.Cores.Sega.MasterSystem;
|
||||
using BizHawk.Emulation.Cores.Nintendo.NES;
|
||||
|
||||
using LuaInterface;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public partial class EmulatorLuaLibrary : LuaLibraryBase
|
||||
public class EmulatorLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public EmulatorLuaLibrary(Lua lua, Action frameAdvanceCallback, Action yieldCallback)
|
||||
: base()
|
||||
{
|
||||
_lua = lua;
|
||||
_frameAdvanceCallback = frameAdvanceCallback;
|
||||
|
@ -41,9 +41,9 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
private Lua _lua;
|
||||
private Action _frameAdvanceCallback;
|
||||
private Action _yieldCallback;
|
||||
private readonly Lua _lua;
|
||||
private readonly Action _frameAdvanceCallback;
|
||||
private readonly Action _yieldCallback;
|
||||
|
||||
private static void emu_setrenderplanes_do(object[] lua_p)
|
||||
{
|
||||
|
@ -51,14 +51,14 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
// in the future, we could do something more arbitrary here.
|
||||
// but this isn't any worse than the old system
|
||||
NES.NESSettings s = (NES.NESSettings)Global.Emulator.GetSettings();
|
||||
var s = (NES.NESSettings)Global.Emulator.GetSettings();
|
||||
s.DispSprites = (bool)lua_p[0];
|
||||
s.DispBackground = (bool)lua_p[1];
|
||||
Global.Emulator.PutSettings(s);
|
||||
}
|
||||
else if (Global.Emulator is PCEngine)
|
||||
{
|
||||
PCEngine.PCESettings s = (PCEngine.PCESettings)Global.Emulator.GetSettings();
|
||||
var s = (PCEngine.PCESettings)Global.Emulator.GetSettings();
|
||||
s.ShowOBJ1 = (bool)lua_p[0];
|
||||
s.ShowBG1 = (bool)lua_p[1];
|
||||
if (lua_p.Length > 2)
|
||||
|
@ -66,11 +66,12 @@ namespace BizHawk.Client.Common
|
|||
s.ShowOBJ2 = (bool)lua_p[2];
|
||||
s.ShowBG2 = (bool)lua_p[3];
|
||||
}
|
||||
|
||||
Global.Emulator.PutSettings(s);
|
||||
}
|
||||
else if (Global.Emulator is SMS)
|
||||
{
|
||||
SMS.SMSSettings s = (SMS.SMSSettings)Global.Emulator.GetSettings();
|
||||
var s = (SMS.SMSSettings)Global.Emulator.GetSettings();
|
||||
s.DispOBJ = (bool)lua_p[0];
|
||||
s.DispBG = (bool)lua_p[1];
|
||||
Global.Emulator.PutSettings(s);
|
||||
|
@ -79,7 +80,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static void emu_displayvsync(object boolean)
|
||||
{
|
||||
string temp = boolean.ToString();
|
||||
var temp = boolean.ToString();
|
||||
if (!String.IsNullOrWhiteSpace(temp))
|
||||
{
|
||||
if (temp == "0" || temp.ToLower() == "false")
|
||||
|
@ -110,11 +111,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public LuaTable emu_getregisters()
|
||||
{
|
||||
LuaTable table = _lua.NewTable();
|
||||
var table = _lua.NewTable();
|
||||
foreach (var kvp in Global.Emulator.GetCpuFlagsAndRegisters())
|
||||
{
|
||||
table[kvp.Key] = kvp.Value;
|
||||
}
|
||||
|
||||
return table;
|
||||
}
|
||||
|
||||
|
@ -135,7 +137,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static void emu_limitframerate(object boolean)
|
||||
{
|
||||
string temp = boolean.ToString();
|
||||
var temp = boolean.ToString();
|
||||
if (!String.IsNullOrWhiteSpace(temp))
|
||||
{
|
||||
if (temp == "0" || temp.ToLower() == "false")
|
||||
|
@ -151,7 +153,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static void emu_minimizeframeskip(object boolean)
|
||||
{
|
||||
string temp = boolean.ToString();
|
||||
var temp = boolean.ToString();
|
||||
if (!String.IsNullOrWhiteSpace(temp))
|
||||
{
|
||||
if (temp == "0" || temp.ToLower() == "false")
|
||||
|
@ -166,8 +168,11 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
|
||||
public static void emu_setrenderplanes( // For now, it accepts arguments up to 5.
|
||||
object lua_p0, object lua_p1 = null, object lua_p2 = null,
|
||||
object lua_p3 = null, object lua_p4 = null)
|
||||
object lua_p0,
|
||||
object lua_p1 = null,
|
||||
object lua_p2 = null,
|
||||
object lua_p3 = null,
|
||||
object lua_p4 = null)
|
||||
{
|
||||
emu_setrenderplanes_do(LuaVarArgs(lua_p0, lua_p1, lua_p2, lua_p3, lua_p4));
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
|
||||
using LuaInterface;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
|
@ -32,8 +33,8 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
public Action<string> LogOutputCallback = null;
|
||||
public Lua CurrentThread;
|
||||
public Action<string> LogOutputCallback { get; set; }
|
||||
public Lua CurrentThread { get; set; }
|
||||
|
||||
#region Events Library Helpers
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ namespace BizHawk.Client.Common
|
|||
public class JoypadLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public JoypadLuaLibrary(Lua lua)
|
||||
: base()
|
||||
{
|
||||
_lua = lua;
|
||||
}
|
||||
|
@ -26,30 +25,30 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
private Lua _lua;
|
||||
private readonly Lua _lua;
|
||||
|
||||
public LuaTable joypad_get(object controller = null)
|
||||
{
|
||||
LuaTable buttons = _lua.NewTable();
|
||||
foreach (string button in Global.ControllerOutput.Source.Type.BoolButtons)
|
||||
var buttons = _lua.NewTable();
|
||||
foreach (var button in Global.ControllerOutput.Source.Type.BoolButtons)
|
||||
{
|
||||
if (controller == null)
|
||||
{
|
||||
buttons[button] = Global.ControllerOutput[button];
|
||||
}
|
||||
else if (button.Length >= 3 && button.Substring(0, 2) == "P" + LuaInt(controller).ToString())
|
||||
else if (button.Length >= 3 && button.Substring(0, 2) == "P" + LuaInt(controller))
|
||||
{
|
||||
buttons[button.Substring(3)] = Global.ControllerOutput["P" + LuaInt(controller) + " " + button.Substring(3)];
|
||||
}
|
||||
}
|
||||
|
||||
foreach (string button in Global.ControllerOutput.Source.Type.FloatControls)
|
||||
foreach (var button in Global.ControllerOutput.Source.Type.FloatControls)
|
||||
{
|
||||
if (controller == null)
|
||||
{
|
||||
buttons[button] = Global.ControllerOutput.GetFloat(button);
|
||||
}
|
||||
else if (button.Length >= 3 && button.Substring(0, 2) == "P" + LuaInt(controller).ToString())
|
||||
else if (button.Length >= 3 && button.Substring(0, 2) == "P" + LuaInt(controller))
|
||||
{
|
||||
buttons[button.Substring(3)] = Global.ControllerOutput.GetFloat("P" + LuaInt(controller) + " " + button.Substring(3));
|
||||
}
|
||||
|
@ -64,11 +63,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public LuaTable joypad_getimmediate()
|
||||
{
|
||||
LuaTable buttons = _lua.NewTable();
|
||||
foreach (string button in Global.ActiveController.Type.BoolButtons)
|
||||
var buttons = _lua.NewTable();
|
||||
foreach (var button in Global.ActiveController.Type.BoolButtons)
|
||||
{
|
||||
buttons[button] = Global.ActiveController[button];
|
||||
}
|
||||
|
||||
return buttons;
|
||||
}
|
||||
|
||||
|
@ -78,9 +78,9 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
foreach (var button in buttons.Keys)
|
||||
{
|
||||
bool invert = false;
|
||||
var invert = false;
|
||||
bool? theValue;
|
||||
string theValueStr = buttons[button].ToString();
|
||||
var theValueStr = buttons[button].ToString();
|
||||
|
||||
if (!String.IsNullOrWhiteSpace(theValueStr))
|
||||
{
|
||||
|
@ -108,7 +108,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
if (theValue == true)
|
||||
{
|
||||
if (controller == null) //Force On
|
||||
if (controller == null) // Force On
|
||||
{
|
||||
Global.ClickyVirtualPadController.Click(button.ToString());
|
||||
Global.ForceOffAdaptor.SetSticky(button.ToString(), false);
|
||||
|
@ -119,7 +119,7 @@ namespace BizHawk.Client.Common
|
|||
Global.ForceOffAdaptor.SetSticky("P" + controller + " " + button, false);
|
||||
}
|
||||
}
|
||||
else if (theValue == false) //Force off
|
||||
else if (theValue == false) // Force off
|
||||
{
|
||||
if (controller == null)
|
||||
{
|
||||
|
@ -132,7 +132,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
else
|
||||
{
|
||||
//Turn everything off
|
||||
// Turn everything off
|
||||
if (controller == null)
|
||||
{
|
||||
Global.ForceOffAdaptor.SetSticky(button.ToString(), false);
|
||||
|
@ -143,7 +143,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
}
|
||||
else //Inverse
|
||||
else // Inverse
|
||||
{
|
||||
if (controller == null)
|
||||
{
|
||||
|
@ -158,7 +158,10 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
}
|
||||
catch { /*Eat it*/ }
|
||||
catch
|
||||
{
|
||||
/*Eat it*/
|
||||
}
|
||||
}
|
||||
|
||||
public void joypad_setanalog(LuaTable controls, object controller = null)
|
||||
|
@ -167,13 +170,13 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
foreach (var name in controls.Keys)
|
||||
{
|
||||
string theValueStr = controls[name].ToString();
|
||||
var theValueStr = controls[name].ToString();
|
||||
|
||||
if (!String.IsNullOrWhiteSpace(theValueStr))
|
||||
{
|
||||
try
|
||||
{
|
||||
float theValue = float.Parse(theValueStr);
|
||||
var theValue = float.Parse(theValueStr);
|
||||
if (controller == null)
|
||||
{
|
||||
Global.StickyXORAdapter.SetFloat(name.ToString(), theValue);
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
using System;
|
||||
|
||||
using LuaInterface;
|
||||
using BizHawk.Emulation.Common;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
//TODO: this needs a major refactor, as well as MemoryLuaLibrary, and this shoudl inherit memorylua library and extend it
|
||||
// TODO: this needs a major refactor, as well as MemoryLuaLibrary, and this shoudl inherit memorylua library and extend it
|
||||
public class MainMemoryLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public MainMemoryLuaLibrary(Lua lua)
|
||||
: base()
|
||||
{
|
||||
_lua = lua;
|
||||
}
|
||||
|
@ -56,12 +54,12 @@ namespace BizHawk.Client.Common
|
|||
"write_s32_be",
|
||||
"write_u16_be",
|
||||
"write_u24_be",
|
||||
"write_u32_be",
|
||||
"write_u32_be"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private Lua _lua;
|
||||
private readonly Lua _lua;
|
||||
|
||||
#region Main Memory Library Helpers
|
||||
|
||||
|
@ -82,7 +80,10 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
uint v = 0;
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
v |= MM_R_U8(addr + i) << 8 * i;
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
@ -95,7 +96,10 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
uint v = 0;
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
v |= MM_R_U8(addr + i) << 8 * (size - 1 - i);
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
@ -107,7 +111,9 @@ namespace BizHawk.Client.Common
|
|||
private void MM_W_U_LE(int addr, uint v, int size)
|
||||
{
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
MM_W_U8(addr + i, (v >> (8 * i)) & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
private void MM_W_S_BE(int addr, int v, int size)
|
||||
|
@ -118,7 +124,9 @@ namespace BizHawk.Client.Common
|
|||
private void MM_W_U_BE(int addr, uint v, int size)
|
||||
{
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
MM_W_U8(addr + i, (v >> (8 * (size - 1 - i))) & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
private uint MM_R_U8(int addr)
|
||||
|
@ -149,12 +157,12 @@ namespace BizHawk.Client.Common
|
|||
int l = LuaInt(length);
|
||||
int addr = LuaInt(address);
|
||||
int last_addr = l + addr;
|
||||
LuaTable table = _lua.NewTable();
|
||||
var table = _lua.NewTable();
|
||||
for (int i = addr; i <= last_addr; i++)
|
||||
{
|
||||
string a = String.Format("{0:X2}", i);
|
||||
byte v = Global.Emulator.MemoryDomains.MainMemory.PeekByte(i);
|
||||
string vs = String.Format("{0:X2}", (int)v);
|
||||
var a = String.Format("{0:X2}", i);
|
||||
var v = Global.Emulator.MemoryDomains.MainMemory.PeekByte(i);
|
||||
var vs = String.Format("{0:X2}", (int)v);
|
||||
table[a] = vs;
|
||||
}
|
||||
return table;
|
||||
|
@ -162,18 +170,18 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public float mainmemory_readfloat(object lua_addr, bool bigendian)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
uint val = Global.Emulator.MemoryDomains.MainMemory.PeekDWord(addr, bigendian);
|
||||
|
||||
byte[] bytes = BitConverter.GetBytes(val);
|
||||
float _float = BitConverter.ToSingle(bytes, 0);
|
||||
var bytes = BitConverter.GetBytes(val);
|
||||
var _float = BitConverter.ToSingle(bytes, 0);
|
||||
return _float;
|
||||
}
|
||||
|
||||
public void mainmemory_writebyte(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U8(addr, v);
|
||||
}
|
||||
|
||||
|
@ -190,9 +198,9 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void mainmemory_writefloat(object lua_addr, object lua_v, bool bigendian)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
float dv = (float)(double)lua_v;
|
||||
byte[] bytes = BitConverter.GetBytes(dv);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var dv = (float)(double)lua_v;
|
||||
var bytes = BitConverter.GetBytes(dv);
|
||||
uint v = BitConverter.ToUInt32(bytes, 0);
|
||||
Global.Emulator.MemoryDomains.MainMemory.PokeDWord(addr, v, bigendian);
|
||||
}
|
||||
|
@ -200,183 +208,183 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public int mainmemory_read_s8(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return (sbyte)MM_R_U8(addr);
|
||||
}
|
||||
|
||||
public uint mainmemory_read_u8(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_U8(addr);
|
||||
}
|
||||
|
||||
public int mainmemory_read_s16_le(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_S_LE(addr, 2);
|
||||
}
|
||||
|
||||
public int mainmemory_read_s24_le(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_S_LE(addr, 3);
|
||||
}
|
||||
|
||||
public int mainmemory_read_s32_le(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_S_LE(addr, 4);
|
||||
}
|
||||
|
||||
public uint mainmemory_read_u16_le(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_U_LE(addr, 2);
|
||||
}
|
||||
|
||||
public uint mainmemory_read_u24_le(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_U_LE(addr, 3);
|
||||
}
|
||||
|
||||
public uint mainmemory_read_u32_le(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_U_LE(addr, 4);
|
||||
}
|
||||
|
||||
public int mainmemory_read_s16_be(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_S_BE(addr, 2);
|
||||
}
|
||||
|
||||
public int mainmemory_read_s24_be(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_S_BE(addr, 3);
|
||||
}
|
||||
|
||||
public int mainmemory_read_s32_be(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_S_BE(addr, 4);
|
||||
}
|
||||
|
||||
public uint mainmemory_read_u16_be(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_U_BE(addr, 2);
|
||||
}
|
||||
|
||||
public uint mainmemory_read_u24_be(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_U_BE(addr, 3);
|
||||
}
|
||||
|
||||
public uint mainmemory_read_u32_be(object lua_addr)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
var addr = LuaInt(lua_addr);
|
||||
return MM_R_U_BE(addr, 4);
|
||||
}
|
||||
|
||||
public void mainmemory_write_s8(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
int v = LuaInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaInt(lua_v);
|
||||
MM_W_U8(addr, (uint)v);
|
||||
}
|
||||
|
||||
public void mainmemory_write_u8(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U8(addr, v);
|
||||
}
|
||||
|
||||
public void mainmemory_write_s16_le(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
int v = LuaInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaInt(lua_v);
|
||||
MM_W_S_LE(addr, v, 2);
|
||||
}
|
||||
|
||||
public void mainmemory_write_s24_le(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
int v = LuaInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaInt(lua_v);
|
||||
MM_W_S_LE(addr, v, 3);
|
||||
}
|
||||
|
||||
public void mainmemory_write_s32_le(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
int v = LuaInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaInt(lua_v);
|
||||
MM_W_S_LE(addr, v, 4);
|
||||
}
|
||||
|
||||
public void mainmemory_write_u16_le(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U_LE(addr, v, 2);
|
||||
}
|
||||
|
||||
public void mainmemory_write_u24_le(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U_LE(addr, v, 3);
|
||||
}
|
||||
|
||||
public void mainmemory_write_u32_le(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U_LE(addr, v, 4);
|
||||
}
|
||||
|
||||
public void mainmemory_write_s16_be(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
int v = LuaInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaInt(lua_v);
|
||||
MM_W_S_BE(addr, v, 2);
|
||||
}
|
||||
|
||||
public void mainmemory_write_s24_be(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
int v = LuaInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaInt(lua_v);
|
||||
MM_W_S_BE(addr, v, 3);
|
||||
}
|
||||
|
||||
public void mainmemory_write_s32_be(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
int v = LuaInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaInt(lua_v);
|
||||
MM_W_S_BE(addr, v, 4);
|
||||
}
|
||||
|
||||
public void mainmemory_write_u16_be(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U_BE(addr, v, 2);
|
||||
}
|
||||
|
||||
public void mainmemory_write_u24_be(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U_BE(addr, v, 3);
|
||||
}
|
||||
|
||||
public void mainmemory_write_u32_be(object lua_addr, object lua_v)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint v = LuaUInt(lua_v);
|
||||
var addr = LuaInt(lua_addr);
|
||||
var v = LuaUInt(lua_v);
|
||||
MM_W_U_BE(addr, v, 4);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
|
||||
using BizHawk.Emulation.Common;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public class MemoryLuaLibrary : LuaLibraryBase
|
||||
|
@ -50,12 +48,12 @@ namespace BizHawk.Client.Common
|
|||
"write_s32_be",
|
||||
"write_u16_be",
|
||||
"write_u24_be",
|
||||
"write_u32_be",
|
||||
"write_u32_be"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private int _current_memory_domain; //Main memory by default
|
||||
private int _currentMemoryDomain; // Main memory by default
|
||||
|
||||
#region Memory Library Helpers
|
||||
|
||||
|
@ -121,12 +119,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
private uint M_R_U8(int addr)
|
||||
{
|
||||
return Global.Emulator.MemoryDomains[_current_memory_domain].PeekByte(addr);
|
||||
return Global.Emulator.MemoryDomains[_currentMemoryDomain].PeekByte(addr);
|
||||
}
|
||||
|
||||
private void M_W_U8(int addr, uint v)
|
||||
{
|
||||
Global.Emulator.MemoryDomains[_current_memory_domain].PokeByte(addr, (byte)v);
|
||||
Global.Emulator.MemoryDomains[_currentMemoryDomain].PokeByte(addr, (byte)v);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -138,12 +136,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public string memory_getcurrentmemorydomain()
|
||||
{
|
||||
return Global.Emulator.MemoryDomains[_current_memory_domain].Name;
|
||||
return Global.Emulator.MemoryDomains[_currentMemoryDomain].Name;
|
||||
}
|
||||
|
||||
public int memory_getcurrentmemorydomainsize()
|
||||
{
|
||||
return Global.Emulator.MemoryDomains[_current_memory_domain].Size;
|
||||
return Global.Emulator.MemoryDomains[_currentMemoryDomain].Size;
|
||||
}
|
||||
|
||||
public uint memory_readbyte(object lua_addr)
|
||||
|
@ -155,7 +153,7 @@ namespace BizHawk.Client.Common
|
|||
public float memory_readfloat(object lua_addr, bool bigendian)
|
||||
{
|
||||
int addr = LuaInt(lua_addr);
|
||||
uint val = Global.Emulator.MemoryDomains[_current_memory_domain].PeekDWord(addr, bigendian);
|
||||
uint val = Global.Emulator.MemoryDomains[_currentMemoryDomain].PeekDWord(addr, bigendian);
|
||||
|
||||
byte[] bytes = BitConverter.GetBytes(val);
|
||||
float _float = BitConverter.ToSingle(bytes, 0);
|
||||
|
@ -175,7 +173,7 @@ namespace BizHawk.Client.Common
|
|||
float dv = (float)(double)lua_v;
|
||||
byte[] bytes = BitConverter.GetBytes(dv);
|
||||
uint v = BitConverter.ToUInt32(bytes, 0);
|
||||
Global.Emulator.MemoryDomains[_current_memory_domain].PokeDWord(addr, v, bigendian);
|
||||
Global.Emulator.MemoryDomains[_currentMemoryDomain].PokeDWord(addr, v, bigendian);
|
||||
}
|
||||
|
||||
public bool memory_usememorydomain(object lua_input)
|
||||
|
@ -187,7 +185,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
if (Global.Emulator.MemoryDomains[x].Name == lua_input.ToString())
|
||||
{
|
||||
_current_memory_domain = x;
|
||||
_currentMemoryDomain = x;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ namespace BizHawk.Client.Common
|
|||
public class MovieLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public MovieLuaLibrary(Lua lua)
|
||||
: base()
|
||||
{
|
||||
_lua = lua;
|
||||
}
|
||||
|
@ -27,12 +26,12 @@ namespace BizHawk.Client.Common
|
|||
"rerecordcount",
|
||||
"setreadonly",
|
||||
"setrerecordcounting",
|
||||
"stop",
|
||||
"stop"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private Lua _lua;
|
||||
private readonly Lua _lua;
|
||||
|
||||
public static string movie_filename()
|
||||
{
|
||||
|
@ -41,14 +40,14 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public LuaTable movie_getinput(object frame)
|
||||
{
|
||||
LuaTable input = _lua.NewTable();
|
||||
var input = _lua.NewTable();
|
||||
|
||||
MovieControllerAdapter m = new MovieControllerAdapter { Type = Global.MovieSession.MovieControllerAdapter.Type };
|
||||
var m = new MovieControllerAdapter { Type = Global.MovieSession.MovieControllerAdapter.Type };
|
||||
m.SetControllersAsMnemonic(
|
||||
Global.MovieSession.Movie.GetInput(LuaInt(frame))
|
||||
);
|
||||
|
||||
foreach (string button in m.Type.BoolButtons)
|
||||
foreach (var button in m.Type.BoolButtons)
|
||||
{
|
||||
input[button] = m[button];
|
||||
}
|
||||
|
@ -103,14 +102,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static void movie_setreadonly(object lua_input)
|
||||
{
|
||||
Global.MovieSession.ReadOnly = (lua_input.ToString().ToUpper() == "TRUE"
|
||||
|| lua_input.ToString() == "1");
|
||||
Global.MovieSession.ReadOnly = lua_input.ToString().ToUpper() == "TRUE" || lua_input.ToString() == "1";
|
||||
}
|
||||
|
||||
public static void movie_setrerecordcounting(object lua_input)
|
||||
{
|
||||
Global.MovieSession.Movie.IsCountingRerecords
|
||||
= (lua_input.ToString().ToUpper() == "TRUE" || lua_input.ToString() == "1");
|
||||
Global.MovieSession.Movie.IsCountingRerecords = lua_input.ToString().ToUpper() == "TRUE" || lua_input.ToString() == "1";
|
||||
}
|
||||
|
||||
public static void movie_stop()
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using BizHawk.Emulation.Cores.Nintendo.NES;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
|
@ -35,7 +34,7 @@ namespace BizHawk.Client.Common
|
|||
if (Global.Emulator is NES)
|
||||
{
|
||||
var decoder = new NESGameGenieDecoder(code);
|
||||
Watch watch = Watch.GenerateWatch(
|
||||
var watch = Watch.GenerateWatch(
|
||||
Global.Emulator.MemoryDomains[1],
|
||||
decoder.Address,
|
||||
Watch.WatchSize.Byte,
|
||||
|
@ -54,7 +53,6 @@ namespace BizHawk.Client.Common
|
|||
// these methods are awkward. perhaps with the new core config system, one could
|
||||
// automatically bring out all of the settings to a lua table, with names. that
|
||||
// would be completely arbitrary and would remove the whole requirement for this mess
|
||||
|
||||
public static bool nes_getallowmorethaneightsprites()
|
||||
{
|
||||
return ((NES.NESSettings)Global.Emulator.GetSettings()).AllowMoreThanEightSprites;
|
||||
|
@ -155,8 +153,8 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
if (Global.Emulator is NES)
|
||||
{
|
||||
int first = LuaInt(top);
|
||||
int last = LuaInt(bottom);
|
||||
var first = LuaInt(top);
|
||||
var last = LuaInt(bottom);
|
||||
if (first > 127)
|
||||
{
|
||||
first = 127;
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace BizHawk.Client.Common
|
|||
"setlayer_obj_1",
|
||||
"setlayer_obj_2",
|
||||
"setlayer_obj_3",
|
||||
"setlayer_obj_4",
|
||||
"setlayer_obj_4"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public interface ILuaDocumentation
|
||||
|
@ -17,7 +16,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void Add(string method_lib, string method_name, System.Reflection.MethodInfo method)
|
||||
{
|
||||
LibraryFunction f = new LibraryFunction(method_lib, method_name, method);
|
||||
var f = new LibraryFunction(method_lib, method_name, method);
|
||||
FunctionList.Add(f);
|
||||
}
|
||||
|
||||
|
@ -33,8 +32,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public List<string> GetLibraryList()
|
||||
{
|
||||
HashSet<string> libs = new HashSet<string>();
|
||||
foreach (LibraryFunction function in FunctionList)
|
||||
var libs = new HashSet<string>();
|
||||
foreach (var function in FunctionList)
|
||||
{
|
||||
libs.Add(function.Library);
|
||||
}
|
||||
|
@ -53,11 +52,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
Library = method_lib;
|
||||
Name = method_name;
|
||||
System.Reflection.ParameterInfo[] info = method.GetParameters();
|
||||
foreach (System.Reflection.ParameterInfo p in info)
|
||||
var info = method.GetParameters();
|
||||
foreach (var p in info)
|
||||
{
|
||||
Parameters.Add(p.ToString());
|
||||
}
|
||||
|
||||
return_type = method.ReturnType.ToString();
|
||||
}
|
||||
|
||||
|
@ -70,17 +70,18 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
StringBuilder list = new StringBuilder();
|
||||
var list = new StringBuilder();
|
||||
list.Append('(');
|
||||
for (int i = 0; i < Parameters.Count; i++)
|
||||
{
|
||||
string param = Parameters[i].Replace("System", "").Replace("Object", "").Replace(" ", "").Replace(".", "").Replace("LuaInterface", "");
|
||||
var param = Parameters[i].Replace("System", "").Replace("Object", "").Replace(" ", "").Replace(".", "").Replace("LuaInterface", "");
|
||||
list.Append(param);
|
||||
if (i < Parameters.Count - 1)
|
||||
{
|
||||
list.Append(',');
|
||||
}
|
||||
}
|
||||
|
||||
list.Append(')');
|
||||
return list.ToString();
|
||||
}
|
||||
|
|
|
@ -29,9 +29,12 @@ namespace BizHawk.Client.Common
|
|||
Path = path;
|
||||
IsSeparator = false;
|
||||
|
||||
//the current directory for the lua task will start off wherever the lua file is located
|
||||
// the current directory for the lua task will start off wherever the lua file is located
|
||||
var directory_info = new FileInfo(path).Directory;
|
||||
if (directory_info != null) CurrentDirectory = directory_info.FullName;
|
||||
if (directory_info != null)
|
||||
{
|
||||
CurrentDirectory = directory_info.FullName;
|
||||
}
|
||||
}
|
||||
|
||||
public LuaFile(bool isSeparator)
|
||||
|
|
|
@ -1,20 +1,19 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public class LuaFileList : List<LuaFile>
|
||||
{
|
||||
public LuaFileList() : base() { }
|
||||
internal LuaFileList() { }
|
||||
|
||||
private string _filename = String.Empty;
|
||||
private bool _changes;
|
||||
|
||||
public Action ChangedCallback;
|
||||
public Action LoadCallback;
|
||||
public Action ChangedCallback { get; set; }
|
||||
public Action LoadCallback { get; set; }
|
||||
|
||||
public void StopAllScripts()
|
||||
{
|
||||
|
@ -27,6 +26,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
return _changes;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_changes = value;
|
||||
|
@ -34,17 +34,23 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
ChangedCallback();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public string Filename
|
||||
{
|
||||
get { return _filename; }
|
||||
set { _filename = (value ?? String.Empty); }
|
||||
get
|
||||
{
|
||||
return _filename;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_filename = value ?? String.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
new public void Clear()
|
||||
public new void Clear()
|
||||
{
|
||||
StopAllScripts();
|
||||
_filename = String.Empty;
|
||||
|
@ -52,25 +58,25 @@ namespace BizHawk.Client.Common
|
|||
base.Clear();
|
||||
}
|
||||
|
||||
new public void Add(LuaFile item)
|
||||
public new void Add(LuaFile item)
|
||||
{
|
||||
Changes = true;
|
||||
base.Add(item);
|
||||
}
|
||||
|
||||
new public void Insert(int index, LuaFile item)
|
||||
public new void Insert(int index, LuaFile item)
|
||||
{
|
||||
Changes = true;
|
||||
base.Insert(index, item);
|
||||
}
|
||||
|
||||
new public bool Remove(LuaFile item)
|
||||
public new bool Remove(LuaFile item)
|
||||
{
|
||||
Changes = true;
|
||||
return base.Remove(item);
|
||||
}
|
||||
|
||||
new public int RemoveAll(Predicate<LuaFile> match)
|
||||
public new int RemoveAll(Predicate<LuaFile> match)
|
||||
{
|
||||
return base.RemoveAll(match);
|
||||
}
|
||||
|
@ -109,6 +115,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
LoadCallback();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
@ -138,6 +145,7 @@ namespace BizHawk.Client.Common
|
|||
.Append(file.Path)
|
||||
.AppendLine();
|
||||
}
|
||||
|
||||
sw.Write(sb.ToString());
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return this.FirstOrDefault(x => x.Guid.ToString() == guid) ?? null;
|
||||
return this.FirstOrDefault(x => x.Guid.ToString() == guid);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@ namespace BizHawk.Client.Common
|
|||
public virtual void LuaRegister(Lua lua, ILuaDocumentation docs = null)
|
||||
{
|
||||
lua.NewTable(Name);
|
||||
foreach (string methodName in Functions)
|
||||
foreach (var methodName in Functions)
|
||||
{
|
||||
string func = Name + "." + methodName;
|
||||
var func = Name + "." + methodName;
|
||||
var method = GetType().GetMethod(Name + "_" + methodName);
|
||||
lua.RegisterFunction(func, this, method);
|
||||
|
||||
|
@ -25,14 +25,14 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
protected static int LuaInt(object lua_arg)
|
||||
protected static int LuaInt(object luaArg)
|
||||
{
|
||||
return Convert.ToInt32((double)lua_arg);
|
||||
return Convert.ToInt32((double)luaArg);
|
||||
}
|
||||
|
||||
protected static uint LuaUInt(object lua_arg)
|
||||
protected static uint LuaUInt(object luaArg)
|
||||
{
|
||||
return Convert.ToUInt32((double)lua_arg);
|
||||
return Convert.ToUInt32((double)luaArg);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -40,16 +40,20 @@ namespace BizHawk.Client.Common
|
|||
/// So, if you want to support variable arguments, declare them as optional and pass
|
||||
/// them to this method.
|
||||
/// </summary>
|
||||
/// <param name="lua_args"></param>
|
||||
/// <returns></returns>
|
||||
protected static object[] LuaVarArgs(params object[] lua_args)
|
||||
protected static object[] LuaVarArgs(params object[] luaArgs)
|
||||
{
|
||||
int n = lua_args.Length;
|
||||
int n = luaArgs.Length;
|
||||
int trim = 0;
|
||||
for (int i = n - 1; i >= 0; --i)
|
||||
if (lua_args[i] == null) ++trim;
|
||||
object[] lua_result = new object[n - trim];
|
||||
Array.Copy(lua_args, lua_result, n - trim);
|
||||
{
|
||||
if (luaArgs[i] == null)
|
||||
{
|
||||
++trim;
|
||||
}
|
||||
}
|
||||
|
||||
var lua_result = new object[n - trim];
|
||||
Array.Copy(luaArgs, lua_result, n - trim);
|
||||
return lua_result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ namespace BizHawk.Client.Common
|
|||
private readonly string _name;
|
||||
private readonly string _event;
|
||||
private readonly Action _action;
|
||||
|
||||
public NamedLuaFunction(LuaFunction function, string theevent, Action<string> logCallback, Lua lua, string name = null)
|
||||
{
|
||||
_function = function;
|
||||
|
@ -32,7 +33,6 @@ namespace BizHawk.Client.Common
|
|||
ex.Message
|
||||
);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue