From 1f181f48dbbd817cb443985066fb1a3e23999308 Mon Sep 17 00:00:00 2001 From: adelikat Date: Tue, 10 Dec 2013 16:37:41 +0000 Subject: [PATCH] TAStudio - start the "New" menu item, but it doesn't ask to save changes, it also freezes the GUI for some reason --- BizHawk.Client.Common/movie/TasMovie.cs | 9 +++-- .../tools/TAStudio/TAStudio.Designer.cs | 4 +-- .../tools/TAStudio/TAStudio.cs | 33 ++++++++++++++++--- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/BizHawk.Client.Common/movie/TasMovie.cs b/BizHawk.Client.Common/movie/TasMovie.cs index 9efbc5fe2d..f4eec2e4a6 100644 --- a/BizHawk.Client.Common/movie/TasMovie.cs +++ b/BizHawk.Client.Common/movie/TasMovie.cs @@ -274,10 +274,15 @@ namespace BizHawk.Client.Common public void StartNewRecording() { SwitchToRecord(); - if (Global.Config.EnableBackupMovies && true/*TODO*/ && _records.Any()) + + // TODO: MakeBackup logic - Tastudio logic shoudl be to always make backups before saving! + if (Global.Config.EnableBackupMovies && _records.Any() && !String.IsNullOrWhiteSpace(Filename)) { - // TODO + Save(); } + + _records.Clear(); + Header.Clear(); } public bool Load() diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs index 5685d0a243..03393a4dc0 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs @@ -146,11 +146,11 @@ namespace BizHawk.Client.EmuHawk // // NewTASMenuItem // - this.NewTASMenuItem.Enabled = false; this.NewTASMenuItem.Name = "NewTASMenuItem"; this.NewTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); this.NewTASMenuItem.Size = new System.Drawing.Size(186, 22); this.NewTASMenuItem.Text = "&New"; + this.NewTASMenuItem.Click += new System.EventHandler(this.NewTASMenuItem_Click); // // OpenTASMenuItem // @@ -190,7 +190,7 @@ namespace BizHawk.Client.EmuHawk // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(149, 6); + this.toolStripSeparator3.Size = new System.Drawing.Size(57, 6); // // toolStripSeparator1 // diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 623a9c5edc..661eb6675e 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -138,10 +138,7 @@ namespace BizHawk.Client.EmuHawk } GlobalWin.OSD.AddMessage("TAStudio engaged"); - Global.MovieSession.Movie = new TasMovie(); - _tas = Global.MovieSession.Movie as TasMovie; - _tas.StartNewRecording(); - _tas.OnChanged += OnMovieChanged; + EngageTasStudio(); LoadConfigSettings(); @@ -149,6 +146,26 @@ namespace BizHawk.Client.EmuHawk SetUpColumns(); } + private void EngageTasStudio() + { + GlobalWin.OSD.AddMessage("TAStudio engaged"); + Global.MovieSession.Movie = new TasMovie(); + _tas = Global.MovieSession.Movie as TasMovie; + _tas.StartNewRecording(); + _tas.OnChanged += OnMovieChanged; + } + + private void StartNewSession() + { + if (AskSave()) + { + // TODO: power-cycle + // TODO: UI flow that conveniently allows to start from savestate + GlobalWin.OSD.AddMessage("new TAStudio session started"); + _tas.StartNewRecording(); + } + } + private void OnMovieChanged(object sender, MovieRecord.InputEventArgs e) { //TODO: move logic needs to go here @@ -247,6 +264,12 @@ namespace BizHawk.Client.EmuHawk ); } + private void NewTASMenuItem_Click(object sender, EventArgs e) + { + StartNewSession(); + } + + private void OpenTASMenuItem_Click(object sender, EventArgs e) { var file = ToolHelpers.GetTasProjFileFromUser(_tas.Filename); @@ -268,7 +291,7 @@ namespace BizHawk.Client.EmuHawk private void SaveAsTASMenuItem_Click(object sender, EventArgs e) { var file = ToolHelpers.GetTasProjSaveFileFromUser(_tas.Filename); - if (DialogResult != null) + if (file != null) { _tas.Filename = file.FullName; _tas.Save();