Backup savestates feature + toggle to turn it off
This commit is contained in:
parent
fc1e5224d8
commit
3fc7e6c95f
|
@ -110,6 +110,7 @@
|
|||
public bool HotkeyConfigAutoTab = true;
|
||||
public bool InputConfigAutoTab = true;
|
||||
public bool ShowLogWindow = false;
|
||||
public bool BackupSavestates = true;
|
||||
|
||||
// Run-Control settings
|
||||
public int FrameProgressDelayMs = 500; //how long until a frame advance hold turns into a frame progress?
|
||||
|
|
|
@ -238,6 +238,7 @@
|
|||
this.toolStripSeparator20 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.screenshotToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.closeROMToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.backupSavestatesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.StatusSlot0.SuspendLayout();
|
||||
this.contextMenuStrip1.SuspendLayout();
|
||||
|
@ -259,7 +260,7 @@
|
|||
this.menuStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(470, 21);
|
||||
this.menuStrip1.Size = new System.Drawing.Size(470, 40);
|
||||
this.menuStrip1.TabIndex = 0;
|
||||
this.menuStrip1.Text = "menuStrip1";
|
||||
this.menuStrip1.MenuDeactivate += new System.EventHandler(this.menuStrip1_MenuDeactivate);
|
||||
|
@ -1111,7 +1112,7 @@
|
|||
//
|
||||
this.controllersToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.GameController;
|
||||
this.controllersToolStripMenuItem.Name = "controllersToolStripMenuItem";
|
||||
this.controllersToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.controllersToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.controllersToolStripMenuItem.Text = "&Controllers...";
|
||||
this.controllersToolStripMenuItem.Click += new System.EventHandler(this.controllersToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -1119,7 +1120,7 @@
|
|||
//
|
||||
this.hotkeysToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.HotKeys;
|
||||
this.hotkeysToolStripMenuItem.Name = "hotkeysToolStripMenuItem";
|
||||
this.hotkeysToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.hotkeysToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.hotkeysToolStripMenuItem.Text = "&Hotkeys...";
|
||||
this.hotkeysToolStripMenuItem.Click += new System.EventHandler(this.hotkeysToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -1127,7 +1128,7 @@
|
|||
//
|
||||
this.messagesToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.MessageConfig;
|
||||
this.messagesToolStripMenuItem.Name = "messagesToolStripMenuItem";
|
||||
this.messagesToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.messagesToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.messagesToolStripMenuItem.Text = "&Messages...";
|
||||
this.messagesToolStripMenuItem.Click += new System.EventHandler(this.messagesToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -1135,7 +1136,7 @@
|
|||
//
|
||||
this.pathsToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.CopyFolderHS;
|
||||
this.pathsToolStripMenuItem.Name = "pathsToolStripMenuItem";
|
||||
this.pathsToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.pathsToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.pathsToolStripMenuItem.Text = "Paths...";
|
||||
this.pathsToolStripMenuItem.Click += new System.EventHandler(this.pathsToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -1143,14 +1144,14 @@
|
|||
//
|
||||
this.soundToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.AudioHS;
|
||||
this.soundToolStripMenuItem.Name = "soundToolStripMenuItem";
|
||||
this.soundToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.soundToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.soundToolStripMenuItem.Text = "&Sound...";
|
||||
this.soundToolStripMenuItem.Click += new System.EventHandler(this.soundToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator9
|
||||
//
|
||||
this.toolStripSeparator9.Name = "toolStripSeparator9";
|
||||
this.toolStripSeparator9.Size = new System.Drawing.Size(146, 6);
|
||||
this.toolStripSeparator9.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// gUIToolStripMenuItem
|
||||
//
|
||||
|
@ -1163,9 +1164,10 @@
|
|||
this.runInBackgroundToolStripMenuItem,
|
||||
this.acceptBackgroundInputToolStripMenuItem,
|
||||
this.singleInstanceModeToolStripMenuItem,
|
||||
this.enableContextMenuToolStripMenuItem});
|
||||
this.enableContextMenuToolStripMenuItem,
|
||||
this.backupSavestatesToolStripMenuItem});
|
||||
this.gUIToolStripMenuItem.Name = "gUIToolStripMenuItem";
|
||||
this.gUIToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.gUIToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.gUIToolStripMenuItem.Text = "GUI";
|
||||
this.gUIToolStripMenuItem.DropDownOpened += new System.EventHandler(this.gUIToolStripMenuItem_DropDownOpened);
|
||||
//
|
||||
|
@ -1256,7 +1258,7 @@
|
|||
this.miSpeed150,
|
||||
this.miSpeed200});
|
||||
this.frameSkipToolStripMenuItem.Name = "frameSkipToolStripMenuItem";
|
||||
this.frameSkipToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.frameSkipToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.frameSkipToolStripMenuItem.Text = "Speed/Skip";
|
||||
this.frameSkipToolStripMenuItem.DropDownOpened += new System.EventHandler(this.frameSkipToolStripMenuItem_DropDownOpened);
|
||||
//
|
||||
|
@ -1399,13 +1401,13 @@
|
|||
// toolStripSeparator10
|
||||
//
|
||||
this.toolStripSeparator10.Name = "toolStripSeparator10";
|
||||
this.toolStripSeparator10.Size = new System.Drawing.Size(146, 6);
|
||||
this.toolStripSeparator10.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// saveConfigToolStripMenuItem
|
||||
//
|
||||
this.saveConfigToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.Save;
|
||||
this.saveConfigToolStripMenuItem.Name = "saveConfigToolStripMenuItem";
|
||||
this.saveConfigToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.saveConfigToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.saveConfigToolStripMenuItem.Text = "Save Config";
|
||||
this.saveConfigToolStripMenuItem.Click += new System.EventHandler(this.saveConfigToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -1413,7 +1415,7 @@
|
|||
//
|
||||
this.loadConfigToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.LoadConfig;
|
||||
this.loadConfigToolStripMenuItem.Name = "loadConfigToolStripMenuItem";
|
||||
this.loadConfigToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
|
||||
this.loadConfigToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.loadConfigToolStripMenuItem.Text = "Load Config";
|
||||
//
|
||||
// toolsToolStripMenuItem
|
||||
|
@ -1932,6 +1934,13 @@
|
|||
this.closeROMToolStripMenuItem1.Text = "Close ROM";
|
||||
this.closeROMToolStripMenuItem1.Click += new System.EventHandler(this.closeROMToolStripMenuItem1_Click);
|
||||
//
|
||||
// backupSavestatesToolStripMenuItem
|
||||
//
|
||||
this.backupSavestatesToolStripMenuItem.Name = "backupSavestatesToolStripMenuItem";
|
||||
this.backupSavestatesToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
|
||||
this.backupSavestatesToolStripMenuItem.Text = "Backup Savestates";
|
||||
this.backupSavestatesToolStripMenuItem.Click += new System.EventHandler(this.backupSavestatesToolStripMenuItem_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
|
||||
|
@ -2171,6 +2180,7 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem stopAVIToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripStatusLabel AVIStatusLabel;
|
||||
private System.Windows.Forms.ToolStripMenuItem restartMovieToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem backupSavestatesToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1088,6 +1088,7 @@ namespace BizHawk.MultiClient
|
|||
acceptBackgroundInputToolStripMenuItem.Checked = Global.Config.AcceptBackgroundInput;
|
||||
singleInstanceModeToolStripMenuItem.Checked = Global.Config.SingleInstanceMode;
|
||||
enableContextMenuToolStripMenuItem.Checked = Global.Config.ShowContextMenu;
|
||||
backupSavestatesToolStripMenuItem.Checked = Global.Config.BackupSavestates;
|
||||
}
|
||||
|
||||
private void MainForm_Load(object sender, EventArgs e)
|
||||
|
@ -1290,5 +1291,10 @@ namespace BizHawk.MultiClient
|
|||
exit = true;
|
||||
base.OnClosed(e);
|
||||
}
|
||||
|
||||
private void backupSavestatesToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.BackupSavestates ^= true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1569,6 +1569,16 @@ namespace BizHawk.MultiClient
|
|||
if (file.Directory.Exists == false)
|
||||
file.Directory.Create();
|
||||
|
||||
//Make backup first
|
||||
if (Global.Config.BackupSavestates && file.Exists == true)
|
||||
{
|
||||
string backup = path + ".bak";
|
||||
var backupFile = new FileInfo(backup);
|
||||
if (backupFile.Exists == true)
|
||||
backupFile.Delete();
|
||||
file.CopyTo(backup);
|
||||
}
|
||||
|
||||
var writer = new StreamWriter(path);
|
||||
SaveStateFile(writer, name);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue