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

View File

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

View File

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