Tastudio - wire up the Lag Frames to Hide UI, and have it save in the Tasproj file
This commit is contained in:
parent
817b9d83aa
commit
a4ce9de091
|
@ -36,7 +36,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
private int? _currentX;
|
||||
private int? _currentY;
|
||||
|
||||
public int _lagFramesToHide = 1;
|
||||
// Hiding lag frames (Mainly intended for 30fps play.)
|
||||
public int LagFramesToHide { get; set; }
|
||||
private int[] lagFrames = new int[50]; // Large enough value that it shouldn't ever need resizing.
|
||||
|
||||
private IntPtr RotatedFont;
|
||||
|
@ -491,8 +492,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
// TODO: don't silently fail, inform the user somehow
|
||||
if (settings is InputRollSettings)
|
||||
{
|
||||
_columns = (settings as InputRollSettings).Columns;
|
||||
HorizontalOrientation = (settings as InputRollSettings).HorizontalOrientation;
|
||||
var rollSettings = settings as InputRollSettings;
|
||||
_columns = rollSettings.Columns;
|
||||
HorizontalOrientation = rollSettings.HorizontalOrientation;
|
||||
LagFramesToHide = rollSettings.LagFramesToHide;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -504,7 +507,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
return new InputRollSettings
|
||||
{
|
||||
Columns = _columns,
|
||||
HorizontalOrientation = HorizontalOrientation
|
||||
HorizontalOrientation = HorizontalOrientation,
|
||||
LagFramesToHide = LagFramesToHide
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -513,6 +517,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public RollColumns Columns { get; set; }
|
||||
public bool HorizontalOrientation { get; set; }
|
||||
public int LagFramesToHide { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -2008,7 +2013,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
lagFrames[i] = 0;
|
||||
if (!showNext)
|
||||
{
|
||||
for (; lagFrames[i] < _lagFramesToHide; lagFrames[i]++)
|
||||
for (; lagFrames[i] < LagFramesToHide; lagFrames[i]++)
|
||||
{
|
||||
if (!QueryFrameLag(FirstVisibleRow + i + f))
|
||||
break;
|
||||
|
@ -2020,7 +2025,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (!QueryFrameLag(FirstVisibleRow + i + f))
|
||||
showNext = false;
|
||||
}
|
||||
if (lagFrames[i] == _lagFramesToHide && QueryFrameLag(FirstVisibleRow + i + f))
|
||||
if (lagFrames[i] == LagFramesToHide && QueryFrameLag(FirstVisibleRow + i + f))
|
||||
{
|
||||
showNext = true;
|
||||
}
|
||||
|
@ -2036,14 +2041,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
do
|
||||
{
|
||||
count++;
|
||||
} while (QueryFrameLag(FirstVisibleRow - count) && count <= _lagFramesToHide);
|
||||
} while (QueryFrameLag(FirstVisibleRow - count) && count <= LagFramesToHide);
|
||||
count--;
|
||||
// Count forward
|
||||
int fCount = -1;
|
||||
do
|
||||
{
|
||||
fCount++;
|
||||
} while (QueryFrameLag(FirstVisibleRow + fCount) && count + fCount < _lagFramesToHide);
|
||||
} while (QueryFrameLag(FirstVisibleRow + fCount) && count + fCount < LagFramesToHide);
|
||||
lagFrames[0] = fCount;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -95,10 +95,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
this.DefaultStateSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.SettingsSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.RotateMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.hideLagFramesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.HideLagFramesSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.HideLagFrames0 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.HideLagFrames1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.HideLagFrames2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.HideLagFrames3 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ColumnsSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator19 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.HelpSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -137,7 +138,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
this.StartFromNowSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.StartNewProjectFromNowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.TASMenu.SuspendLayout();
|
||||
this.TasStatusStrip.SuspendLayout();
|
||||
this.MarkerContextMenu.SuspendLayout();
|
||||
|
@ -649,7 +649,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
//
|
||||
this.SettingsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.RotateMenuItem,
|
||||
this.hideLagFramesToolStripMenuItem});
|
||||
this.HideLagFramesSubMenu});
|
||||
this.SettingsSubMenu.Name = "SettingsSubMenu";
|
||||
this.SettingsSubMenu.Size = new System.Drawing.Size(61, 20);
|
||||
this.SettingsSubMenu.Text = "&Settings";
|
||||
|
@ -662,41 +662,52 @@ namespace BizHawk.Client.EmuHawk
|
|||
this.RotateMenuItem.Text = "Rotate";
|
||||
this.RotateMenuItem.Click += new System.EventHandler(this.RotateMenuItem_Click);
|
||||
//
|
||||
// hideLagFramesToolStripMenuItem
|
||||
// HideLagFramesSubMenu
|
||||
//
|
||||
this.hideLagFramesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.allToolStripMenuItem,
|
||||
this.toolStripMenuItem2,
|
||||
this.toolStripMenuItem3,
|
||||
this.toolStripMenuItem4});
|
||||
this.hideLagFramesToolStripMenuItem.Name = "hideLagFramesToolStripMenuItem";
|
||||
this.hideLagFramesToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.hideLagFramesToolStripMenuItem.Text = "Hide Lag Frames";
|
||||
this.HideLagFramesSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.HideLagFrames0,
|
||||
this.HideLagFrames1,
|
||||
this.HideLagFrames2,
|
||||
this.HideLagFrames3});
|
||||
this.HideLagFramesSubMenu.Name = "HideLagFramesSubMenu";
|
||||
this.HideLagFramesSubMenu.Size = new System.Drawing.Size(162, 22);
|
||||
this.HideLagFramesSubMenu.Text = "Hide Lag Frames";
|
||||
this.HideLagFramesSubMenu.DropDownOpened += new System.EventHandler(this.HideLagFramesSubMenu_DropDownOpened);
|
||||
//
|
||||
// allToolStripMenuItem
|
||||
// HideLagFrames0
|
||||
//
|
||||
this.allToolStripMenuItem.CheckOnClick = true;
|
||||
this.allToolStripMenuItem.Name = "allToolStripMenuItem";
|
||||
this.allToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.allToolStripMenuItem.Tag = "";
|
||||
this.allToolStripMenuItem.Text = "All";
|
||||
this.HideLagFrames0.Checked = true;
|
||||
this.HideLagFrames0.CheckOnClick = true;
|
||||
this.HideLagFrames0.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.HideLagFrames0.Name = "HideLagFrames0";
|
||||
this.HideLagFrames0.Size = new System.Drawing.Size(152, 22);
|
||||
this.HideLagFrames0.Tag = "";
|
||||
this.HideLagFrames0.Text = "Don\'t Hide";
|
||||
this.HideLagFrames0.Click += new System.EventHandler(this.HideLagFrames0_Click);
|
||||
//
|
||||
// toolStripMenuItem2
|
||||
// HideLagFrames1
|
||||
//
|
||||
this.toolStripMenuItem2.Checked = true;
|
||||
this.toolStripMenuItem2.CheckOnClick = true;
|
||||
this.toolStripMenuItem2.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||
this.toolStripMenuItem2.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem2.Tag = "";
|
||||
this.toolStripMenuItem2.Text = "0";
|
||||
this.HideLagFrames1.CheckOnClick = true;
|
||||
this.HideLagFrames1.Name = "HideLagFrames1";
|
||||
this.HideLagFrames1.Size = new System.Drawing.Size(152, 22);
|
||||
this.HideLagFrames1.Text = "1 (30 fps)";
|
||||
this.HideLagFrames1.Click += new System.EventHandler(this.HideLagFrames1_Click);
|
||||
//
|
||||
// toolStripMenuItem3
|
||||
// HideLagFrames2
|
||||
//
|
||||
this.toolStripMenuItem3.CheckOnClick = true;
|
||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||
this.toolStripMenuItem3.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem3.Text = "1";
|
||||
this.HideLagFrames2.Name = "HideLagFrames2";
|
||||
this.HideLagFrames2.Size = new System.Drawing.Size(152, 22);
|
||||
this.HideLagFrames2.Text = "2 (20 fps)";
|
||||
this.HideLagFrames2.Click += new System.EventHandler(this.HideLagFrames2_Click);
|
||||
//
|
||||
// HideLagFrames3
|
||||
//
|
||||
this.HideLagFrames3.CheckOnClick = true;
|
||||
this.HideLagFrames3.Name = "HideLagFrames3";
|
||||
this.HideLagFrames3.Size = new System.Drawing.Size(152, 22);
|
||||
this.HideLagFrames3.Tag = "";
|
||||
this.HideLagFrames3.Text = "3 (15fps)";
|
||||
this.HideLagFrames3.Click += new System.EventHandler(this.HideLagFrames3_Click);
|
||||
//
|
||||
// ColumnsSubMenu
|
||||
//
|
||||
|
@ -751,7 +762,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
this.TasView.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.TasView.FullRowSelect = true;
|
||||
this.TasView.HorizontalOrientation = false;
|
||||
this.TasView.LastVisibleRow = 27;
|
||||
this.TasView.LagFramesToHide = 0;
|
||||
this.TasView.LastVisibleRow = 24;
|
||||
this.TasView.Location = new System.Drawing.Point(8, 27);
|
||||
this.TasView.MaxCharactersInHorizontal = 1;
|
||||
this.TasView.MultiSelect = false;
|
||||
|
@ -1022,12 +1034,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Markers";
|
||||
//
|
||||
// toolStripMenuItem4
|
||||
//
|
||||
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
||||
this.toolStripMenuItem4.Size = new System.Drawing.Size(152, 22);
|
||||
this.toolStripMenuItem4.Text = "2";
|
||||
//
|
||||
// TAStudio
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
|
@ -1165,10 +1171,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
private System.Windows.Forms.ToolStripMenuItem RotateMenuItem;
|
||||
private System.Windows.Forms.ToolStripProgressBar SavingProgressBar;
|
||||
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2;
|
||||
private System.Windows.Forms.ToolStripMenuItem hideLagFramesToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
|
||||
private System.Windows.Forms.ToolStripMenuItem HideLagFramesSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem HideLagFrames3;
|
||||
private System.Windows.Forms.ToolStripMenuItem HideLagFrames0;
|
||||
private System.Windows.Forms.ToolStripMenuItem HideLagFrames1;
|
||||
private System.Windows.Forms.ToolStripMenuItem HideLagFrames2;
|
||||
}
|
||||
}
|
|
@ -21,10 +21,12 @@ namespace BizHawk.Client.EmuHawk
|
|||
private string _floatEditColumn = string.Empty;
|
||||
private int _floatEditRow = -1;
|
||||
private string _floatTypedValue;
|
||||
// SuuperW: Hiding lag frames (Mainly intended for 30fps play.)
|
||||
private bool _hideLagFrames = true; // This toggles if lag frames are hidden. For the number, see InputRoll.cs: _lagFramesToHide
|
||||
// Frames that were lag frames, but are now past the greenzone are shown make editing awkward.
|
||||
// (Showing such frames might be desireable in certain situations, such as when trying to eliminate a lone lag frame.)
|
||||
|
||||
|
||||
private bool HideLagFrames
|
||||
{
|
||||
get { return TasView.LagFramesToHide > 0; }
|
||||
}
|
||||
|
||||
private bool _triggerAutoRestore; // If true, autorestore will be called on mouse up
|
||||
private int? _triggerAutoRestoreFromFrame; // If set and _triggerAutoRestore is true, will clal GoToFrameIfNecessary() with this value
|
||||
|
@ -179,7 +181,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// SuuperW: Used in InputRoll.cs to hide lag frames.
|
||||
private bool TasView_QueryFrameLag(int index)
|
||||
{
|
||||
return _hideLagFrames && CurrentTasMovie[index].Lagged.HasValue && CurrentTasMovie[index].Lagged.Value;
|
||||
return HideLagFrames && CurrentTasMovie[index].Lagged.HasValue && CurrentTasMovie[index].Lagged.Value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -622,12 +622,40 @@ namespace BizHawk.Client.EmuHawk
|
|||
RotateMenuItem.ShortcutKeyDisplayString = TasView.RotateHotkeyStr;
|
||||
}
|
||||
|
||||
private void HideLagFramesSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
HideLagFrames0.Checked = TasView.LagFramesToHide == 0;
|
||||
HideLagFrames1.Checked = TasView.LagFramesToHide == 1;
|
||||
HideLagFrames2.Checked = TasView.LagFramesToHide == 2;
|
||||
HideLagFrames3.Checked = TasView.LagFramesToHide == 3;
|
||||
}
|
||||
|
||||
private void RotateMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
TasView.HorizontalOrientation ^= true;
|
||||
CurrentTasMovie.FlagChanges();
|
||||
}
|
||||
|
||||
private void HideLagFrames0_Click(object sender, EventArgs e)
|
||||
{
|
||||
TasView.LagFramesToHide = 0;
|
||||
}
|
||||
|
||||
private void HideLagFrames1_Click(object sender, EventArgs e)
|
||||
{
|
||||
TasView.LagFramesToHide = 1;
|
||||
}
|
||||
|
||||
private void HideLagFrames2_Click(object sender, EventArgs e)
|
||||
{
|
||||
TasView.LagFramesToHide = 2;
|
||||
}
|
||||
|
||||
private void HideLagFrames3_Click(object sender, EventArgs e)
|
||||
{
|
||||
TasView.LagFramesToHide = 3;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Columns
|
||||
|
|
Loading…
Reference in New Issue