diff --git a/src/BizHawk.Client.Common/movie/MovieService.cs b/src/BizHawk.Client.Common/movie/MovieService.cs index cadd22bd4a..b283cb0715 100644 --- a/src/BizHawk.Client.Common/movie/MovieService.cs +++ b/src/BizHawk.Client.Common/movie/MovieService.cs @@ -18,11 +18,11 @@ namespace BizHawk.Client.Common } /// - /// Creates a instance + /// Creates a instance /// - public static ITasMovie CreateTas(bool startsFromSavestate = false) + public static ITasMovie CreateTas(string filename, bool startsFromSavestate = false) { - return new TasMovie(startsFromSavestate: startsFromSavestate); + return new TasMovie(filename, startsFromSavestate); } public static string StandardMovieExtension => Bk2Movie.Extension; diff --git a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs index 9dc75a90f8..72ac0ad08a 100644 --- a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs +++ b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs @@ -8,9 +8,14 @@ namespace BizHawk.Client.Common { private Bk2Controller _adapter; - internal Bk2Movie(string filename = null) + internal Bk2Movie(string filename) { - Filename = filename ?? string.Empty; + if (string.IsNullOrWhiteSpace(filename)) + { + throw new ArgumentNullException($"{nameof(filename)} can not be null."); + } + + Filename = filename; Header[HeaderKeys.MovieVersion] = "BizHawk v2.0.0"; } diff --git a/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs b/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs index e000a3a5bb..e800ee7294 100644 --- a/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs +++ b/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs @@ -230,7 +230,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions } } - var tas = new TasMovie(newFilename, true) { SaveRam = saveRam }; + var tas = new TasMovie(newFilename) { SaveRam = saveRam }; tas.TasStateManager.Clear(); tas.LagLog.Clear(); diff --git a/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs index 8ad5afcc6a..f64bc583fa 100644 --- a/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs +++ b/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs @@ -13,7 +13,7 @@ namespace BizHawk.Client.Common public new const string Extension = "tasproj"; /// loaded core does not implement - internal TasMovie(string path = null, bool startsFromSavestate = false) : base(path) + internal TasMovie(string path, bool startsFromSavestate = false) : base(path) { if (!Global.Emulator.HasSavestates()) { diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 97ce3595c5..c9abcd1715 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -623,8 +623,7 @@ namespace BizHawk.Client.EmuHawk return false; } - var newMovie = MovieService.CreateTas(startsFromSavestate: startsFromSavestate); - newMovie.Filename = file.FullName; + var newMovie = MovieService.CreateTas(file.FullName, startsFromSavestate); newMovie.BindMarkersToInput = Settings.BindMarkersToInput; newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated; @@ -678,9 +677,10 @@ namespace BizHawk.Client.EmuHawk return; } - var tasMovie = MovieService.CreateTas(); + var filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename + var tasMovie = MovieService.CreateTas(filename); tasMovie.BindMarkersToInput = Settings.BindMarkersToInput; - tasMovie.Filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename + tasMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated; tasMovie.PropertyChanged += TasMovie_OnPropertyChanged;