Fix Macro Functionality (fixes #1838) (#1839)

* Initial fixes for macro menu items

* Arguments for this constructor can't be optional.
This commit is contained in:
Zach 2020-02-07 11:45:13 -08:00 committed by GitHub
parent 75ead6e3c4
commit ef18c1a3a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 8 deletions

View File

@ -268,7 +268,7 @@ namespace BizHawk.Client.EmuHawk
private void DummyLoadMacro(string path)
{
MovieZone loadZone = new MovieZone(path);
MovieZone loadZone = new MovieZone(path, Emulator, Tools);
_zones.Add(loadZone);
ZonesList.Items.Add($"{loadZone.Name} - length: {loadZone.Length}");
}
@ -316,7 +316,7 @@ namespace BizHawk.Client.EmuHawk
return true;
}
public MovieZone LoadMacro()
public MovieZone LoadMacro(IEmulator emulator = null, ToolManager tools = null)
{
using var dialog = new OpenFileDialog
{
@ -331,7 +331,7 @@ namespace BizHawk.Client.EmuHawk
}
Config.RecentMacros.Add(dialog.FileName);
return new MovieZone(dialog.FileName);
return new MovieZone(dialog.FileName, emulator ?? Emulator, tools ?? Tools);
}
}
}

View File

@ -49,6 +49,8 @@ namespace BizHawk.Client.EmuHawk
else
{
d.FloatControls.Add(k);
int rangeIndex = _emulator.ControllerDefinition.FloatControls.IndexOf(k);
d.FloatRanges.Add(_emulator.ControllerDefinition.FloatRanges[rangeIndex]);
}
}
@ -212,13 +214,16 @@ namespace BizHawk.Client.EmuHawk
File.AppendAllLines(fileName, _log);
}
public MovieZone(string fileName)
public MovieZone(string fileName, IEmulator emulator, ToolManager tools)
{
if (!File.Exists(fileName))
{
return;
}
_emulator = emulator;
_tools = tools;
string[] readText = File.ReadAllLines(fileName);
// If the LogKey contains buttons/controls not accepted by the emulator,

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.IO;
using System.Linq;
using System.Text;
@ -218,7 +218,9 @@ namespace BizHawk.Client.EmuHawk
TasView.FirstSelectedIndex ?? 0,
TasView.LastSelectedIndex ?? 0 - TasView.FirstSelectedIndex ?? 0 + 1);
new MacroInputTool().SaveMacroAs(macro);
//var macroTool = Tools.Load<MacroInputTool>(false);
var macroTool = new MacroInputTool() { Config = Global.Config };
macroTool.SaveMacroAs(macro);
}
private void PlaceMacroAtSelectionMenuItem_Click(object sender, EventArgs e)
@ -228,7 +230,9 @@ namespace BizHawk.Client.EmuHawk
return;
}
var macro = new MacroInputTool().LoadMacro();
//var macroTool = Tools.Load<MacroInputTool>(false);
var macroTool = new MacroInputTool() { Config = Global.Config };
var macro = macroTool.LoadMacro(Emulator, Tools);
if (macro != null)
{
macro.Start = TasView.FirstSelectedIndex ?? 0;

View File

@ -787,7 +787,7 @@ namespace BizHawk.Client.EmuHawk
return;
}
var loadZone = new MovieZone(path)
var loadZone = new MovieZone(path, Emulator, Tools)
{
Start = TasView.FirstSelectedIndex ?? 0
};