Simplify TasMovie by using auto-properties
This commit is contained in:
parent
1c67066e13
commit
7d0b736e8d
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue