simplify the construction of TasMovie but not requiring a startsFromSaveState param that doesn't actually set the movie's StartsFromSavestate bool, it just defined the text of the first marker
This commit is contained in:
parent
92bbf768af
commit
e11509421d
|
@ -6,12 +6,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
public static class MovieService
|
||||
{
|
||||
public static IMovie Get(string path, bool startsFromSavestate = false)
|
||||
public static IMovie Get(string path)
|
||||
{
|
||||
// TODO: change IMovies to take HawkFiles only and not path
|
||||
if (Path.GetExtension(path)?.EndsWith("tasproj") ?? false)
|
||||
{
|
||||
return new TasMovie(path, startsFromSavestate);
|
||||
return new TasMovie(path);
|
||||
}
|
||||
|
||||
return new Bk2Movie(path);
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
public bool StartsFromSavestate
|
||||
public virtual bool StartsFromSavestate
|
||||
{
|
||||
get => Header.ContainsKey(HeaderKeys.StartsFromSavestate) && bool.Parse(Header[HeaderKeys.StartsFromSavestate]);
|
||||
set
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
|||
{
|
||||
string newFilename = GetNewFileName(old.Filename);
|
||||
|
||||
var tas = (ITasMovie)MovieService.Get(newFilename, old.StartsFromSavestate);
|
||||
var tas = (ITasMovie)MovieService.Get(newFilename);
|
||||
|
||||
for (var i = 0; i < old.InputLogLength; i++)
|
||||
{
|
||||
|
@ -49,6 +49,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
|||
tas.Subtitles.Add(sub);
|
||||
}
|
||||
|
||||
tas.StartsFromSavestate = old.StartsFromSavestate;
|
||||
tas.TextSavestate = old.TextSavestate;
|
||||
tas.BinarySavestate = old.BinarySavestate;
|
||||
tas.SaveRam = old.SaveRam;
|
||||
|
@ -97,7 +98,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
|||
{
|
||||
string newFilename = GetNewFileName(old.Filename);
|
||||
|
||||
var tas = (ITasMovie)MovieService.Get(newFilename, true);
|
||||
var tas = (ITasMovie)MovieService.Get(newFilename);
|
||||
tas.BinarySavestate = savestate;
|
||||
tas.LagLog.Clear();
|
||||
|
||||
|
@ -154,7 +155,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
|
|||
{
|
||||
string newFilename = GetNewFileName(old.Filename);
|
||||
|
||||
var tas = (ITasMovie) MovieService.Get(newFilename, false);
|
||||
var tas = (ITasMovie) MovieService.Get(newFilename);
|
||||
tas.SaveRam = saveRam;
|
||||
tas.TasStateManager.Clear();
|
||||
tas.LagLog.Clear();
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace BizHawk.Client.Common
|
|||
private IInputPollable _inputPollable;
|
||||
|
||||
/// <exception cref="InvalidOperationException">loaded core does not implement <see cref="IStatable"/></exception>
|
||||
internal TasMovie(string path, bool startsFromSavestate) : base(path)
|
||||
internal TasMovie(string path) : base(path)
|
||||
{
|
||||
Branches = new TasBranchCollection(this);
|
||||
ChangeLog = new TasMovieChangeLog(this);
|
||||
|
@ -21,7 +21,7 @@ namespace BizHawk.Client.Common
|
|||
Header[HeaderKeys.MovieVersion] = "BizHawk v2.0 Tasproj v1.0";
|
||||
Markers = new TasMovieMarkerList(this);
|
||||
Markers.CollectionChanged += Markers_CollectionChanged;
|
||||
Markers.Add(0, startsFromSavestate ? "Savestate" : "Power on");
|
||||
Markers.Add(0, "Power on");
|
||||
}
|
||||
|
||||
public override void Attach(IMovieSession session, IEmulator emulator)
|
||||
|
@ -38,9 +38,20 @@ namespace BizHawk.Client.Common
|
|||
|
||||
_inputPollable = emulator.AsInputPollable();
|
||||
TasStateManager.Attach(emulator);
|
||||
|
||||
base.Attach(session, emulator);
|
||||
}
|
||||
|
||||
public override bool StartsFromSavestate
|
||||
{
|
||||
get => base.StartsFromSavestate;
|
||||
set
|
||||
{
|
||||
Markers.Add(0, value ? "Savestate" : "Power on");
|
||||
base.StartsFromSavestate = value;
|
||||
}
|
||||
}
|
||||
|
||||
public IStringLog VerificationLog { get; } = StringLogUtil.MakeStringLog(); // For movies that do not begin with power-on, this is the input required to get into the initial state
|
||||
public ITasBranchCollection Branches { get; }
|
||||
public ITasSession TasSession { get; private set; } = new TasSession();
|
||||
|
|
Loading…
Reference in New Issue