Tastudio - add menu items for created Savestate-anchored and SaveRam-anchored movies instead of them only appearing in the context menu under narrow conditions

This commit is contained in:
adelikat 2015-09-05 19:25:27 -04:00
parent 4f58ec09fd
commit 30f170312d
3 changed files with 56 additions and 23 deletions

View File

@ -35,6 +35,9 @@ namespace BizHawk.Client.EmuHawk
this.TASMenu = new MenuStripEx();
this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.NewTASMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.NewFromSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.NewFromNowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.NewFromCurrentSaveRamMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.OpenTASMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SaveTASMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SaveAsTASMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -218,6 +221,7 @@ namespace BizHawk.Client.EmuHawk
//
this.FileSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.NewTASMenuItem,
this.NewFromSubMenu,
this.OpenTASMenuItem,
this.SaveTASMenuItem,
this.SaveAsTASMenuItem,
@ -243,6 +247,30 @@ namespace BizHawk.Client.EmuHawk
this.NewTASMenuItem.Text = "&New";
this.NewTASMenuItem.Click += new System.EventHandler(this.NewTasMenuItem_Click);
//
// NewFromSubMenu
//
this.NewFromSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.NewFromNowMenuItem,
this.NewFromCurrentSaveRamMenuItem});
this.NewFromSubMenu.Name = "NewFromSubMenu";
this.NewFromSubMenu.Size = new System.Drawing.Size(203, 22);
this.NewFromSubMenu.Text = "New From";
this.NewFromSubMenu.DropDownOpened += new System.EventHandler(this.NewFromSubMenu_DropDownOpened);
//
// NewFromNowMenuItem
//
this.NewFromNowMenuItem.Name = "NewFromNowMenuItem";
this.NewFromNowMenuItem.Size = new System.Drawing.Size(165, 22);
this.NewFromNowMenuItem.Text = "&Now";
this.NewFromNowMenuItem.Click += new System.EventHandler(this.StartNewProjectFromNowMenuItem_Click);
//
// NewFromCurrentSaveRamMenuItem
//
this.NewFromCurrentSaveRamMenuItem.Name = "NewFromCurrentSaveRamMenuItem";
this.NewFromCurrentSaveRamMenuItem.Size = new System.Drawing.Size(165, 22);
this.NewFromCurrentSaveRamMenuItem.Text = "&Current SaveRam";
this.NewFromCurrentSaveRamMenuItem.Click += new System.EventHandler(this.StartANewProjectFromSaveRamMenuItem_Click);
//
// OpenTASMenuItem
//
this.OpenTASMenuItem.Name = "OpenTASMenuItem";
@ -1249,7 +1277,7 @@ namespace BizHawk.Client.EmuHawk
this.StartNewProjectFromNowMenuItem,
this.StartANewProjectFromSaveRamMenuItem});
this.RightClickMenu.Name = "RightClickMenu";
this.RightClickMenu.Size = new System.Drawing.Size(273, 480);
this.RightClickMenu.Size = new System.Drawing.Size(273, 458);
this.RightClickMenu.Opened += new System.EventHandler(this.RightClickMenu_Opened);
//
// SetMarkersContextMenuItem
@ -1688,5 +1716,8 @@ namespace BizHawk.Client.EmuHawk
private System.Windows.Forms.ToolStripMenuItem denoteStatesWithBGColorToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem denoteMarkersWithIconsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem denoteMarkersWithBGColorToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem NewFromSubMenu;
private System.Windows.Forms.ToolStripMenuItem NewFromNowMenuItem;
private System.Windows.Forms.ToolStripMenuItem NewFromCurrentSaveRamMenuItem;
}
}

View File

@ -1046,39 +1046,30 @@ namespace BizHawk.Client.EmuHawk
private void StartNewProjectFromNowMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedRows.Count() == 1 &&
!CurrentTasMovie.StartsFromSaveRam)
if (AskSaveChanges())
{
if (AskSaveChanges())
{
int index = Emulator.Frame;
int index = Emulator.Frame;
TasMovie newProject = CurrentTasMovie.ConvertToSavestateAnchoredMovie(
index, (byte[])StatableEmulator.SaveStateBinary().Clone());
TasMovie newProject = CurrentTasMovie.ConvertToSavestateAnchoredMovie(
index, (byte[])StatableEmulator.SaveStateBinary().Clone());
GlobalWin.MainForm.PauseEmulator();
LoadFile(new FileInfo(newProject.Filename));
}
GlobalWin.MainForm.PauseEmulator();
LoadFile(new FileInfo(newProject.Filename));
}
}
private void StartANewProjectFromSaveRamMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedRows.Count() == 1 &&
!CurrentTasMovie.StartsFromSavestate &&
SaveRamEmulator != null)
if (AskSaveChanges())
{
if (AskSaveChanges())
{
int index = TasView.SelectedRows.First();
GoToFrame(index);
int index = TasView.SelectedRows.First();
GoToFrame(index);
TasMovie newProject = CurrentTasMovie.ConvertToSaveRamAnchoredMovie(
SaveRamEmulator.CloneSaveRam());
TasMovie newProject = CurrentTasMovie.ConvertToSaveRamAnchoredMovie(
SaveRamEmulator.CloneSaveRam());
GlobalWin.MainForm.PauseEmulator();
LoadFile(new FileInfo(newProject.Filename));
}
GlobalWin.MainForm.PauseEmulator();
LoadFile(new FileInfo(newProject.Filename));
}
}

View File

@ -927,5 +927,16 @@ namespace BizHawk.Client.EmuHawk
RefreshDialog();
}
}
private void NewFromSubMenu_DropDownOpened(object sender, EventArgs e)
{
NewFromNowMenuItem.Enabled =
CurrentTasMovie.InputLogLength > 0
&& !CurrentTasMovie.StartsFromSaveRam;
NewFromCurrentSaveRamMenuItem.Enabled =
CurrentTasMovie.InputLogLength > 0
&& SaveRamEmulator != null;
}
}
}