Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }