Simplify TasMovie by using auto-properties

This commit is contained in:
adelikat 2019-11-24 15:33:25 -06:00
parent 1c67066e13
commit 7d0b736e8d
3 changed files with 36 additions and 38 deletions

View File

@ -19,12 +19,12 @@ namespace BizHawk.Client.Common
base.RecordFrame(frame, source);
_lagLog.RemoveFrom(frame);
_lagLog[frame] = Global.Emulator.AsInputPollable().IsLagFrame;
TasLagLog.RemoveFrom(frame);
TasLagLog[frame] = Global.Emulator.AsInputPollable().IsLagFrame;
if (IsRecording)
{
_stateManager.Invalidate(frame + 1);
TasStateManager.Invalidate(frame + 1);
}
if (frame != 0)
@ -45,8 +45,8 @@ namespace BizHawk.Client.Common
base.Truncate(frame);
_lagLog.RemoveFrom(frame);
_stateManager.Invalidate(frame);
TasLagLog.RemoveFrom(frame);
TasStateManager.Invalidate(frame);
Markers.TruncateAt(frame);
ChangeLog.SetGeneralRedo();
@ -544,17 +544,17 @@ namespace BizHawk.Client.Common
public void RemoveLagHistory(int frame)
{
_lagLog.RemoveHistoryAt(frame);
TasLagLog.RemoveHistoryAt(frame);
}
public void InsertLagHistory(int frame, bool isLag)
{
_lagLog.InsertHistoryAt(frame, isLag);
TasLagLog.InsertHistoryAt(frame, isLag);
}
public void SetLag(int frame, bool? value)
{
_lagLog[frame] = value;
TasLagLog[frame] = value;
}
#endregion

View File

@ -25,13 +25,13 @@ namespace BizHawk.Client.Common
bs.PutLump(BinaryStateLump.Comments, tw => tw.WriteLine(CommentsString()));
bs.PutLump(BinaryStateLump.Subtitles, tw => tw.WriteLine(Subtitles.ToString()));
bs.PutLump(BinaryStateLump.SyncSettings, tw => tw.WriteLine(SyncSettingsJson));
bs.PutLump(BinaryStateLump.Input, tw => WriteInputLog(tw));
bs.PutLump(BinaryStateLump.Input, WriteInputLog);
// TasProj extras
var settings = JsonConvert.SerializeObject(_stateManager.Settings);
var settings = JsonConvert.SerializeObject(TasStateManager.Settings);
bs.PutLump(BinaryStateLump.StateHistorySettings, tw => tw.WriteLine(settings));
bs.PutLump(BinaryStateLump.LagLog, tw => _lagLog.Save(tw));
bs.PutLump(BinaryStateLump.LagLog, tw => TasLagLog.Save(tw));
bs.PutLump(BinaryStateLump.Markers, tw => tw.WriteLine(Markers.ToString()));
if (StartsFromSavestate)
@ -68,9 +68,9 @@ namespace BizHawk.Client.Common
bs.PutLump(BinaryStateLump.Session, tw => tw.WriteLine(JsonConvert.SerializeObject(Session)));
if (_stateManager.Settings.SaveStateHistory && !backup)
if (TasStateManager.Settings.SaveStateHistory && !backup)
{
bs.PutLump(BinaryStateLump.StateHistory, (BinaryWriter bw) => _stateManager.Save(bw));
bs.PutLump(BinaryStateLump.StateHistory, (BinaryWriter bw) => TasStateManager.Save(bw));
}
}
@ -182,7 +182,7 @@ namespace BizHawk.Client.Common
// TasMovie enhanced information
bl.GetLump(BinaryStateLump.LagLog, false, delegate(TextReader tr)
{
_lagLog.Load(tr);
TasLagLog.Load(tr);
});
bl.GetLump(BinaryStateLump.StateHistorySettings, false, delegate(TextReader tr)
@ -190,7 +190,7 @@ namespace BizHawk.Client.Common
var json = tr.ReadToEnd();
try
{
_stateManager.Settings = JsonConvert.DeserializeObject<TasStateManagerSettings>(json);
TasStateManager.Settings = JsonConvert.DeserializeObject<TasStateManagerSettings>(json);
}
catch
{
@ -266,18 +266,18 @@ namespace BizHawk.Client.Common
if (!preload)
{
if (_stateManager.Settings.SaveStateHistory)
if (TasStateManager.Settings.SaveStateHistory)
{
bl.GetLump(BinaryStateLump.StateHistory, false, delegate(BinaryReader br, long length)
{
_stateManager.Load(br);
TasStateManager.Load(br);
});
}
// Movie should always have a state at frame 0.
if (!StartsFromSavestate && Global.Emulator.Frame == 0)
{
_stateManager.Capture();
TasStateManager.Capture();
}
}
}
@ -289,7 +289,7 @@ namespace BizHawk.Client.Common
private void ClearTasprojExtras()
{
ClearLagLog();
_stateManager.Clear();
TasStateManager.Clear();
Markers.Clear();
ChangeLog.ClearLog();
}

View File

@ -13,8 +13,6 @@ namespace BizHawk.Client.Common
public sealed partial class TasMovie : Bk2Movie, INotifyPropertyChanged
{
private readonly Bk2MnemonicConstants _mnemonics = new Bk2MnemonicConstants();
private readonly IStateManager _stateManager;
private readonly TasLagLog _lagLog = new TasLagLog();
private readonly Dictionary<int, IController> _inputStateCache = new Dictionary<int, IController>();
private BackgroundWorker _progressReportWorker;
@ -32,19 +30,19 @@ namespace BizHawk.Client.Common
public bool UseInputCache { get; set; }
public int CurrentBranch { get; set; }
public TasLagLog TasLagLog => _lagLog;
public TasLagLog TasLagLog { get; } = new TasLagLog();
public IStringLog InputLog => Log;
public int BranchCount => Branches.Count;
public int LastStatedFrame => _stateManager.Last;
public int LastStatedFrame => TasStateManager.Last;
public override string PreferredExtension => Extension;
public IStateManager TasStateManager => _stateManager;
public IStateManager TasStateManager { get; }
public TasMovieRecord this[int index] => new TasMovieRecord
{
HasState = _stateManager.HasState(index),
HasState = TasStateManager.HasState(index),
LogEntry = GetInputLogEntry(index),
Lagged = _lagLog[index + 1],
WasLagged = _lagLog.History(index + 1)
Lagged = TasLagLog[index + 1],
WasLagged = TasLagLog.History(index + 1)
};
public TasMovie(string path, bool startsFromSavestate = false, BackgroundWorker progressReportWorker = null)
@ -58,7 +56,7 @@ namespace BizHawk.Client.Common
}
ChangeLog = new TasMovieChangeLog(this);
_stateManager = new TasStateManager(this);
TasStateManager = new TasStateManager(this);
Session = new TasSession(this);
Header[HeaderKeys.MOVIEVERSION] = "BizHawk v2.0 Tasproj v1.0";
Markers = new TasMovieMarkerList(this);
@ -77,7 +75,7 @@ namespace BizHawk.Client.Common
}
ChangeLog = new TasMovieChangeLog(this);
_stateManager = new TasStateManager(this);
TasStateManager = new TasStateManager(this);
Session = new TasSession(this);
Header[HeaderKeys.MOVIEVERSION] = "BizHawk v2.0 Tasproj v1.0";
Markers = new TasMovieMarkerList(this);
@ -147,8 +145,8 @@ namespace BizHawk.Client.Common
/// <param name="frame">The last frame that can be valid.</param>
private void InvalidateAfter(int frame)
{
var anyInvalidated = _lagLog.RemoveFrom(frame);
_stateManager.Invalidate(frame + 1);
var anyInvalidated = TasLagLog.RemoveFrom(frame);
TasStateManager.Invalidate(frame + 1);
Changes = anyInvalidated;
LastEditedFrame = frame;
@ -215,9 +213,9 @@ namespace BizHawk.Client.Common
public void ClearGreenzone()
{
if (_stateManager.Any())
if (TasStateManager.Any())
{
_stateManager.Clear();
TasStateManager.Clear();
Changes = true;
}
}
@ -232,17 +230,17 @@ namespace BizHawk.Client.Common
LastPositionStable = false;
}
_lagLog[Global.Emulator.Frame] = Global.Emulator.AsInputPollable().IsLagFrame;
TasLagLog[Global.Emulator.Frame] = Global.Emulator.AsInputPollable().IsLagFrame;
if (!_stateManager.HasState(Global.Emulator.Frame))
if (!TasStateManager.HasState(Global.Emulator.Frame))
{
_stateManager.Capture(Global.Emulator.Frame == LastEditedFrame - 1);
TasStateManager.Capture(Global.Emulator.Frame == LastEditedFrame - 1);
}
}
public void ClearLagLog()
{
_lagLog.Clear();
TasLagLog.Clear();
}
public void CopyLog(IEnumerable<string> log)
@ -423,7 +421,7 @@ namespace BizHawk.Client.Common
if (_timelineBranchFrame.HasValue)
{
_lagLog.RemoveFrom(_timelineBranchFrame.Value);
TasLagLog.RemoveFrom(_timelineBranchFrame.Value);
TasStateManager.Invalidate(_timelineBranchFrame.Value);
}