simplify some LogGenerator code

This commit is contained in:
adelikat 2020-04-14 16:44:37 -05:00
parent 831621b864
commit 2b17c6d310
8 changed files with 21 additions and 40 deletions

View File

@ -44,8 +44,9 @@ namespace BizHawk.Client.Common
{
return string.Empty;
}
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.MovieSession.Movie.GetInputState(frame));
var lg = Global.MovieSession.LogGeneratorInstance(
Global.MovieSession.Movie.GetInputState(frame));
return lg.GenerateLogEntry();
}

View File

@ -50,9 +50,11 @@ namespace BizHawk.Client.Common
/// <summary>
/// Simply shortens the verbosity necessary otherwise
/// </summary>
public ILogEntryGenerator LogGeneratorInstance()
public ILogEntryGenerator LogGeneratorInstance(IController source)
{
return Movie.LogGeneratorInstance();
var lg = Movie.LogGeneratorInstance();
lg.SetSource(source);
return lg;
}
public IMovieController MovieControllerInstance()

View File

@ -30,7 +30,7 @@ namespace BizHawk.Client.Common
bool CheckSavestateTimeline(TextReader reader);
bool HandleMovieLoadState(TextReader reader);
ILogEntryGenerator LogGeneratorInstance();
ILogEntryGenerator LogGeneratorInstance(IController source);
void QueueNewMovie(IMovie movie, bool record, IEmulator emulator);
void RunQueuedMovie(bool recordMode);

View File

@ -188,30 +188,22 @@ namespace BizHawk.Client.EmuHawk
public string InputStrMovie()
{
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.MovieSession.MovieControllerAdapter);
return lg.GenerateInputDisplay();
return MakeStringFor(Global.MovieSession.MovieControllerAdapter);
}
public string InputStrImmediate()
{
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.InputManager.AutofireStickyXorAdapter);
return lg.GenerateInputDisplay();
return MakeStringFor(Global.InputManager.AutofireStickyXorAdapter);
}
public string InputPrevious()
{
if (Global.MovieSession.Movie.IsPlayingOrRecording())
{
var lg = Global.MovieSession.LogGeneratorInstance();
var state = Global.MovieSession.Movie.GetInputState(Global.Emulator.Frame - 1);
if (state != null)
{
lg.SetSource(state);
return lg.GenerateInputDisplay();
return MakeStringFor(state);
}
}
@ -224,17 +216,12 @@ namespace BizHawk.Client.EmuHawk
? Global.MovieSession.Movie.GetInputState(Global.Emulator.Frame - 1)
: Global.MovieSession.MovieControllerInstance();
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.InputManager.AutofireStickyXorAdapter.Or(m));
return lg.GenerateInputDisplay();
return MakeStringFor(Global.InputManager.AutofireStickyXorAdapter.Or(m));
}
private string MakeStringFor(IController controller)
{
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(controller);
return lg.GenerateInputDisplay();
return Global.MovieSession.LogGeneratorInstance(controller).GenerateInputDisplay();
}
public string MakeIntersectImmediatePrevious()
@ -245,9 +232,7 @@ namespace BizHawk.Client.EmuHawk
? Global.MovieSession.Movie.GetInputState(Global.Emulator.Frame - 1)
: Global.MovieSession.MovieControllerInstance();
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.InputManager.AutofireStickyXorAdapter.And(m));
return lg.GenerateInputDisplay();
return MakeStringFor(Global.InputManager.AutofireStickyXorAdapter.And(m));
}
return "";

View File

@ -976,8 +976,7 @@ namespace BizHawk.Client.EmuHawk
UpdateBotStatusIcon();
MessageLabel.Text = "Running...";
_cachedControlProbabilities = ControlProbabilities;
_logGenerator = Global.MovieSession.LogGeneratorInstance();
_logGenerator.SetSource(Global.InputManager.ClickyVirtualPadController);
_logGenerator = Global.MovieSession.LogGeneratorInstance(Global.InputManager.ClickyVirtualPadController);
}
private string CanStart()

View File

@ -48,8 +48,7 @@ namespace BizHawk.Client.EmuHawk
s.Refresh();
// Update the selected zone's key
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.MovieSession.MovieControllerAdapter);
var lg = Global.MovieSession.LogGeneratorInstance(Global.MovieSession.MovieControllerAdapter);
string key = lg.GenerateLogKey();
key = key.Replace("LogKey:", "").Replace("#", "");

View File

@ -229,8 +229,7 @@ namespace BizHawk.Client.EmuHawk
// If the LogKey contains buttons/controls not accepted by the emulator,
// tell the user and display the macro's controller name and player count
_inputKey = readText[0];
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.MovieSession.MovieControllerAdapter);
var lg = Global.MovieSession.LogGeneratorInstance(Global.MovieSession.MovieControllerAdapter);
string key = lg.GenerateLogKey();
key = key.Replace("LogKey:", "").Replace("#", "");
key = key.Substring(0, key.Length - 1);

View File

@ -42,13 +42,6 @@ namespace BizHawk.Client.EmuHawk
/// </summary>
public int LastPositionFrame { get; private set; }
private Dictionary<string, string> GenerateColumnNames()
{
var lg = Global.MovieSession.LogGeneratorInstance();
lg.SetSource(Global.MovieSession.MovieControllerAdapter);
return lg.Map();
}
[ConfigPersist]
public TAStudioSettings Settings { get; set; }
@ -420,7 +413,10 @@ namespace BizHawk.Client.EmuHawk
Rotatable = true
});
var columnNames = GenerateColumnNames();
var columnNames = Global.MovieSession
.LogGeneratorInstance(Global.MovieSession.MovieControllerAdapter)
.Map();
foreach (var kvp in columnNames)
{
ColumnType type;