private void SetUpColumns() { TasView.AllColumns.Clear(); AddColumn(CursorColumnName, "", 18); AddColumn( new RollColumn { Name = FrameColumnName, Text = "Frame#", Width = 68, Type = ColumnType.Text, Rotatable = true }); var columnNames = GenerateColumnNames(); foreach (var kvp in columnNames) { ColumnType type; int digits; if (ControllerType.FloatControls.Contains(kvp.Key)) { ControllerDefinition.FloatRange range = ControllerType.FloatRanges [ControllerType.FloatControls.IndexOf(kvp.Key)]; type = ColumnType.Float; digits = Math.Max(kvp.Value.Length, range.MaxDigits()); } else { type = ColumnType.Boolean; digits = kvp.Value.Length; } AddColumn(kvp.Key, kvp.Value, (digits * 6) + 14, type); // magic numbers reused in EditBranchTextPopUp() } var columnsToHide = TasView.AllColumns .Where(c => // todo: make a proper user editable list? c.Name == "Power" || c.Name == "Reset" || c.Name == "Light Sensor" || c.Name == "Open" || c.Name == "Close" || c.Name == "Disc Select" || c.Name.StartsWith("Tilt") || c.Name.StartsWith("Key ") || c.Name.EndsWith("Tape") || c.Name.EndsWith("Disk") || c.Name.EndsWith("Block") || c.Name.EndsWith("Status")); if (Emulator is N64) { var fakeAnalogControls = TasView.AllColumns .Where(c => c.Name.EndsWith("A Up") || c.Name.EndsWith("A Down") || c.Name.EndsWith("A Left") || c.Name.EndsWith("A Right")); columnsToHide = columnsToHide.Concat(fakeAnalogControls); } foreach (var column in columnsToHide) { column.Visible = false; } TasView.AllColumns.ColumnsChanged(); SetupBoolPatterns(); }
private void SetUpColumns() { TasView.AllColumns.Clear(); AddColumn(CursorColumnName, "", 18); AddColumn(FrameColumnName, "Frame#", 68); var columnNames = GenerateColumnNames(); foreach (var kvp in columnNames) { InputRoll.RollColumn.InputType type; int digits; if (Global.MovieSession.MovieControllerAdapter.Definition.FloatControls.Contains(kvp.Key)) { ControllerDefinition.FloatRange range = Global.MovieSession.MovieControllerAdapter.Definition.FloatRanges [Global.MovieSession.MovieControllerAdapter.Definition.FloatControls.IndexOf(kvp.Key)]; type = InputRoll.RollColumn.InputType.Float; digits = Math.Max(kvp.Value.Length, range.MaxDigits()); } else { type = InputRoll.RollColumn.InputType.Boolean; digits = kvp.Value.Length; } AddColumn(kvp.Key, kvp.Value, (digits * 6) + 14, type); // magic numbers reused in EditBranchTextPopUp() } var columnsToHide = TasView.AllColumns .Where(c => // todo: make a proper user editable list? c.Name == "Power" || c.Name == "Reset" || c.Name == "Light Sensor" || c.Name == "Open" || c.Name == "Close" || c.Name == "Disc Select" || c.Name.StartsWith("Tilt") || c.Name.StartsWith("Key ") || c.Name.EndsWith("Tape") || c.Name.EndsWith("Disk") || c.Name.EndsWith("Block") || c.Name.EndsWith("Status")); foreach (var column in columnsToHide) { column.Visible = false; } TasView.AllColumns.ColumnsChanged(); // Patterns int bStart = 0; int fStart = 0; if (BoolPatterns == null) { BoolPatterns = new AutoPatternBool[ControllerType.BoolButtons.Count + 2]; FloatPatterns = new AutoPatternFloat[ControllerType.FloatControls.Count + 2]; } else { bStart = BoolPatterns.Length - 2; fStart = FloatPatterns.Length - 2; Array.Resize(ref BoolPatterns, ControllerType.BoolButtons.Count + 2); Array.Resize(ref FloatPatterns, ControllerType.FloatControls.Count + 2); } for (int i = bStart; i < BoolPatterns.Length - 2; i++) { BoolPatterns[i] = new AutoPatternBool(1, 1); } BoolPatterns[BoolPatterns.Length - 2] = new AutoPatternBool(1, 0); BoolPatterns[BoolPatterns.Length - 1] = new AutoPatternBool( Global.Config.AutofireOn, Global.Config.AutofireOff); for (int i = fStart; i < FloatPatterns.Length - 2; i++) { FloatPatterns[i] = new AutoPatternFloat(new[] { 1f }); } FloatPatterns[FloatPatterns.Length - 2] = new AutoPatternFloat(new[] { 1f }); FloatPatterns[FloatPatterns.Length - 1] = new AutoPatternFloat( 1f, Global.Config.AutofireOn, 0f, Global.Config.AutofireOff); SetUpToolStripColumns(); }