Cheat Window - Auto save .cht file, generate filename based on rom name if user hasn't chosen one

This commit is contained in:
andres.delikat 2011-03-21 00:03:40 +00:00
parent b3f212f745
commit 2879154344
3 changed files with 41 additions and 7 deletions

View File

@ -103,6 +103,7 @@
public bool CheatsSaveWindowPosition = true;
public bool DisableCheatsOnLoad = false;
public bool LoadCheatFileByGame = true;
public bool CheatsAutoSaveOnClose = true;
public RecentFiles RecentCheats = new RecentFiles(8);
public int CheatsWndx = -1;
public int CheatsWndy = -1;

View File

@ -96,6 +96,7 @@
this.toggleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeSelectedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.autoloadDialogToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveCheatsOnCloseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.CheatsMenu.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.AddCheatGroup.SuspendLayout();
@ -282,10 +283,11 @@
// optionsToolStripMenuItem
//
this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.saveWindowPositionToolStripMenuItem,
this.LoadCheatFileByGameToolStripMenuItem,
this.saveCheatsOnCloseToolStripMenuItem,
this.CheatsOnOffLoadToolStripMenuItem,
this.autoloadDialogToolStripMenuItem,
this.saveWindowPositionToolStripMenuItem,
this.toolStripSeparator5,
this.restoreWindowSizeToolStripMenuItem});
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
@ -694,6 +696,13 @@
this.autoloadDialogToolStripMenuItem.Text = "Auto-load Dialog";
this.autoloadDialogToolStripMenuItem.Click += new System.EventHandler(this.autoloadDialogToolStripMenuItem_Click);
//
// saveCheatsOnCloseToolStripMenuItem
//
this.saveCheatsOnCloseToolStripMenuItem.Name = "saveCheatsOnCloseToolStripMenuItem";
this.saveCheatsOnCloseToolStripMenuItem.Size = new System.Drawing.Size(204, 22);
this.saveCheatsOnCloseToolStripMenuItem.Text = "Save Cheats on Close";
this.saveCheatsOnCloseToolStripMenuItem.Click += new System.EventHandler(this.saveCheatsOnCloseToolStripMenuItem_Click);
//
// Cheats
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -790,5 +799,6 @@
private System.Windows.Forms.ToolStripMenuItem toggleToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem removeSelectedToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem autoloadDialogToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveCheatsOnCloseToolStripMenuItem;
}
}

View File

@ -13,11 +13,9 @@ namespace BizHawk.MultiClient
{
public partial class Cheats : Form
{
//Auto-save cheat file (generating file name based on game name)
//User option to toggle this (on by default)
//Implement Freeze functions in all memory domains
//Restore Window Size should restore column order as well
//TODO: use currently selected memory domain! - line 50
//TODO: use currently selected memory domain! - line 71
//context menu - enable/disable highlight dependent items
int defaultWidth; //For saving the default size of the dialog, so the user can restore if desired
@ -47,7 +45,7 @@ namespace BizHawk.MultiClient
/// </summary>
public bool AttemptLoadCheatFile()
{
string CheatFile = Global.Config.LastRomPath + "\\" + Global.Game.Name + ".cht";
string CheatFile = MakeDefaultFilename();
var file = new FileInfo(CheatFile);
if (file.Exists == false)
@ -59,6 +57,11 @@ namespace BizHawk.MultiClient
}
}
private string MakeDefaultFilename()
{
return Global.Config.LastRomPath + "\\" + Global.Game.Name + ".cht";
}
private void ClearFields()
{
NameBox.Text = "";
@ -85,8 +88,11 @@ namespace BizHawk.MultiClient
protected override void OnClosing(CancelEventArgs e)
{
if (!AskSave())
e.Cancel = true;
if (!Global.Config.CheatsAutoSaveOnClose)
{
if (!AskSave())
e.Cancel = true;
}
base.OnClosing(e);
}
@ -257,6 +263,17 @@ namespace BizHawk.MultiClient
Global.Config.CheatsValueWidth = CheatListView.Columns[2].Width;
Global.Config.CheatsDomainWidth = CheatListView.Columns[3].Width;
Global.Config.CheatsOnWidth = CheatListView.Columns[4].Width;
if (Global.Config.CheatsAutoSaveOnClose)
{
if (changes)
{
if (currentCheatFile.Length == 0)
currentCheatFile = MakeDefaultFilename();
SaveCheatFile(currentCheatFile);
}
}
}
private void DisplayCheatsList()
@ -706,6 +723,7 @@ namespace BizHawk.MultiClient
CheatsOnOffLoadToolStripMenuItem.Checked = Global.Config.DisableCheatsOnLoad;
autoloadDialogToolStripMenuItem.Checked = Global.Config.AutoLoadCheats;
LoadCheatFileByGameToolStripMenuItem.Checked = Global.Config.LoadCheatFileByGame;
saveCheatsOnCloseToolStripMenuItem.Checked = Global.Config.CheatsAutoSaveOnClose;
}
private void DuplicateCheat()
@ -930,5 +948,10 @@ namespace BizHawk.MultiClient
{
Global.Config.LoadCheatFileByGame ^= true;
}
private void saveCheatsOnCloseToolStripMenuItem_Click(object sender, EventArgs e)
{
Global.Config.CheatsAutoSaveOnClose ^= true;
}
}
}