Drop int input roll onto tastudio, this causes countless regressions, and possibly crashes, but yeah

This commit is contained in:
adelikat 2014-08-23 15:19:48 +00:00
parent e4937563f6
commit ed26abd944
5 changed files with 32 additions and 48 deletions

View File

@ -1270,7 +1270,9 @@ namespace BizHawk.Client.EmuHawk
{
if (this.Any(c => c.Name == column.Name))
{
throw new InvalidOperationException("A column with this name already exists.");
// The designer sucks, doing nothing for now
return;
//throw new InvalidOperationException("A column with this name already exists.");
}
base.Add(column);
@ -1283,6 +1285,9 @@ namespace BizHawk.Client.EmuHawk
{
if (this.Any(c => c.Name == column.Name))
{
// The designer sucks, doing nothing for now
return;
throw new InvalidOperationException("A column with this name already exists.");
}
}
@ -1368,31 +1373,6 @@ namespace BizHawk.Client.EmuHawk
public string Name { get; set; }
public string Text { get; set; }
public InputType Type { get; set; }
public static bool operator ==(RollColumn column, string name)
{
return column.Name == name;
}
public static bool operator !=(RollColumn column, string name)
{
return column.Name != name;
}
public override int GetHashCode()
{
return Name.GetHashCode();
}
public override bool Equals(object obj)
{
if (obj is string)
{
return Name == (string)obj;
}
return base.Equals(obj);
}
}
public class Cell

View File

@ -101,7 +101,7 @@ namespace BizHawk.Client.EmuHawk
this.EnableTooltipsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.TasView = new BizHawk.Client.EmuHawk.TasListView();
this.TasView = new InputRoll();
this.Frame = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.Log = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.TasStatusStrip = new StatusStripEx();
@ -711,13 +711,11 @@ namespace BizHawk.Client.EmuHawk
this.TasView.selectedItem = -1;
this.TasView.Size = new System.Drawing.Size(288, 471);
this.TasView.TabIndex = 1;
this.TasView.UseCompatibleStateImageBehavior = false;
this.TasView.UseCustomBackground = true;
this.TasView.View = System.Windows.Forms.View.Details;
this.TasView.RightMouseScrolled += new BizHawk.Client.EmuHawk.TasListView.RightMouseScrollEventHandler(this.TasView_MouseWheel);
this.TasView.RightMouseScrolled += new BizHawk.Client.EmuHawk.InputRoll.RightMouseScrollEventHandler(this.TasView_MouseWheel);
this.TasView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.TasView_ColumnClick);
this.TasView.SelectedIndexChanged += new System.EventHandler(this.TasView_SelectedIndexChanged);
this.TasView.VirtualItemsSelectionRangeChanged += new System.Windows.Forms.ListViewVirtualItemsSelectionRangeChangedEventHandler(this.TasView_VirtualItemsSelectionRangeChanged);
this.TasView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TasView_KeyDown);
this.TasView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.TasView_MouseDoubleClick);
this.TasView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TasView_MouseDown);
@ -942,7 +940,7 @@ namespace BizHawk.Client.EmuHawk
private System.Windows.Forms.ToolStripMenuItem ExitMenuItem;
private System.Windows.Forms.ToolStripMenuItem EditSubMenu;
private System.Windows.Forms.ToolStripMenuItem ConfigSubMenu;
private TasListView TasView;
private InputRoll TasView;
private System.Windows.Forms.ColumnHeader Log;
private System.Windows.Forms.ToolStripMenuItem RecentSubMenu;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;

View File

@ -12,7 +12,6 @@ namespace BizHawk.Client.EmuHawk
return;
}
RefreshDialog();
if (_currentTasMovie.IsRecording)
{
TasView.ensureVisible(_currentTasMovie.InputLogLength - 1);
@ -21,6 +20,8 @@ namespace BizHawk.Client.EmuHawk
{
TasView.ensureVisible(Global.Emulator.Frame);
}
RefreshDialog();
}
public void FastUpdate()

View File

@ -192,27 +192,27 @@ namespace BizHawk.Client.EmuHawk
return;
}
if (TasView.CurrentCell.RowIndex.HasValue && !string.IsNullOrEmpty(TasView.CurrentCell.Column))
if (TasView.CurrentCell.RowIndex.HasValue && TasView.CurrentCell.Column != null)
{
if (e.Button == MouseButtons.Left)
{
if (TasView.CurrentCell.Column == MarkerColumnName)
if (TasView.CurrentCell.Column.Name == MarkerColumnName)
{
_startMarkerDrag = true;
GoToFrame(TasView.CurrentCell.RowIndex.Value);
}
else if (TasView.CurrentCell.Column == FrameColumnName)
else if (TasView.CurrentCell.Column.Name == FrameColumnName)
{
_startFrameDrag = true;
}
else//User changed input
{
var frame = TasView.CurrentCell.RowIndex.Value;
var buttonName = TasView.CurrentCell.Column;
var buttonName = TasView.CurrentCell.Column.Name;
if (Global.MovieSession.MovieControllerAdapter.Type.BoolButtons.Contains(buttonName))
{
ToggleBoolState(TasView.CurrentCell.RowIndex.Value, TasView.CurrentCell.Column);
ToggleBoolState(TasView.CurrentCell.RowIndex.Value, buttonName);
GoToLastEmulatedFrameIfNecessary(TasView.CurrentCell.RowIndex.Value);
TasView.Refresh();
@ -222,12 +222,12 @@ namespace BizHawk.Client.EmuHawk
GlobalWin.MainForm.PauseOnFrame = Global.Emulator.Frame;
}
_startBoolDrawColumn = TasView.CurrentCell.Column;
_startBoolDrawColumn = buttonName;
_boolPaintState = _currentTasMovie.BoolIsPressed(frame, buttonName);
}
else
{
_startFloatDrawColumn = TasView.CurrentCell.Column;
_startFloatDrawColumn = buttonName;
_floatPaintState = _currentTasMovie.GetFloatValue(frame, buttonName);
}
}
@ -235,7 +235,7 @@ namespace BizHawk.Client.EmuHawk
else if (e.Button == MouseButtons.Right)
{
var frame = TasView.CurrentCell.RowIndex.Value;
var buttonName = TasView.CurrentCell.Column;
var buttonName = TasView.CurrentCell.Column.Name;
if (TasView.SelectedIndices.IndexOf(frame) != -1 && (buttonName == MarkerColumnName || buttonName == FrameColumnName))
{
//Disable the option to remove markers if no markers are selected (FCUEX does this).
@ -273,15 +273,24 @@ namespace BizHawk.Client.EmuHawk
private void TasView_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (TasView.CurrentCell.RowIndex.HasValue &&
!string.IsNullOrEmpty(TasView.CurrentCell.Column) &&
TasView.CurrentCell.Column == FrameColumnName)
TasView.CurrentCell != null &&
TasView.CurrentCell.Column.Name == FrameColumnName)
{
CallAddMarkerPopUp(TasView.CurrentCell.RowIndex.Value);
}
}
private void TasView_PointedCellChanged(object sender, TasListView.CellEventArgs e)
private void TasView_PointedCellChanged(object sender, InputRoll.CellEventArgs e)
{
// TODO: think about nullability
// For now return if a null because this happens OnEnter which doesn't have any of the below behaviors yet?
// Most of these are stupid but I got annoyed at null crashes
if (e.OldCell == null || e.OldCell.Column == null || e.OldCell.RowIndex == null ||
e.NewCell == null || e.NewCell.RowIndex == null || e.NewCell.Column == null)
{
return;
}
int startVal, endVal;
if (e.OldCell.RowIndex.Value < e.NewCell.RowIndex.Value)
{
@ -347,11 +356,6 @@ namespace BizHawk.Client.EmuHawk
SetSplicer();
}
private void TasView_VirtualItemsSelectionRangeChanged(object sender, ListViewVirtualItemsSelectionRangeChangedEventArgs e)
{
SetSplicer();
}
private void TasView_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Left) // Ctrl + Left

View File

@ -175,6 +175,7 @@ namespace BizHawk.Client.EmuHawk
{
TasView.BlazingFast = true;
TasView.ItemCount = _currentTasMovie.InputLogLength + 1;
TasView.Refresh();
TasView.BlazingFast = false;
if (MarkerControl != null)
{