From 52659ac9a91fafc191e957976dc422244b05ad55 Mon Sep 17 00:00:00 2001 From: SuuperW Date: Mon, 23 Mar 2015 21:16:13 +0000 Subject: [PATCH] -Hacky removal of a useless save when loading a TasProj -Made ControlsOrdered much faster --- BizHawk.Client.Common/movie/MovieSession.cs | 1 + BizHawk.Client.EmuHawk/MainForm.Movie.cs | 4 +- .../tools/TAStudio/TAStudio.cs | 3 ++ .../ControllerDefinition.cs | 39 +++++++------------ 4 files changed, 20 insertions(+), 27 deletions(-) diff --git a/BizHawk.Client.Common/movie/MovieSession.cs b/BizHawk.Client.Common/movie/MovieSession.cs index 9def4ed868..b1aa69268a 100644 --- a/BizHawk.Client.Common/movie/MovieSession.cs +++ b/BizHawk.Client.Common/movie/MovieSession.cs @@ -465,6 +465,7 @@ namespace BizHawk.Client.Common } } + // TODO: Delete this, this save is utterly useless. //If a movie is already loaded, save it before starting a new movie if (Movie.IsActive && !string.IsNullOrEmpty(Movie.Filename)) { diff --git a/BizHawk.Client.EmuHawk/MainForm.Movie.cs b/BizHawk.Client.EmuHawk/MainForm.Movie.cs index 92d17f93b2..30234cce8a 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Movie.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Movie.cs @@ -21,7 +21,9 @@ namespace BizHawk.Client.EmuHawk public bool StartNewMovie(IMovie movie, bool record) { - if (movie.IsActive) + // SuuperW: Check changes. adelikat: this could break bk2 movies + // TODO: Clean up the saving process + if (movie.IsActive && (movie.Changes || !(movie is TasMovie))) { movie.Save(); } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index c522422ba0..8eb06c2b91 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -686,6 +686,9 @@ namespace BizHawk.Client.EmuHawk private void TAStudio_DragDrop(object sender, DragEventArgs e) { + if (!AskSaveChanges()) + return; + var filePaths = (string[])e.Data.GetData(DataFormats.FileDrop); if (Path.GetExtension(filePaths[0]) == "." + TasMovie.Extension) { diff --git a/BizHawk.Emulation.Common/Base Implementations/ControllerDefinition.cs b/BizHawk.Emulation.Common/Base Implementations/ControllerDefinition.cs index e64aace140..5e3b198733 100644 --- a/BizHawk.Emulation.Common/Base Implementations/ControllerDefinition.cs +++ b/BizHawk.Emulation.Common/Base Implementations/ControllerDefinition.cs @@ -112,35 +112,22 @@ namespace BizHawk.Emulation.Common { get { - var list = FloatControls.Union(BoolButtons); + List list = new List(FloatControls); + list.AddRange(BoolButtons); - yield return list - .Where(x => !x.StartsWith("P1 ") && !x.StartsWith("P2 ") && !x.StartsWith("P3 ") && !x.StartsWith("P4 ") - && !x.StartsWith("P5 ") && !x.StartsWith("P6 ") && !x.StartsWith("P7 ") && !x.StartsWith("P8 ")); + List[] ret = new List[9]; + for (int i = 0; i < ret.Length; i++) + ret[i] = new List(); - yield return list - .Where(x => x.StartsWith("P1 ")); + for (int i = 0; i < list.Count; i++) + { + int player = 0; + if (list[i].StartsWith("P") && char.IsNumber(list[i][1])) + player = int.Parse(list[i][1].ToString()); + ret[player].Add(list[i]); + } - yield return list - .Where(x => x.StartsWith("P2 ")); - - yield return list - .Where(x => x.StartsWith("P3 ")); - - yield return list - .Where(x => x.StartsWith("P4 ")); - - yield return list - .Where(x => x.StartsWith("P5 ")); - - yield return list - .Where(x => x.StartsWith("P6 ")); - - yield return list - .Where(x => x.StartsWith("P7 ")); - - yield return list - .Where(x => x.StartsWith("P8 ")); + return ret; } }