Ejemplo n.º 1
0
        private void btnReset_Click(object sender, EventArgs e)
        {
            VsGameConfig defaultConfig = VsGameConfig.GetGameConfig(((DropdownElement)cboGame.SelectedItem).ID);

            ((VsConfigInfo)Entity).DipSwitches = defaultConfig.DefaultDipSwitches;
            ((VsConfigInfo)Entity).PpuModel    = defaultConfig.PpuModel;
            ((VsConfigInfo)Entity).InputType   = defaultConfig.InputType;
            UpdateUI();
            UpdateDipSwitches(defaultConfig, false);
        }
Ejemplo n.º 2
0
        public frmVsGameConfig(VsConfigInfo configInfo)
        {
            InitializeComponent();

            Entity = configInfo;

            if (VsGameConfig.GetGameIdByCrc(InteropEmu.GetRomInfo().PrgCrc32) != null)
            {
                cboGame.Enabled = false;
            }

            AddBinding("PpuModel", cboPpuModel);

            foreach (KeyValuePair <string, VsGameConfig> kvp in VsGameConfig.GetGameConfigs())
            {
                cboGame.Items.Add(new DropdownElement {
                    Name = kvp.Value.GameName, ID = kvp.Value.GameID
                });
                if (kvp.Key == configInfo.GameID)
                {
                    cboGame.SelectedIndex = cboGame.Items.Count - 1;
                }
            }
        }
Ejemplo n.º 3
0
        private void UpdateDipSwitches(VsGameConfig config, bool updateDropdown)
        {
            grpDipSwitches.Controls.Clear();

            List <List <string> > dipSwitches;

            if (config != null)
            {
                dipSwitches = config.DipSwitches;
                if (updateDropdown)
                {
                    cboGame.SelectedIndexChanged -= cboGame_SelectedIndexChanged;
                    cboGame.SelectedItem          = config.GameName;
                    cboGame.SelectedIndexChanged += cboGame_SelectedIndexChanged;
                }
            }
            else
            {
                dipSwitches = new List <List <string> >();
                for (int i = 0; i < 8; i++)
                {
                    dipSwitches.Add(new List <string>(new string[] { "Unknown", "Off", "On" }));
                }
            }

            int row            = 0;
            var tlpDipSwitches = new TableLayoutPanel();

            tlpDipSwitches.Dock = DockStyle.Fill;
            tlpDipSwitches.ColumnStyles.Add(new ColumnStyle());
            tlpDipSwitches.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tlpDipSwitches.ColumnCount = 2;

            byte value      = ((VsConfigInfo)Entity).DipSwitches;
            int  currentBit = 0;

            foreach (List <string> setting in dipSwitches)
            {
                var optionLabel = new Label();
                optionLabel.AutoSize  = true;
                optionLabel.Text      = setting[0] + ":";
                optionLabel.TextAlign = ContentAlignment.MiddleLeft;
                optionLabel.Dock      = DockStyle.Fill;

                var optionDropdown = new ComboBox();
                optionDropdown.DropDownStyle = ComboBoxStyle.DropDownList;
                for (int i = 1, len = setting.Count; i < len; i++)
                {
                    optionDropdown.Items.Add(new DipSwitchOption()
                    {
                        Index = i - 1, DisplayValue = setting[i]
                    });
                }

                int bitCount = (int)Math.Round(Math.Log(optionDropdown.Items.Count) / Math.Log(2));

                int selectedIndex = (value >> currentBit) & ((1 << bitCount) - 1);
                optionDropdown.SelectedIndex = selectedIndex;
                optionDropdown.Dock          = DockStyle.Fill;
                currentBit += bitCount;


                tlpDipSwitches.RowStyles.Add(new RowStyle(SizeType.AutoSize));
                tlpDipSwitches.Controls.Add(optionLabel, 0, row);
                tlpDipSwitches.Controls.Add(optionDropdown, 1, row);
                row++;
            }
            tlpDipSwitches.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tlpDipSwitches.RowCount = row + 1;
            grpDipSwitches.Controls.Add(tlpDipSwitches);
            tlpDipSwitches.PerformLayout();
        }
Ejemplo n.º 4
0
        private void cboGame_SelectedIndexChanged(object sender, EventArgs e)
        {
            VsGameConfig config = VsGameConfig.GetGameConfig(((DropdownElement)cboGame.SelectedItem).ID);

            UpdateDipSwitches(config, false);
        }