Save slot system in status bar, shows which slots have a file associated with them, which slot is currently selected, and clicking loads the state
This commit is contained in:
parent
b5ecda4f3e
commit
2b661b52ba
|
@ -266,6 +266,7 @@
|
||||||
<Compile Include="RecordMovie.Designer.cs">
|
<Compile Include="RecordMovie.Designer.cs">
|
||||||
<DependentUpon>RecordMovie.cs</DependentUpon>
|
<DependentUpon>RecordMovie.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="SavestateManager.cs" />
|
||||||
<Compile Include="Throttle.cs" />
|
<Compile Include="Throttle.cs" />
|
||||||
<Compile Include="config\HotkeyWindow.cs">
|
<Compile Include="config\HotkeyWindow.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
|
|
|
@ -199,11 +199,22 @@
|
||||||
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
this.StatusSlot0 = new System.Windows.Forms.StatusStrip();
|
||||||
this.DumpError = new System.Windows.Forms.ToolStripDropDownButton();
|
this.DumpError = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.EmuStatus = new System.Windows.Forms.ToolStripStatusLabel();
|
this.EmuStatus = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.PlayRecordStatus = new System.Windows.Forms.ToolStripDropDownButton();
|
this.PlayRecordStatus = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.PauseStrip = new System.Windows.Forms.ToolStripDropDownButton();
|
this.PauseStrip = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
|
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot1 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot2 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot3 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot4 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot5 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot6 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot7 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot8 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot9 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.StatusSlot10 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.openRomToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.openRomToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.loadLastROMToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.loadLastROMToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -221,7 +232,7 @@
|
||||||
this.screenshotToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.screenshotToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.closeROMToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.closeROMToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
this.statusStrip1.SuspendLayout();
|
this.StatusSlot0.SuspendLayout();
|
||||||
this.contextMenuStrip1.SuspendLayout();
|
this.contextMenuStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -1575,19 +1586,30 @@
|
||||||
this.aboutToolStripMenuItem.Text = "&About";
|
this.aboutToolStripMenuItem.Text = "&About";
|
||||||
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
|
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// statusStrip1
|
// StatusSlot0
|
||||||
//
|
//
|
||||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.StatusSlot0.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.DumpError,
|
this.DumpError,
|
||||||
this.EmuStatus,
|
this.EmuStatus,
|
||||||
this.PlayRecordStatus,
|
this.PlayRecordStatus,
|
||||||
this.PauseStrip});
|
this.PauseStrip,
|
||||||
this.statusStrip1.Location = new System.Drawing.Point(0, 386);
|
this.toolStripStatusLabel1,
|
||||||
this.statusStrip1.Name = "statusStrip1";
|
this.StatusSlot1,
|
||||||
this.statusStrip1.Size = new System.Drawing.Size(470, 22);
|
this.StatusSlot2,
|
||||||
this.statusStrip1.SizingGrip = false;
|
this.StatusSlot3,
|
||||||
this.statusStrip1.TabIndex = 1;
|
this.StatusSlot4,
|
||||||
this.statusStrip1.Text = "statusStrip1";
|
this.StatusSlot5,
|
||||||
|
this.StatusSlot6,
|
||||||
|
this.StatusSlot7,
|
||||||
|
this.StatusSlot8,
|
||||||
|
this.StatusSlot9,
|
||||||
|
this.StatusSlot10});
|
||||||
|
this.StatusSlot0.Location = new System.Drawing.Point(0, 386);
|
||||||
|
this.StatusSlot0.Name = "StatusSlot0";
|
||||||
|
this.StatusSlot0.Size = new System.Drawing.Size(470, 22);
|
||||||
|
this.StatusSlot0.SizingGrip = false;
|
||||||
|
this.StatusSlot0.TabIndex = 1;
|
||||||
|
this.StatusSlot0.Text = "0";
|
||||||
//
|
//
|
||||||
// DumpError
|
// DumpError
|
||||||
//
|
//
|
||||||
|
@ -1626,6 +1648,83 @@
|
||||||
this.PauseStrip.Text = "toolStripDropDownButton1";
|
this.PauseStrip.Text = "toolStripDropDownButton1";
|
||||||
this.PauseStrip.ToolTipText = "Emulator is paused";
|
this.PauseStrip.ToolTipText = "Emulator is paused";
|
||||||
//
|
//
|
||||||
|
// toolStripStatusLabel1
|
||||||
|
//
|
||||||
|
this.toolStripStatusLabel1.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
|
||||||
|
this.toolStripStatusLabel1.Size = new System.Drawing.Size(56, 17);
|
||||||
|
this.toolStripStatusLabel1.Text = "Save slots";
|
||||||
|
//
|
||||||
|
// StatusSlot1
|
||||||
|
//
|
||||||
|
this.StatusSlot1.Name = "StatusSlot1";
|
||||||
|
this.StatusSlot1.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot1.Text = "1";
|
||||||
|
this.StatusSlot1.Click += new System.EventHandler(this.StatusSlot1_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot2
|
||||||
|
//
|
||||||
|
this.StatusSlot2.Name = "StatusSlot2";
|
||||||
|
this.StatusSlot2.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot2.Text = "2";
|
||||||
|
this.StatusSlot2.Click += new System.EventHandler(this.StatusSlot2_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot3
|
||||||
|
//
|
||||||
|
this.StatusSlot3.Name = "StatusSlot3";
|
||||||
|
this.StatusSlot3.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot3.Text = "3";
|
||||||
|
this.StatusSlot3.Click += new System.EventHandler(this.StatusSlot3_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot4
|
||||||
|
//
|
||||||
|
this.StatusSlot4.Name = "StatusSlot4";
|
||||||
|
this.StatusSlot4.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot4.Text = "4";
|
||||||
|
this.StatusSlot4.Click += new System.EventHandler(this.StatusSlot4_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot5
|
||||||
|
//
|
||||||
|
this.StatusSlot5.Name = "StatusSlot5";
|
||||||
|
this.StatusSlot5.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot5.Text = "5";
|
||||||
|
this.StatusSlot5.Click += new System.EventHandler(this.StatusSlot5_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot6
|
||||||
|
//
|
||||||
|
this.StatusSlot6.Name = "StatusSlot6";
|
||||||
|
this.StatusSlot6.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot6.Text = "6";
|
||||||
|
this.StatusSlot6.Click += new System.EventHandler(this.StatusSlot6_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot7
|
||||||
|
//
|
||||||
|
this.StatusSlot7.Name = "StatusSlot7";
|
||||||
|
this.StatusSlot7.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot7.Text = "7";
|
||||||
|
this.StatusSlot7.Click += new System.EventHandler(this.StatusSlot7_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot8
|
||||||
|
//
|
||||||
|
this.StatusSlot8.Name = "StatusSlot8";
|
||||||
|
this.StatusSlot8.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot8.Text = "8";
|
||||||
|
this.StatusSlot8.Click += new System.EventHandler(this.StatusSlot8_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot9
|
||||||
|
//
|
||||||
|
this.StatusSlot9.Name = "StatusSlot9";
|
||||||
|
this.StatusSlot9.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot9.Text = "9";
|
||||||
|
this.StatusSlot9.Click += new System.EventHandler(this.StatusSlot9_Click);
|
||||||
|
//
|
||||||
|
// StatusSlot10
|
||||||
|
//
|
||||||
|
this.StatusSlot10.Name = "StatusSlot10";
|
||||||
|
this.StatusSlot10.Size = new System.Drawing.Size(13, 17);
|
||||||
|
this.StatusSlot10.Text = "0";
|
||||||
|
this.StatusSlot10.Click += new System.EventHandler(this.StatusSlot10_Click);
|
||||||
|
//
|
||||||
// contextMenuStrip1
|
// contextMenuStrip1
|
||||||
//
|
//
|
||||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
@ -1757,7 +1856,7 @@
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(470, 408);
|
this.ClientSize = new System.Drawing.Size(470, 408);
|
||||||
this.Controls.Add(this.statusStrip1);
|
this.Controls.Add(this.StatusSlot0);
|
||||||
this.Controls.Add(this.menuStrip1);
|
this.Controls.Add(this.menuStrip1);
|
||||||
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
@ -1773,8 +1872,8 @@
|
||||||
this.Activated += new System.EventHandler(this.MainForm_Activated);
|
this.Activated += new System.EventHandler(this.MainForm_Activated);
|
||||||
this.menuStrip1.ResumeLayout(false);
|
this.menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.PerformLayout();
|
this.menuStrip1.PerformLayout();
|
||||||
this.statusStrip1.ResumeLayout(false);
|
this.StatusSlot0.ResumeLayout(false);
|
||||||
this.statusStrip1.PerformLayout();
|
this.StatusSlot0.PerformLayout();
|
||||||
this.contextMenuStrip1.ResumeLayout(false);
|
this.contextMenuStrip1.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
@ -1920,7 +2019,7 @@
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolBoxToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem toolBoxToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
|
||||||
private System.Windows.Forms.ToolStripMenuItem switchToFullscreenToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem switchToFullscreenToolStripMenuItem;
|
||||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
private System.Windows.Forms.StatusStrip StatusSlot0;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel EmuStatus;
|
private System.Windows.Forms.ToolStripStatusLabel EmuStatus;
|
||||||
private System.Windows.Forms.ToolStripMenuItem messagesToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem messagesToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tI83ToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem tI83ToolStripMenuItem;
|
||||||
|
@ -1973,6 +2072,17 @@
|
||||||
private MenuStripEx menuStrip1;
|
private MenuStripEx menuStrip1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem gBToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem gBToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem debuggerToolStripMenuItem1;
|
private System.Windows.Forms.ToolStripMenuItem debuggerToolStripMenuItem1;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot1;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot2;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot3;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot4;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot5;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot6;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot7;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot8;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot9;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel StatusSlot10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -192,60 +192,70 @@ namespace BizHawk.MultiClient
|
||||||
private void selectSlot1ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot1ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 1;
|
SaveSlot = 1;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot2ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot2ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 2;
|
SaveSlot = 2;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot3ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot3ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 3;
|
SaveSlot = 3;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot4ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot4ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 4;
|
SaveSlot = 4;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot5ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot5ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 5;
|
SaveSlot = 5;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot6ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot6ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 6;
|
SaveSlot = 6;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot7ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot7ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 7;
|
SaveSlot = 7;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot8ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot8ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 8;
|
SaveSlot = 8;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot9ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot9ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 9;
|
SaveSlot = 9;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectSlot10ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void selectSlot10ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SaveSlot = 0;
|
SaveSlot = 0;
|
||||||
|
UpdateStatusSlots();
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -694,7 +704,7 @@ namespace BizHawk.MultiClient
|
||||||
displayStatusBarToolStripMenuItem.Checked = Global.Config.DisplayStatusBar;
|
displayStatusBarToolStripMenuItem.Checked = Global.Config.DisplayStatusBar;
|
||||||
if (!InFullscreen)
|
if (!InFullscreen)
|
||||||
{
|
{
|
||||||
statusStrip1.Visible = Global.Config.DisplayStatusBar;
|
StatusSlot0.Visible = Global.Config.DisplayStatusBar;
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
FrameBufferResized();
|
FrameBufferResized();
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ namespace BizHawk.MultiClient
|
||||||
private Control renderTarget;
|
private Control renderTarget;
|
||||||
private RetainedViewportPanel retainedPanel;
|
private RetainedViewportPanel retainedPanel;
|
||||||
public string CurrentlyOpenRom;
|
public string CurrentlyOpenRom;
|
||||||
|
SavestateManager StateSlots = new SavestateManager();
|
||||||
|
|
||||||
//Movie variables
|
//Movie variables
|
||||||
public Movie InputLog = new Movie("", MOVIEMODE.INACTIVE);
|
public Movie InputLog = new Movie("", MOVIEMODE.INACTIVE);
|
||||||
|
@ -68,7 +69,7 @@ namespace BizHawk.MultiClient
|
||||||
public MainForm(string[] args)
|
public MainForm(string[] args)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
UpdateStatusSlots();
|
||||||
//in order to allow late construction of this database, we hook up a delegate here to dearchive the data and provide it on demand
|
//in order to allow late construction of this database, we hook up a delegate here to dearchive the data and provide it on demand
|
||||||
//we could background thread this later instead if we wanted to be real clever
|
//we could background thread this later instead if we wanted to be real clever
|
||||||
NES.BootGodDB.GetDatabaseBytes = () =>
|
NES.BootGodDB.GetDatabaseBytes = () =>
|
||||||
|
@ -210,7 +211,7 @@ namespace BizHawk.MultiClient
|
||||||
this.Location = new Point(Global.Config.MainWndx, Global.Config.MainWndy);
|
this.Location = new Point(Global.Config.MainWndx, Global.Config.MainWndy);
|
||||||
|
|
||||||
if (Global.Config.DisplayStatusBar == false)
|
if (Global.Config.DisplayStatusBar == false)
|
||||||
statusStrip1.Visible = false;
|
StatusSlot0.Visible = false;
|
||||||
else
|
else
|
||||||
displayStatusBarToolStripMenuItem.Checked = true;
|
displayStatusBarToolStripMenuItem.Checked = true;
|
||||||
|
|
||||||
|
@ -909,6 +910,7 @@ namespace BizHawk.MultiClient
|
||||||
Cheats1.Restart();
|
Cheats1.Restart();
|
||||||
CurrentlyOpenRom = file.CanonicalFullPath;
|
CurrentlyOpenRom = file.CanonicalFullPath;
|
||||||
HandlePlatformMenus();
|
HandlePlatformMenus();
|
||||||
|
UpdateStatusSlots();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1025,6 +1027,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
SaveSlot = i;
|
SaveSlot = i;
|
||||||
SaveSlotSelectedMessage();
|
SaveSlotSelectedMessage();
|
||||||
|
UpdateStatusSlots();
|
||||||
Global.ClientControls.UnpressButton("SelectSlot" + i.ToString());
|
Global.ClientControls.UnpressButton("SelectSlot" + i.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1454,6 +1457,7 @@ namespace BizHawk.MultiClient
|
||||||
HandleMovieSaveState(writer);
|
HandleMovieSaveState(writer);
|
||||||
writer.Close();
|
writer.Close();
|
||||||
Global.RenderPanel.AddMessage("Saved state: " + name);
|
Global.RenderPanel.AddMessage("Saved state: " + name);
|
||||||
|
UpdateStatusSlots();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveStateAs()
|
private void SaveStateAs()
|
||||||
|
@ -1476,6 +1480,7 @@ namespace BizHawk.MultiClient
|
||||||
HandleMovieSaveState(writer);
|
HandleMovieSaveState(writer);
|
||||||
writer.Close();
|
writer.Close();
|
||||||
Global.RenderPanel.AddMessage(sfd.FileName + " saved");
|
Global.RenderPanel.AddMessage(sfd.FileName + " saved");
|
||||||
|
UpdateStatusSlots();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleMovieLoadState(StreamReader reader)
|
private void HandleMovieLoadState(StreamReader reader)
|
||||||
|
@ -1921,7 +1926,7 @@ namespace BizHawk.MultiClient
|
||||||
FormBorderStyle = FormBorderStyle.None;
|
FormBorderStyle = FormBorderStyle.None;
|
||||||
WindowState = FormWindowState.Maximized;
|
WindowState = FormWindowState.Maximized;
|
||||||
MainMenuStrip.Visible = false;
|
MainMenuStrip.Visible = false;
|
||||||
statusStrip1.Visible = false;
|
StatusSlot0.Visible = false;
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
Global.RenderPanel.Resized = true;
|
Global.RenderPanel.Resized = true;
|
||||||
InFullscreen = true;
|
InFullscreen = true;
|
||||||
|
@ -1931,7 +1936,7 @@ namespace BizHawk.MultiClient
|
||||||
FormBorderStyle = FormBorderStyle.FixedSingle;
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||||
WindowState = FormWindowState.Normal;
|
WindowState = FormWindowState.Normal;
|
||||||
MainMenuStrip.Visible = true;
|
MainMenuStrip.Visible = true;
|
||||||
statusStrip1.Visible = Global.Config.DisplayStatusBar;
|
StatusSlot0.Visible = Global.Config.DisplayStatusBar;
|
||||||
Location = WindowedLocation;
|
Location = WindowedLocation;
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
FrameBufferResized();
|
FrameBufferResized();
|
||||||
|
@ -2044,6 +2049,7 @@ namespace BizHawk.MultiClient
|
||||||
Cheats1.Restart();
|
Cheats1.Restart();
|
||||||
Text = "BizHawk";
|
Text = "BizHawk";
|
||||||
HandlePlatformMenus();
|
HandlePlatformMenus();
|
||||||
|
UpdateStatusSlots();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void frameSkipToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
private void frameSkipToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
||||||
|
@ -2338,5 +2344,54 @@ namespace BizHawk.MultiClient
|
||||||
if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset"))
|
if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset"))
|
||||||
Global.ActiveController.ForceButton("Reset");
|
Global.ActiveController.ForceButton("Reset");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateStatusSlots()
|
||||||
|
{
|
||||||
|
StateSlots.Update();
|
||||||
|
StatusSlot1.Enabled = StateSlots.HasSlot(1);
|
||||||
|
StatusSlot2.Enabled = StateSlots.HasSlot(2);
|
||||||
|
StatusSlot3.Enabled = StateSlots.HasSlot(3);
|
||||||
|
StatusSlot4.Enabled = StateSlots.HasSlot(4);
|
||||||
|
StatusSlot5.Enabled = StateSlots.HasSlot(5);
|
||||||
|
StatusSlot6.Enabled = StateSlots.HasSlot(6);
|
||||||
|
StatusSlot7.Enabled = StateSlots.HasSlot(7);
|
||||||
|
StatusSlot8.Enabled = StateSlots.HasSlot(8);
|
||||||
|
StatusSlot9.Enabled = StateSlots.HasSlot(9);
|
||||||
|
StatusSlot10.Enabled = StateSlots.HasSlot(0);
|
||||||
|
|
||||||
|
|
||||||
|
StatusSlot1.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot2.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot3.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot4.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot5.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot6.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot7.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot8.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot9.BackColor = SystemColors.Control;
|
||||||
|
StatusSlot10.BackColor = SystemColors.Control;
|
||||||
|
|
||||||
|
if (SaveSlot == 0) StatusSlot10.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 1) StatusSlot1.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 2) StatusSlot2.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 3) StatusSlot3.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 4) StatusSlot4.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 5) StatusSlot5.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 6) StatusSlot6.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 7) StatusSlot7.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 8) StatusSlot8.BackColor = SystemColors.ControlLightLight;
|
||||||
|
if (SaveSlot == 9) StatusSlot9.BackColor = SystemColors.ControlLightLight;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StatusSlot1_Click(object sender, EventArgs e) { LoadState("QuickSave1"); }
|
||||||
|
private void StatusSlot2_Click(object sender, EventArgs e) { LoadState("QuickSave2"); }
|
||||||
|
private void StatusSlot3_Click(object sender, EventArgs e) { LoadState("QuickSave3"); }
|
||||||
|
private void StatusSlot4_Click(object sender, EventArgs e) { LoadState("QuickSave4"); }
|
||||||
|
private void StatusSlot5_Click(object sender, EventArgs e) { LoadState("QuickSave5"); }
|
||||||
|
private void StatusSlot6_Click(object sender, EventArgs e) { LoadState("QuickSave6"); }
|
||||||
|
private void StatusSlot7_Click(object sender, EventArgs e) { LoadState("QuickSave7"); }
|
||||||
|
private void StatusSlot8_Click(object sender, EventArgs e) { LoadState("QuickSave8"); }
|
||||||
|
private void StatusSlot9_Click(object sender, EventArgs e) { LoadState("QuickSave9"); }
|
||||||
|
private void StatusSlot10_Click(object sender, EventArgs e) { LoadState("QuickSave0"); }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -120,7 +120,7 @@
|
||||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="StatusSlot0.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>126, 17</value>
|
<value>126, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace BizHawk.MultiClient
|
||||||
|
{
|
||||||
|
class SavestateManager
|
||||||
|
{
|
||||||
|
private bool[] slots = new bool[10];
|
||||||
|
|
||||||
|
public SavestateManager()
|
||||||
|
{
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update()
|
||||||
|
{
|
||||||
|
string path;
|
||||||
|
if (Global.Game == null || Global.Emulator == null)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < 10; x++)
|
||||||
|
slots[x] = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int x = 0; x < 10; x++)
|
||||||
|
{
|
||||||
|
path = Global.Game.SaveStatePrefix + "." + "QuickSave" + x + ".State";
|
||||||
|
var file = new FileInfo(path);
|
||||||
|
if (file.Directory.Exists == false)
|
||||||
|
file.Directory.Create();
|
||||||
|
slots[x] = file.Exists;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HasSavestateSlots()
|
||||||
|
{
|
||||||
|
Update();
|
||||||
|
for (int x = 0; x < 10; x++)
|
||||||
|
{
|
||||||
|
if (slots[x]) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HasSlot(int slot)
|
||||||
|
{
|
||||||
|
if (slot < 0 || slot > 10) return false;
|
||||||
|
|
||||||
|
Update();
|
||||||
|
return slots[slot];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue