From a6944c47d89daa5f845af6c6f643cb024177b6e1 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 13 Apr 2014 23:18:45 +0000 Subject: [PATCH] Play Movie - don't crash on headers with duplicate keys, don't throw an exception when movie files to parse --- BizHawk.Client.Common/movie/MovieHeader.cs | 2 +- BizHawk.Client.EmuHawk/movie/PlayMovie.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.Common/movie/MovieHeader.cs b/BizHawk.Client.Common/movie/MovieHeader.cs index 395bc1540e..4b744e56c4 100644 --- a/BizHawk.Client.Common/movie/MovieHeader.cs +++ b/BizHawk.Client.Common/movie/MovieHeader.cs @@ -174,7 +174,7 @@ namespace BizHawk.Client.Common BoardProperties.Add(boardSplit[0], boardSplit[1]); } } - else if (HeaderKeys.Contains(splitLine[0])) + else if (HeaderKeys.Contains(splitLine[0]) && !this.ContainsKey(splitLine[0])) { Add(splitLine[0], splitLine[1]); } diff --git a/BizHawk.Client.EmuHawk/movie/PlayMovie.cs b/BizHawk.Client.EmuHawk/movie/PlayMovie.cs index fe4d1ffc29..d0b135fed9 100644 --- a/BizHawk.Client.EmuHawk/movie/PlayMovie.cs +++ b/BizHawk.Client.EmuHawk/movie/PlayMovie.cs @@ -136,9 +136,11 @@ namespace BizHawk.Client.EmuHawk private void PreLoadMovieFile(HawkFile hf, bool force) { var movie = new Movie(hf.CanonicalFullPath); - movie.PreLoadText(hf); + try { + movie.PreLoadText(hf); + // Don't do this from browse if (movie.Header[HeaderKeys.GAMENAME] == Global.Game.Name || Global.Config.PlayMovie_MatchGameName == false || force) @@ -148,6 +150,7 @@ namespace BizHawk.Client.EmuHawk } catch (Exception ex) { + // TODO: inform the user that a movie failed to parse in some way Console.WriteLine(ex.Message); } }