Major cleanup of MnemonicsGenerator - change it to a LogEntryGenerator notion, and only expose it through a movie implementation, via an ILogEntryGenerator interface
This commit is contained in:
parent
1cefb2dd95
commit
6ec1a45b70
BizHawk.Client.Common
BizHawk.Client.EmuHawk/DisplayManager
|
@ -148,6 +148,7 @@
|
|||
<Compile Include="movie\bkm\BkmMovie.ModeApi.cs" />
|
||||
<Compile Include="movie\HeaderKeys.cs" />
|
||||
<Compile Include="movie\InputAdapters.cs" />
|
||||
<Compile Include="movie\interfaces\ILogEntryGenerator.cs" />
|
||||
<Compile Include="movie\interfaces\IMovie.cs" />
|
||||
<Compile Include="movie\MnemonicsGenerator.cs" />
|
||||
<Compile Include="movie\MovieImport.cs" />
|
||||
|
|
|
@ -49,14 +49,6 @@ namespace BizHawk.Client.Common
|
|||
//the "output" port for the controller chain.
|
||||
public static CopyControllerAdapter ControllerOutput = new CopyControllerAdapter();
|
||||
|
||||
|
||||
public static string GetOutputControllersAsMnemonic()
|
||||
{
|
||||
MnemonicsGenerator mg = new MnemonicsGenerator();
|
||||
mg.SetSource(ControllerOutput);
|
||||
return mg.GetControllersAsMnemonic();
|
||||
}
|
||||
|
||||
public static DiscHopper DiscHopper = new DiscHopper();
|
||||
|
||||
public static UD_LR_ControllerAdapter UD_LR_ControllerAdapter = new UD_LR_ControllerAdapter();
|
||||
|
|
|
@ -5,34 +5,193 @@ using BizHawk.Emulation.Common;
|
|||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
// Used with the version 1 movie implementation
|
||||
public class MnemonicsGenerator
|
||||
public class BkmLogEntryGenerator : ILogEntryGenerator
|
||||
{
|
||||
private IController _source;
|
||||
|
||||
public bool this[int player, string mnemonic]
|
||||
{
|
||||
get
|
||||
{
|
||||
return IsBasePressed("P" + player + " " + mnemonic); // TODO: not every controller uses "P"
|
||||
}
|
||||
}
|
||||
|
||||
public void SetSource(IController source)
|
||||
{
|
||||
_source = source;
|
||||
_controlType = source.Type.Name;
|
||||
}
|
||||
|
||||
public string GenerateLogEntry()
|
||||
{
|
||||
if (_controlType == "Null Controller")
|
||||
{
|
||||
return "|.|";
|
||||
}
|
||||
else if (_controlType == "Atari 7800 ProLine Joystick Controller")
|
||||
{
|
||||
return GetA78ControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "SNES Controller")
|
||||
{
|
||||
return GetSNESControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Commodore 64 Controller")
|
||||
{
|
||||
return GetC64ControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "GBA Controller")
|
||||
{
|
||||
return GetGBAControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Dual Gameboy Controller")
|
||||
{
|
||||
return GetDualGameBoyControllerAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "WonderSwan Controller")
|
||||
{
|
||||
return GetWonderSwanControllerAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Nintento 64 Controller")
|
||||
{
|
||||
return GetN64ControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Saturn Controller")
|
||||
{
|
||||
return GetSaturnControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "PSP Controller")
|
||||
{
|
||||
return "|.|"; // TODO
|
||||
}
|
||||
else if (_controlType == "GPGX Genesis Controller")
|
||||
{
|
||||
return GetGeneis6ButtonControllersAsMnemonic();
|
||||
}
|
||||
|
||||
var input = new StringBuilder("|");
|
||||
|
||||
if (_controlType == "PC Engine Controller")
|
||||
{
|
||||
input.Append(".");
|
||||
}
|
||||
else if (_controlType == "Atari 2600 Basic Controller")
|
||||
{
|
||||
input.Append(IsBasePressed("Reset") ? "r" : ".");
|
||||
input.Append(IsBasePressed("Select") ? "s" : ".");
|
||||
}
|
||||
else if (_controlType == "NES Controller")
|
||||
{
|
||||
if (IsBasePressed("Power"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Power"]);
|
||||
}
|
||||
else if (IsBasePressed("Reset"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Reset"]);
|
||||
}
|
||||
else if (IsBasePressed("FDS Eject"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["FDS Eject"]);
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 0"))
|
||||
{
|
||||
input.Append("0");
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 1"))
|
||||
{
|
||||
input.Append("1");
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 2"))
|
||||
{
|
||||
input.Append("2");
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 3"))
|
||||
{
|
||||
input.Append("3");
|
||||
}
|
||||
else if (IsBasePressed("VS Coin 1"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["VS Coin 1"]);
|
||||
}
|
||||
else if (IsBasePressed("VS Coin 2"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["VS Coin 2"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
input.Append('.');
|
||||
}
|
||||
}
|
||||
else if (_controlType == "Genesis 3-Button Controller")
|
||||
{
|
||||
if (IsBasePressed("Power"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Power"]);
|
||||
}
|
||||
else if (IsBasePressed("Reset"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Reset"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
input.Append('.');
|
||||
}
|
||||
}
|
||||
else if (_controlType == "Gameboy Controller")
|
||||
{
|
||||
input.Append(IsBasePressed("Power") ? MnemonicConstants.COMMANDS[_controlType]["Power"] : ".");
|
||||
}
|
||||
|
||||
if (_controlType != "SMS Controller" && _controlType != "TI83 Controller" && _controlType != "ColecoVision Basic Controller")
|
||||
{
|
||||
input.Append("|");
|
||||
}
|
||||
|
||||
for (int player = 1; player <= MnemonicConstants.PLAYERS[_controlType]; player++)
|
||||
{
|
||||
var prefix = String.Empty;
|
||||
if (_controlType != "Gameboy Controller" && _controlType != "TI83 Controller")
|
||||
{
|
||||
prefix = "P" + player + " ";
|
||||
}
|
||||
|
||||
foreach (var button in MnemonicConstants.BUTTONS[_controlType].Keys)
|
||||
{
|
||||
input.Append(IsBasePressed(prefix + button) ? MnemonicConstants.BUTTONS[_controlType][button] : ".");
|
||||
}
|
||||
|
||||
input.Append("|");
|
||||
}
|
||||
|
||||
if (_controlType == "SMS Controller")
|
||||
{
|
||||
foreach (var command in MnemonicConstants.COMMANDS[_controlType].Keys)
|
||||
{
|
||||
input.Append(IsBasePressed(command) ? MnemonicConstants.COMMANDS[_controlType][command] : ".");
|
||||
}
|
||||
|
||||
input.Append("|");
|
||||
}
|
||||
|
||||
if (_controlType == "TI83 Controller")
|
||||
{
|
||||
input.Append(".|"); // TODO: perhaps ON should go here?
|
||||
}
|
||||
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public string GenerateInputDisplay()
|
||||
{
|
||||
return GenerateLogEntry()
|
||||
.Replace(".", " ")
|
||||
.Replace("|", "")
|
||||
.Replace(" 000, 000", " ");
|
||||
}
|
||||
|
||||
public bool IsEmpty
|
||||
{
|
||||
get
|
||||
{
|
||||
return EmptyMnemonic == GetControllersAsMnemonic();
|
||||
return EmptyEntry == GenerateLogEntry();
|
||||
}
|
||||
}
|
||||
|
||||
public string EmptyMnemonic
|
||||
public string EmptyEntry
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -380,166 +539,6 @@ namespace BizHawk.Client.Common
|
|||
return input.ToString();
|
||||
}
|
||||
|
||||
public string GetControllersAsMnemonic()
|
||||
{
|
||||
if (_controlType == "Null Controller")
|
||||
{
|
||||
return "|.|";
|
||||
}
|
||||
else if (_controlType == "Atari 7800 ProLine Joystick Controller")
|
||||
{
|
||||
return GetA78ControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "SNES Controller")
|
||||
{
|
||||
return GetSNESControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Commodore 64 Controller")
|
||||
{
|
||||
return GetC64ControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "GBA Controller")
|
||||
{
|
||||
return GetGBAControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Dual Gameboy Controller")
|
||||
{
|
||||
return GetDualGameBoyControllerAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "WonderSwan Controller")
|
||||
{
|
||||
return GetWonderSwanControllerAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Nintento 64 Controller")
|
||||
{
|
||||
return GetN64ControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "Saturn Controller")
|
||||
{
|
||||
return GetSaturnControllersAsMnemonic();
|
||||
}
|
||||
else if (_controlType == "PSP Controller")
|
||||
{
|
||||
return "|.|"; // TODO
|
||||
}
|
||||
else if (_controlType == "GPGX Genesis Controller")
|
||||
{
|
||||
return GetGeneis6ButtonControllersAsMnemonic();
|
||||
}
|
||||
|
||||
var input = new StringBuilder("|");
|
||||
|
||||
if (_controlType == "PC Engine Controller")
|
||||
{
|
||||
input.Append(".");
|
||||
}
|
||||
else if (_controlType == "Atari 2600 Basic Controller")
|
||||
{
|
||||
input.Append(IsBasePressed("Reset") ? "r" : ".");
|
||||
input.Append(IsBasePressed("Select") ? "s" : ".");
|
||||
}
|
||||
else if (_controlType == "NES Controller")
|
||||
{
|
||||
if (IsBasePressed("Power"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Power"]);
|
||||
}
|
||||
else if (IsBasePressed("Reset"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Reset"]);
|
||||
}
|
||||
else if (IsBasePressed("FDS Eject"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["FDS Eject"]);
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 0"))
|
||||
{
|
||||
input.Append("0");
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 1"))
|
||||
{
|
||||
input.Append("1");
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 2"))
|
||||
{
|
||||
input.Append("2");
|
||||
}
|
||||
else if (IsBasePressed("FDS Insert 3"))
|
||||
{
|
||||
input.Append("3");
|
||||
}
|
||||
else if (IsBasePressed("VS Coin 1"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["VS Coin 1"]);
|
||||
}
|
||||
else if (IsBasePressed("VS Coin 2"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["VS Coin 2"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
input.Append('.');
|
||||
}
|
||||
}
|
||||
else if (_controlType == "Genesis 3-Button Controller")
|
||||
{
|
||||
if (IsBasePressed("Power"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Power"]);
|
||||
}
|
||||
else if (IsBasePressed("Reset"))
|
||||
{
|
||||
input.Append(MnemonicConstants.COMMANDS[_controlType]["Reset"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
input.Append('.');
|
||||
}
|
||||
}
|
||||
else if (_controlType == "Gameboy Controller")
|
||||
{
|
||||
input.Append(IsBasePressed("Power") ? MnemonicConstants.COMMANDS[_controlType]["Power"] : ".");
|
||||
}
|
||||
|
||||
if (_controlType != "SMS Controller" && _controlType != "TI83 Controller" && _controlType != "ColecoVision Basic Controller")
|
||||
{
|
||||
input.Append("|");
|
||||
}
|
||||
|
||||
for (int player = 1; player <= MnemonicConstants.PLAYERS[_controlType]; player++)
|
||||
{
|
||||
var prefix = String.Empty;
|
||||
if (_controlType != "Gameboy Controller" && _controlType != "TI83 Controller")
|
||||
{
|
||||
prefix = "P" + player + " ";
|
||||
}
|
||||
|
||||
foreach (var button in MnemonicConstants.BUTTONS[_controlType].Keys)
|
||||
{
|
||||
input.Append(IsBasePressed(prefix + button) ? MnemonicConstants.BUTTONS[_controlType][button] : ".");
|
||||
}
|
||||
|
||||
input.Append("|");
|
||||
}
|
||||
|
||||
if (_controlType == "SMS Controller")
|
||||
{
|
||||
foreach (var command in MnemonicConstants.COMMANDS[_controlType].Keys)
|
||||
{
|
||||
input.Append(IsBasePressed(command) ? MnemonicConstants.COMMANDS[_controlType][command] : ".");
|
||||
}
|
||||
|
||||
input.Append("|");
|
||||
}
|
||||
|
||||
if (_controlType == "TI83 Controller")
|
||||
{
|
||||
input.Append(".|"); // TODO: perhaps ON should go here?
|
||||
}
|
||||
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -148,9 +148,9 @@ namespace BizHawk.Client.Common
|
|||
else if (Global.Config.MoviePlaybackPokeMode)
|
||||
{
|
||||
LatchInputFromPlayer(Global.MovieInputSourceAdapter);
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(Global.MovieOutputHardpoint);
|
||||
if (!mg.IsEmpty)
|
||||
var lg = Movie.LogGeneratorInstance();
|
||||
lg.SetSource(Global.MovieOutputHardpoint);
|
||||
if (!lg.IsEmpty)
|
||||
{
|
||||
LatchInputFromPlayer(Global.MovieInputSourceAdapter);
|
||||
Movie.PokeFrame(Global.Emulator.Frame, Global.MovieOutputHardpoint);
|
||||
|
|
|
@ -41,6 +41,11 @@ namespace BizHawk.Client.Common
|
|||
public bool Changes { get; private set; }
|
||||
public bool IsCountingRerecords { get; set; }
|
||||
|
||||
public ILogEntryGenerator LogGeneratorInstance()
|
||||
{
|
||||
return new BkmLogEntryGenerator();
|
||||
}
|
||||
|
||||
public double FrameCount
|
||||
{
|
||||
get
|
||||
|
@ -89,9 +94,9 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void AppendFrame(IController source)
|
||||
{
|
||||
var mg = new MnemonicsGenerator();
|
||||
var mg = new BkmLogEntryGenerator();
|
||||
mg.SetSource(source);
|
||||
_log.Add(mg.GetControllersAsMnemonic());
|
||||
_log.Add(mg.GenerateLogEntry());
|
||||
Changes = true;
|
||||
}
|
||||
|
||||
|
@ -105,11 +110,11 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(source);
|
||||
var lg = LogGeneratorInstance();
|
||||
lg.SetSource(source);
|
||||
_log.SetFrameAt(frame, lg.GenerateLogEntry());
|
||||
|
||||
Changes = true;
|
||||
_log.SetFrameAt(frame, mg.GetControllersAsMnemonic());
|
||||
}
|
||||
|
||||
public void Truncate(int frame)
|
||||
|
@ -148,6 +153,16 @@ namespace BizHawk.Client.Common
|
|||
return string.Empty;
|
||||
}
|
||||
|
||||
public void PokeFrame(int frame, IController source)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void ClearFrame(int frame)
|
||||
{
|
||||
_log.SetFrameAt(frame, LogGeneratorInstance().EmptyEntry);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private double GetSeconds(int frameCount)
|
||||
|
@ -161,19 +176,5 @@ namespace BizHawk.Client.Common
|
|||
|
||||
return frames / Fps;
|
||||
}
|
||||
|
||||
#region Probably won't support
|
||||
|
||||
public void PokeFrame(int frame, IController source)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void ClearFrame(int frame)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,11 @@ namespace BizHawk.Client.Common
|
|||
|
||||
#region Properties
|
||||
|
||||
public ILogEntryGenerator LogGeneratorInstance()
|
||||
{
|
||||
return new BkmLogEntryGenerator();
|
||||
}
|
||||
|
||||
public string PreferredExtension { get { return "bkm"; } }
|
||||
public BkmHeader Header { get; private set; }
|
||||
public string Filename { get; set; }
|
||||
|
@ -128,15 +133,16 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void ClearFrame(int frame)
|
||||
{
|
||||
_log.SetFrameAt(frame, new MnemonicsGenerator().EmptyMnemonic);
|
||||
var lg = LogGeneratorInstance();
|
||||
_log.SetFrameAt(frame, lg.EmptyEntry);
|
||||
_changes = true;
|
||||
}
|
||||
|
||||
public void AppendFrame(IController source)
|
||||
{
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(source);
|
||||
_log.Add(mg.GetControllersAsMnemonic());
|
||||
var lg = LogGeneratorInstance();
|
||||
lg.SetSource(source);
|
||||
_log.Add(lg.GenerateLogEntry());
|
||||
_changes = true;
|
||||
}
|
||||
|
||||
|
@ -148,11 +154,11 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void PokeFrame(int frame, IController source)
|
||||
{
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(source);
|
||||
var lg = LogGeneratorInstance();
|
||||
lg.SetSource(source);
|
||||
|
||||
_changes = true;
|
||||
_log.SetFrameAt(frame, mg.GetControllersAsMnemonic());
|
||||
_log.SetFrameAt(frame, lg.GenerateLogEntry());
|
||||
}
|
||||
|
||||
public void RecordFrame(int frame, IController source)
|
||||
|
@ -168,11 +174,11 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(source);
|
||||
var lg = LogGeneratorInstance();
|
||||
lg.SetSource(source);
|
||||
_log.SetFrameAt(frame, lg.GenerateLogEntry());
|
||||
|
||||
_changes = true;
|
||||
_log.SetFrameAt(frame, mg.GetControllersAsMnemonic());
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
using BizHawk.Emulation.Common;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public interface ILogEntryGenerator
|
||||
{
|
||||
/// <summary>
|
||||
/// Sets the controller source used to generate an input log entry
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
void SetSource(IController source);
|
||||
|
||||
/// <summary>
|
||||
/// Generates an input log entry for the current state of Source
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string GenerateLogEntry();
|
||||
|
||||
/// <summary>
|
||||
/// Generates a display friendly verion of the input log entry
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
string GenerateInputDisplay();
|
||||
|
||||
/// <summary>
|
||||
/// Returns whether or not the current controller state is "empty"
|
||||
/// </summary>
|
||||
bool IsEmpty { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns an input log entry that is considered empty. (booleans will be false, floats will be 0)
|
||||
/// </summary>
|
||||
string EmptyEntry { get; }
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -91,6 +91,11 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
void SaveBackup();
|
||||
|
||||
/// <summary>
|
||||
/// Creates an instance of the Input log entry used to generate the input log
|
||||
/// </summary>
|
||||
ILogEntryGenerator LogGeneratorInstance();
|
||||
|
||||
#endregion
|
||||
|
||||
#region File Handling API
|
||||
|
|
|
@ -230,12 +230,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public string InputStrImmediate()
|
||||
{
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(Global.AutofireStickyXORAdapter);
|
||||
var lg = Global.MovieSession.Movie.LogGeneratorInstance();
|
||||
lg.SetSource(Global.AutofireStickyXORAdapter);
|
||||
|
||||
var sb = new StringBuilder(mg.GetControllersAsMnemonic());
|
||||
sb.Replace(".", " ").Replace("|", "").Replace(" 000, 000", " ");
|
||||
return sb.ToString();
|
||||
return lg.GenerateInputDisplay();
|
||||
}
|
||||
|
||||
public string InputPrevious()
|
||||
|
@ -266,12 +264,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
SourceOr = m
|
||||
};
|
||||
|
||||
var mg = new MnemonicsGenerator();
|
||||
var mg = Global.MovieSession.Movie.LogGeneratorInstance();
|
||||
mg.SetSource(orAdaptor);
|
||||
|
||||
var sb = new StringBuilder(mg.GetControllersAsMnemonic());
|
||||
sb.Replace(".", " ").Replace("|", "").Replace(" 000, 000", " ");
|
||||
return sb.ToString();
|
||||
return mg.GenerateInputDisplay();
|
||||
}
|
||||
|
||||
public string InputStrSticky()
|
||||
|
@ -282,11 +277,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
SourceStickyOr = Global.AutofireStickyXORAdapter
|
||||
};
|
||||
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(stickyOr);
|
||||
var sb = new StringBuilder(mg.GetControllersAsMnemonic());
|
||||
sb.Replace(".", " ").Replace("|", "").Replace(" 000, 000", " ");
|
||||
return sb.ToString();
|
||||
var lg = Global.MovieSession.Movie.LogGeneratorInstance();
|
||||
lg.SetSource(stickyOr);
|
||||
return lg.GenerateInputDisplay();
|
||||
}
|
||||
|
||||
public string MakeIntersectImmediatePrevious()
|
||||
|
@ -303,15 +296,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
SourceAnd = m
|
||||
};
|
||||
|
||||
var mg = new MnemonicsGenerator();
|
||||
mg.SetSource(andAdaptor);
|
||||
|
||||
var sb = new StringBuilder(mg.GetControllersAsMnemonic());
|
||||
sb.Replace(".", " ").Replace("|", "").Replace(" 000, 000", " ");
|
||||
return sb.ToString();
|
||||
var lg = Global.MovieSession.Movie.LogGeneratorInstance();
|
||||
lg.SetSource(andAdaptor);
|
||||
return lg.GenerateInputDisplay();
|
||||
}
|
||||
|
||||
// TODO: track previous input even when not movie recording
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue