diff --git a/BizHawk.MultiClient/MainForm.Designer.cs b/BizHawk.MultiClient/MainForm.Designer.cs index 69f5d4eb00..711660b694 100644 --- a/BizHawk.MultiClient/MainForm.Designer.cs +++ b/BizHawk.MultiClient/MainForm.Designer.cs @@ -205,6 +205,7 @@ this.recordMovieToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.playMovieToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.loadLastMovieToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.makeMovieBackupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator19 = new System.Windows.Forms.ToolStripSeparator(); this.undoLoadstateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.undoSavestateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -1543,6 +1544,7 @@ this.recordMovieToolStripMenuItem1, this.playMovieToolStripMenuItem1, this.loadLastMovieToolStripMenuItem, + this.makeMovieBackupToolStripMenuItem, this.toolStripSeparator19, this.undoLoadstateToolStripMenuItem, this.undoSavestateToolStripMenuItem, @@ -1550,84 +1552,91 @@ this.screenshotToolStripMenuItem1, this.closeROMToolStripMenuItem1}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(163, 242); + this.contextMenuStrip1.Size = new System.Drawing.Size(179, 264); this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening); // // openRomToolStripMenuItem1 // this.openRomToolStripMenuItem1.Name = "openRomToolStripMenuItem1"; - this.openRomToolStripMenuItem1.Size = new System.Drawing.Size(162, 22); + this.openRomToolStripMenuItem1.Size = new System.Drawing.Size(178, 22); this.openRomToolStripMenuItem1.Text = "Open Rom"; this.openRomToolStripMenuItem1.Click += new System.EventHandler(this.openRomToolStripMenuItem1_Click); // // loadLastROMToolStripMenuItem // this.loadLastROMToolStripMenuItem.Name = "loadLastROMToolStripMenuItem"; - this.loadLastROMToolStripMenuItem.Size = new System.Drawing.Size(162, 22); + this.loadLastROMToolStripMenuItem.Size = new System.Drawing.Size(178, 22); this.loadLastROMToolStripMenuItem.Text = "Load Last ROM"; this.loadLastROMToolStripMenuItem.Click += new System.EventHandler(this.loadLastROMToolStripMenuItem_Click); // // toolStripSeparator18 // this.toolStripSeparator18.Name = "toolStripSeparator18"; - this.toolStripSeparator18.Size = new System.Drawing.Size(159, 6); + this.toolStripSeparator18.Size = new System.Drawing.Size(175, 6); // // recordMovieToolStripMenuItem1 // this.recordMovieToolStripMenuItem1.Name = "recordMovieToolStripMenuItem1"; - this.recordMovieToolStripMenuItem1.Size = new System.Drawing.Size(162, 22); + this.recordMovieToolStripMenuItem1.Size = new System.Drawing.Size(178, 22); this.recordMovieToolStripMenuItem1.Text = "Record Movie"; this.recordMovieToolStripMenuItem1.Click += new System.EventHandler(this.recordMovieToolStripMenuItem1_Click); // // playMovieToolStripMenuItem1 // this.playMovieToolStripMenuItem1.Name = "playMovieToolStripMenuItem1"; - this.playMovieToolStripMenuItem1.Size = new System.Drawing.Size(162, 22); + this.playMovieToolStripMenuItem1.Size = new System.Drawing.Size(178, 22); this.playMovieToolStripMenuItem1.Text = "Play Movie"; this.playMovieToolStripMenuItem1.Click += new System.EventHandler(this.playMovieToolStripMenuItem1_Click); // // loadLastMovieToolStripMenuItem // this.loadLastMovieToolStripMenuItem.Name = "loadLastMovieToolStripMenuItem"; - this.loadLastMovieToolStripMenuItem.Size = new System.Drawing.Size(162, 22); + this.loadLastMovieToolStripMenuItem.Size = new System.Drawing.Size(178, 22); this.loadLastMovieToolStripMenuItem.Text = "Load Last Movie"; this.loadLastMovieToolStripMenuItem.Click += new System.EventHandler(this.loadLastMovieToolStripMenuItem_Click); // + // makeMovieBackupToolStripMenuItem + // + this.makeMovieBackupToolStripMenuItem.Name = "makeMovieBackupToolStripMenuItem"; + this.makeMovieBackupToolStripMenuItem.Size = new System.Drawing.Size(178, 22); + this.makeMovieBackupToolStripMenuItem.Text = "Make Movie Backup"; + this.makeMovieBackupToolStripMenuItem.Click += new System.EventHandler(this.makeMovieBackupToolStripMenuItem_Click); + // // toolStripSeparator19 // this.toolStripSeparator19.Name = "toolStripSeparator19"; - this.toolStripSeparator19.Size = new System.Drawing.Size(159, 6); + this.toolStripSeparator19.Size = new System.Drawing.Size(175, 6); // // undoLoadstateToolStripMenuItem // this.undoLoadstateToolStripMenuItem.Name = "undoLoadstateToolStripMenuItem"; - this.undoLoadstateToolStripMenuItem.Size = new System.Drawing.Size(162, 22); + this.undoLoadstateToolStripMenuItem.Size = new System.Drawing.Size(178, 22); this.undoLoadstateToolStripMenuItem.Text = "Undo Loadstate"; this.undoLoadstateToolStripMenuItem.Click += new System.EventHandler(this.undoLoadstateToolStripMenuItem_Click); // // undoSavestateToolStripMenuItem // this.undoSavestateToolStripMenuItem.Name = "undoSavestateToolStripMenuItem"; - this.undoSavestateToolStripMenuItem.Size = new System.Drawing.Size(162, 22); + this.undoSavestateToolStripMenuItem.Size = new System.Drawing.Size(178, 22); this.undoSavestateToolStripMenuItem.Text = "Undo Savestate"; this.undoSavestateToolStripMenuItem.Click += new System.EventHandler(this.undoSavestateToolStripMenuItem_Click); // // toolStripSeparator20 // this.toolStripSeparator20.Name = "toolStripSeparator20"; - this.toolStripSeparator20.Size = new System.Drawing.Size(159, 6); + this.toolStripSeparator20.Size = new System.Drawing.Size(175, 6); // // screenshotToolStripMenuItem1 // this.screenshotToolStripMenuItem1.Name = "screenshotToolStripMenuItem1"; - this.screenshotToolStripMenuItem1.Size = new System.Drawing.Size(162, 22); + this.screenshotToolStripMenuItem1.Size = new System.Drawing.Size(178, 22); this.screenshotToolStripMenuItem1.Text = "Screenshot"; this.screenshotToolStripMenuItem1.Click += new System.EventHandler(this.screenshotToolStripMenuItem1_Click); // // closeROMToolStripMenuItem1 // this.closeROMToolStripMenuItem1.Name = "closeROMToolStripMenuItem1"; - this.closeROMToolStripMenuItem1.Size = new System.Drawing.Size(162, 22); + this.closeROMToolStripMenuItem1.Size = new System.Drawing.Size(178, 22); this.closeROMToolStripMenuItem1.Text = "Close ROM"; this.closeROMToolStripMenuItem1.Click += new System.EventHandler(this.closeROMToolStripMenuItem1_Click); // @@ -1843,6 +1852,7 @@ private System.Windows.Forms.ToolStripSeparator toolStripSeparator20; private System.Windows.Forms.ToolStripMenuItem screenshotToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem closeROMToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem makeMovieBackupToolStripMenuItem; } } diff --git a/BizHawk.MultiClient/MainForm.MenuItems.cs b/BizHawk.MultiClient/MainForm.MenuItems.cs index 21c62fba29..4ffdfd0664 100644 --- a/BizHawk.MultiClient/MainForm.MenuItems.cs +++ b/BizHawk.MultiClient/MainForm.MenuItems.cs @@ -784,6 +784,7 @@ namespace BizHawk.MultiClient contextMenuStrip1.Items[9].Visible = false; contextMenuStrip1.Items[10].Visible = false; contextMenuStrip1.Items[11].Visible = false; + contextMenuStrip1.Items[12].Visible = false; } else { @@ -796,26 +797,34 @@ namespace BizHawk.MultiClient contextMenuStrip1.Items[3].Visible = true; contextMenuStrip1.Items[4].Visible = true; contextMenuStrip1.Items[5].Visible = true; + contextMenuStrip1.Items[6].Visible = false; + contextMenuStrip1.Items[7].Visible = true; } else { contextMenuStrip1.Items[3].Visible = false; contextMenuStrip1.Items[4].Visible = false; contextMenuStrip1.Items[5].Visible = false; + contextMenuStrip1.Items[6].Visible = true; + contextMenuStrip1.Items[7].Visible = true; } - - contextMenuStrip1.Items[6].Visible = true; - contextMenuStrip1.Items[7].Visible = true; - contextMenuStrip1.Items[8].Visible = true; + contextMenuStrip1.Items[8].Visible = true; contextMenuStrip1.Items[9].Visible = true; + contextMenuStrip1.Items[10].Visible = true; contextMenuStrip1.Items[11].Visible = true; + contextMenuStrip1.Items[12].Visible = true; } //TODO: contextMenuStrip1.Items[7].Enabled = false; contextMenuStrip1.Items[8].Enabled = false; + } + + private void makeMovieBackupToolStripMenuItem_Click(object sender, EventArgs e) + { + UserMovie.WriteBackup(); } } } \ No newline at end of file diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 5b0663e821..9d6a613dea 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -2238,6 +2238,6 @@ namespace BizHawk.MultiClient Global.Config.SoundVolume = 0; Global.Sound.ChangeVolume(Global.Config.SoundVolume); Global.RenderPanel.AddMessage("Volume " + Global.Config.SoundVolume.ToString()); - } + } } } \ No newline at end of file diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index 58b1dfe991..bd71dde6c8 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -134,24 +134,36 @@ namespace BizHawk.MultiClient { Directory.CreateDirectory(new FileInfo(Filename).Directory.FullName); if (IsText) - WriteText(); + WriteText(Filename); else - WriteBinary(); + WriteBinary(Filename); } - private void WriteText() + public void WriteBackup() { - if (Filename.Length == 0) return; //Nothing to write + Directory.CreateDirectory(new FileInfo(Filename).Directory.FullName); + string BackupName = Filename; + BackupName = BackupName.Insert(Filename.LastIndexOf("."), String.Format(".{0:yyyy-MM-dd HH.mm.ss}", DateTime.Now)); + Global.RenderPanel.AddMessage("Backup movie saved to " + BackupName); + if (IsText) + WriteText(BackupName); + else + WriteBinary(BackupName); + + } + + private void WriteText(string file) + { + if (file.Length == 0) return; //Nothing to write int length = Log.GetMovieLength(); - using (StreamWriter sw = new StreamWriter(Filename)) + using (StreamWriter sw = new StreamWriter(file)) { foreach (KeyValuePair kvp in Header.HeaderParams) { sw.WriteLine(kvp.Key + " " + kvp.Value); } - for (int x = 0; x < length; x++) { sw.WriteLine(Log.GetFrame(x)); @@ -159,7 +171,7 @@ namespace BizHawk.MultiClient } } - private void WriteBinary() + private void WriteBinary(string file) { }