diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs
index 02b57b4fc2..0dee950912 100644
--- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs
+++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs
@@ -2,11 +2,10 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
+using System.IO;
using System.Linq;
using System.Windows.Forms;
-using System.IO;
-using BizHawk.Common;
using BizHawk.Client.Common;
using BizHawk.Emulation.Common;
@@ -14,16 +13,15 @@ namespace BizHawk.Client.EmuHawk
{
public partial class LuaConsole : Form, IToolForm
{
- //TODO:
- //remember column widths and restore column width on restore default settings
- //column click
- //column reorder
-
- public EmuLuaLibrary LuaImp;
+ // TODO:
+ // remember column widths and restore column width on restore default settings
+ // column click
+ // column reorder
+ public EmuLuaLibrary LuaImp { get; set; }
+ private readonly LuaFileList _luaList;
private int _defaultWidth;
private int _defaultHeight;
- private readonly LuaFileList _luaList;
public bool UpdateBefore { get { return true; } }
public void UpdateValues() { }
@@ -106,11 +104,17 @@ namespace BizHawk.Client.EmuHawk
luaFile.Enabled = false;
ConsoleLog(e.Message);
}
- else MessageBox.Show(e.ToString());
+ else
+ {
+ MessageBox.Show(e.ToString());
+ }
}
}
+ else
+ {
+ luaFile.Enabled = false;
+ }
- else luaFile.Enabled = false;
luaFile.Paused = false;
}
else
@@ -122,7 +126,6 @@ namespace BizHawk.Client.EmuHawk
}
RunLuaScripts();
-
}
UpdateDialog();
@@ -153,7 +156,10 @@ namespace BizHawk.Client.EmuHawk
file.Enabled = false;
ConsoleLog(e.Message);
}
- else MessageBox.Show(e.ToString());
+ else
+ {
+ MessageBox.Show(e.ToString());
+ }
}
}
else
@@ -198,9 +204,9 @@ namespace BizHawk.Client.EmuHawk
if (column == 0)
{
- text = Path.GetFileNameWithoutExtension(_luaList[index].Path); //TODO: how about a list of Names and allow the user to name them?
+ text = Path.GetFileNameWithoutExtension(_luaList[index].Path); // TODO: how about allow the user to name scripts?
}
- if (column == 1)
+ else if (column == 1)
{
text = _luaList[index].Path;
}
@@ -217,11 +223,14 @@ namespace BizHawk.Client.EmuHawk
private void LoadConfigSettings()
{
- _defaultWidth = Size.Width; //Save these first so that the user can restore to its original size
+ _defaultWidth = Size.Width;
_defaultHeight = Size.Height;
- if (Global.Config.LuaConsoleSaveWindowPosition && Global.Config.LuaConsoleWndx >= 0 && Global.Config.LuaConsoleWndy >= 0)
+ if (Global.Config.LuaConsoleSaveWindowPosition && Global.Config.LuaConsoleWndx >= 0
+ && Global.Config.LuaConsoleWndy >= 0)
+ {
Location = new Point(Global.Config.LuaConsoleWndx, Global.Config.LuaConsoleWndy);
+ }
if (Global.Config.LuaConsoleWidth >= 0 && Global.Config.LuaConsoleHeight >= 0)
{
@@ -237,7 +246,6 @@ namespace BizHawk.Client.EmuHawk
Filter = filter, RestoreDirectory = true
};
-
if (!Directory.Exists(ofd.InitialDirectory))
{
Directory.CreateDirectory(ofd.InitialDirectory);
@@ -250,39 +258,21 @@ namespace BizHawk.Client.EmuHawk
private void UpdateNumberOfScripts()
{
var message = String.Empty;
- int active = 0, paused = 0, separators = 0;
- foreach (var file in _luaList)
- {
- if (!file.IsSeparator)
- {
- if (file.Enabled)
- {
- active++;
- if (file.Paused)
- {
- paused++;
- }
- }
- }
- else
- {
- separators++;
- }
- }
+ var total = SelectedFiles.Count();
+ var active = _luaList.Count(file => file.Enabled);
+ var paused = _luaList.Count(file => file.Enabled && file.Paused);
- var L = _luaList.Count - separators;
-
- if (L == 1)
+ if (total == 1)
{
- message += L + " script (" + active + " active, " + paused + " paused)";
+ message += total + " script (" + active + " active, " + paused + " paused)";
}
- else if (L == 0)
+ else if (total == 0)
{
- message += L + " scripts";
+ message += total + " scripts";
}
else
{
- message += L + " scripts (" + active + " active, " + paused + " paused)";
+ message += total + " scripts (" + active + " active, " + paused + " paused)";
}
NumberOfScripts.Text = message;
@@ -301,7 +291,9 @@ namespace BizHawk.Client.EmuHawk
public void WriteToOutputWindow(string message)
{
if (!OutputBox.IsHandleCreated || OutputBox.IsDisposed)
+ {
return;
+ }
OutputBox.Invoke(() =>
{
@@ -314,7 +306,9 @@ namespace BizHawk.Client.EmuHawk
public void ClearOutputWindow()
{
if (!OutputBox.IsHandleCreated || OutputBox.IsDisposed)
+ {
return;
+ }
OutputBox.Invoke(() =>
{
@@ -329,7 +323,7 @@ namespace BizHawk.Client.EmuHawk
}
///
- /// resumes suspended coroutines
+ /// resumes suspended Co-routines
///
/// should frame waiters be waken up? only use this immediately before a frame of emulation
public void ResumeScripts(bool includeFrameWaiters)
@@ -340,30 +334,33 @@ namespace BizHawk.Client.EmuHawk
{
LuaImp.GuiLibrary.DrawNewEmu();
}
+
foreach (var lf in _luaList)
{
- var oldcd = Environment.CurrentDirectory; //save old current directory before this lua thread clobbers it for the .net thread
+ var oldcd = Environment.CurrentDirectory; // Save old current directory before this lua thread clobbers it for the .net thread
try
{
- if (lf.Enabled && lf.Thread != null && !(lf.Paused))
+ if (lf.Enabled && lf.Thread != null && !lf.Paused)
{
var prohibit = lf.FrameWaiting && !includeFrameWaiters;
if (!prohibit)
{
- //restore this lua thread's preferred current directory
+ // Restore this lua thread's preferred current directory
if (lf.CurrentDirectory != null)
{
Environment.CurrentDirectory = lf.CurrentDirectory;
}
+
var result = LuaImp.ResumeScript(lf.Thread);
if (result.Terminated)
{
lf.Stop();
}
+
lf.FrameWaiting = result.WaitForFrame;
- //if the lua thread changed its current directory, capture that here
+ // If the lua thread changed its current directory, capture that here
lf.CurrentDirectory = Environment.CurrentDirectory;
}
}
@@ -376,24 +373,23 @@ namespace BizHawk.Client.EmuHawk
lf.Thread = null;
ConsoleLog(ex.ToString());
}
- else MessageBox.Show(ex.ToString());
+ else
+ {
+ MessageBox.Show(ex.ToString());
+ }
}
- //restore the current directory
+ // Restore the current directory
Environment.CurrentDirectory = oldcd;
}
}
- //LuaImp.gui_drawFinishEmu();
}
public void StartLuaDrawing()
{
- if (_luaList.Any())
+ if (_luaList.Any() && LuaImp.GuiLibrary.SurfaceIsNull)
{
- if (LuaImp.GuiLibrary.SurfaceIsNull)
- {
- LuaImp.GuiLibrary.DrawNewEmu();
- }
+ LuaImp.GuiLibrary.DrawNewEmu();
}
}
@@ -433,6 +429,7 @@ namespace BizHawk.Client.EmuHawk
sfd.FileName = "NULL";
sfd.InitialDirectory = PathManager.GetLuaPath();
}
+
sfd.Filter = "Lua Session Files (*.luases)|*.luases|All Files|*.*";
sfd.RestoreDirectory = true;
var result = sfd.ShowHawkDialog();
@@ -457,7 +454,10 @@ namespace BizHawk.Client.EmuHawk
public void LoadSessionFromRecent(string path)
{
var doload = true;
- if (_luaList.Changes) doload = AskSave();
+ if (_luaList.Changes)
+ {
+ doload = AskSave();
+ }
if (doload)
{
@@ -509,12 +509,13 @@ namespace BizHawk.Client.EmuHawk
return false;
}
}
+
return true;
}
private static void OpenLuaWriter(string path)
{
- var writer = new LuaWriter {CurrentFile = path};
+ var writer = new LuaWriter { CurrentFile = path };
writer.Show();
}
@@ -697,8 +698,8 @@ namespace BizHawk.Client.EmuHawk
foreach (var function in functions)
{
LuaImp.RegisteredFunctions.Remove(function);
-
}
+
UpdateRegisteredFunctionsDialog();
}
@@ -839,7 +840,7 @@ namespace BizHawk.Client.EmuHawk
if (!alreadyOpen)
{
- var form = new LuaRegisteredFunctionsList {StartLocation = GetPromptPoint()};
+ var form = new LuaRegisteredFunctionsList { StartLocation = GetPromptPoint() };
form.Show();
}
}
@@ -945,12 +946,12 @@ namespace BizHawk.Client.EmuHawk
{
foreach (var path in filePaths)
{
- if (Path.GetExtension(path) == (".lua") || Path.GetExtension(path) == (".txt"))
+ if (Path.GetExtension(path) == ".lua" || Path.GetExtension(path) == ".txt")
{
LoadLuaFile(path);
UpdateDialog();
}
- else if (Path.GetExtension(path) == (".luases"))
+ else if (Path.GetExtension(path) == ".luases")
{
_luaList.LoadLuaSession(path);
RunLuaScripts();
@@ -984,11 +985,11 @@ namespace BizHawk.Client.EmuHawk
{
RemoveScriptMenuItem_Click(null, null);
}
- else if (e.KeyCode == Keys.A && e.Control && !e.Alt && !e.Shift) //Select All
+ else if (e.KeyCode == Keys.A && e.Control && !e.Alt && !e.Shift) // Select All
{
SelectAllMenuItem_Click(null, null);
}
- else if (e.KeyCode == Keys.F12 && !e.Control && !e.Alt && !e.Shift) //F12
+ else if (e.KeyCode == Keys.F12 && !e.Control && !e.Alt && !e.Shift) // F12
{
RegisteredFunctionsMenuItem_Click(null, null);
}
@@ -1001,7 +1002,7 @@ namespace BizHawk.Client.EmuHawk
private void OutputBox_KeyDown(object sender, KeyEventArgs e)
{
- if (e.KeyCode == Keys.F12 && !e.Control && !e.Alt && !e.Shift) //F12
+ if (e.KeyCode == Keys.F12 && !e.Control && !e.Alt && !e.Shift) // F12
{
RegisteredFunctionsMenuItem_Click(null, null);
}