diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index 0a52cac1b2..abdfa12f38 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -237,6 +237,17 @@ namespace BizHawk.MultiClient return ""; } + public void ModifyFrame(string record, int frame) + { + Log.SetFrameAt(frame, record); + } + + public void ClearFrame(int frame) + { + MnemonicsGenerator mg = new MnemonicsGenerator(); + Log.SetFrameAt(frame, mg.GetEmptyMnemonic()); + } + public void AppendFrame(string record) { Log.AddFrame(record); diff --git a/BizHawk.MultiClient/tools/TAStudio.Designer.cs b/BizHawk.MultiClient/tools/TAStudio.Designer.cs index 1cd3e2e2a1..04fb1f46bd 100644 --- a/BizHawk.MultiClient/tools/TAStudio.Designer.cs +++ b/BizHawk.MultiClient/tools/TAStudio.Designer.cs @@ -88,6 +88,8 @@ this.TASView = new BizHawk.VirtualListView(); this.Frame = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.Log = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.clearToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); this.menuStrip1.SuspendLayout(); this.contextMenuStrip1.SuspendLayout(); this.ControllersContext.SuspendLayout(); @@ -224,6 +226,7 @@ this.clearToolStripMenuItem2.Name = "clearToolStripMenuItem2"; this.clearToolStripMenuItem2.Size = new System.Drawing.Size(187, 22); this.clearToolStripMenuItem2.Text = "Clear"; + this.clearToolStripMenuItem2.Click += new System.EventHandler(this.clearToolStripMenuItem2_Click); // // deleteFramesToolStripMenuItem // @@ -332,12 +335,14 @@ // contextMenuStrip1 // this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.ContextMenu_Insert, - this.cloneToolStripMenuItem1, + this.clearToolStripMenuItem3, this.ContextMenu_Delete, + this.cloneToolStripMenuItem1, + this.ContextMenu_Insert, + this.toolStripSeparator5, this.SelectAll}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(232, 114); + this.contextMenuStrip1.Size = new System.Drawing.Size(232, 120); this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening); // // ContextMenu_Insert @@ -540,6 +545,17 @@ this.Log.Text = "Log"; this.Log.Width = 201; // + // clearToolStripMenuItem3 + // + this.clearToolStripMenuItem3.Name = "clearToolStripMenuItem3"; + this.clearToolStripMenuItem3.Size = new System.Drawing.Size(231, 22); + this.clearToolStripMenuItem3.Text = "Clear"; + // + // toolStripSeparator5 + // + this.toolStripSeparator5.Name = "toolStripSeparator5"; + this.toolStripSeparator5.Size = new System.Drawing.Size(228, 6); + // // TAStudio // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -620,5 +636,7 @@ private System.Windows.Forms.ToolStripMenuItem deleteFramesToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem2; private System.Windows.Forms.ToolStripMenuItem insertNumFramesToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem3; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; } } \ No newline at end of file diff --git a/BizHawk.MultiClient/tools/TAStudio.cs b/BizHawk.MultiClient/tools/TAStudio.cs index 21700035fa..62c89580ad 100644 --- a/BizHawk.MultiClient/tools/TAStudio.cs +++ b/BizHawk.MultiClient/tools/TAStudio.cs @@ -12,6 +12,7 @@ namespace BizHawk.MultiClient public partial class TAStudio : Form { //TODO: + //Ins/Del hotkeys for Clear and Insert # Frames (set up key listener) //When closing tastudio, don't write the movie file? AskSave() is acceptable however //If null emulator do a base virtualpad so getmnemonic doesn't fail //Right-click - Go to current frame @@ -163,6 +164,7 @@ namespace BizHawk.MultiClient { //TODO: don't engage until new/open project // + Global.MainForm.PauseEmulator(); Engaged = true; Global.OSD.AddMessage("TAStudio engaged"); if (Global.MovieSession.Movie.Mode != MOVIEMODE.INACTIVE) @@ -631,5 +633,21 @@ namespace BizHawk.MultiClient UpdateValues(); } + + private void ClearFrames() + { + ListView.SelectedIndexCollection list = TASView.SelectedIndices; + for (int index = 0; index < list.Count; index++) + { + Global.MovieSession.Movie.ClearFrame(list[index]); + } + + UpdateValues(); + } + + private void clearToolStripMenuItem2_Click(object sender, EventArgs e) + { + ClearFrames(); + } } }