Don't allow the Hard/Soft Menu Item/Hotkeys to be pressed while a movie is in playback mode (fixes issue #79)

This commit is contained in:
adelikat 2012-09-17 23:03:38 +00:00
parent e2a7fd0655
commit 1402eb8470
2 changed files with 34 additions and 7 deletions

View File

@ -1484,11 +1484,32 @@ namespace BizHawk.MultiClient
private void emulationToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
{
rebootCoreToolStripMenuItem.Enabled = !IsNullEmulator();
resetToolStripMenuItem.Enabled = Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset");
hardResetToolStripMenuItem.Enabled = Global.Emulator.ControllerDefinition.BoolButtons.Contains("Power");
if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset") &&
(!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished))
{
resetToolStripMenuItem.Enabled = true;
}
else
{
resetToolStripMenuItem.Enabled = false;
}
if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Power") &&
(!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished))
{
hardResetToolStripMenuItem.Enabled = true;
}
else
{
hardResetToolStripMenuItem.Enabled = false;
}
pauseToolStripMenuItem.Checked = EmulatorPaused;
if (didMenuPause) pauseToolStripMenuItem.Checked = wasPaused;
if (didMenuPause)
{
pauseToolStripMenuItem.Checked = wasPaused;
}
pauseToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.EmulatorPauseBinding;
rebootCoreToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.RebootCoreResetBinding;

View File

@ -2931,8 +2931,11 @@ namespace BizHawk.MultiClient
//is it enough to run this for one frame? maybe..
if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset"))
{
Global.ClickyVirtualPadController.Click("Reset");
Global.OSD.AddMessage("Reset button pressed.");
if (!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished)
{
Global.ClickyVirtualPadController.Click("Reset");
Global.OSD.AddMessage("Reset button pressed.");
}
}
}
@ -2941,8 +2944,11 @@ namespace BizHawk.MultiClient
//is it enough to run this for one frame? maybe..
if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Power"))
{
Global.ClickyVirtualPadController.Click("Power");
Global.OSD.AddMessage("Power button pressed.");
if (!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished)
{
Global.ClickyVirtualPadController.Click("Power");
Global.OSD.AddMessage("Power button pressed.");
}
}
}