Пример #1
0
        // This is called when an editing mode item is checked or unchecked
        private void listmodes_ItemChecked(object sender, ItemCheckedEventArgs e)
        {
            if (preventchanges)
            {
                return;                            //mxd
            }
            // Leave when no configuration selected
            if (configinfo == null)
            {
                return;
            }

            // mxd. Not the best way to detect a disabled item, but we will go with that...
            if (e.Item.ForeColor == SystemColors.GrayText)
            {
                e.Item.Checked = false;
            }

            // Apply changes
            EditModeInfo emi          = (e.Item.Tag as EditModeInfo);
            bool         currentstate = (configinfo.EditModes.ContainsKey(emi.Type.FullName) && configinfo.EditModes[emi.Type.FullName]);

            if (e.Item.Checked && !currentstate)
            {
                // Add
                configinfo.EditModes[emi.Type.FullName] = true;
                configinfo.Changed = true;                 //mxd
            }
            else if (!e.Item.Checked && currentstate)
            {
                // Remove
                configinfo.EditModes[emi.Type.FullName] = false;
                configinfo.Changed = true;                 //mxd
            }

            preventchanges = true;
            RefillStartModes();
            preventchanges = false;
        }
Пример #2
0
        // Configuration item selected
        private void listconfigs_SelectedIndexChanged(object sender, EventArgs e)
        {
            NodebuilderInfo ni;

            // Item selected?
            if (listconfigs.SelectedItems.Count > 0)
            {
                // Enable panels
                tabs.Enabled = true;

                preventchanges = true;

                // Get config info of selected item
                configinfo = listconfigs.SelectedItems[0].Tag as ConfigurationInfo;

                // Load the game configuration
                gameconfig = new GameConfiguration(General.LoadGameConfiguration(configinfo.Filename));

                // Set defaults
                configinfo.ApplyDefaults(gameconfig);

                // Fill resources list
                configdata.EditResourceLocationList(configinfo.Resources);

                // Go for all nodebuilder save items
                nodebuildersave.SelectedIndex = -1;
                for (int i = 0; i < nodebuildersave.Items.Count; i++)
                {
                    // Get item
                    ni = nodebuildersave.Items[i] as NodebuilderInfo;

                    // Item matches configuration setting?
                    if (string.Compare(ni.Name, configinfo.NodebuilderSave, false) == 0)
                    {
                        // Select this item
                        nodebuildersave.SelectedIndex = i;
                        break;
                    }
                }

                // Go for all nodebuilder test items
                nodebuildertest.SelectedIndex = -1;
                for (int i = 0; i < nodebuildertest.Items.Count; i++)
                {
                    // Get item
                    ni = nodebuildertest.Items[i] as NodebuilderInfo;

                    // Item matches configuration setting?
                    if (string.Compare(ni.Name, configinfo.NodebuilderTest, false) == 0)
                    {
                        // Select this item
                        nodebuildertest.SelectedIndex = i;
                        break;
                    }
                }

                // Fill skills list
                skill.ClearInfo();
                skill.AddInfo(gameconfig.Skills.ToArray());

                // Set test application and parameters
                if (!configinfo.CustomParameters)
                {
                    configinfo.TestParameters = gameconfig.TestParameters;
                    configinfo.TestShortPaths = gameconfig.TestShortPaths;
                }
                testapplication.Text = configinfo.TestProgram;
                testparameters.Text  = configinfo.TestParameters;
                shortpaths.Checked   = configinfo.TestShortPaths;
                int skilllevel = configinfo.TestSkill;
                skill.Value = skilllevel - 1;
                skill.Value = skilllevel;
                customparameters.Checked = configinfo.CustomParameters;

                // Fill texture sets list
                listtextures.Items.Clear();
                foreach (DefinedTextureSet ts in configinfo.TextureSets)
                {
                    ListViewItem item = listtextures.Items.Add(ts.Name);
                    item.Tag        = ts;
                    item.ImageIndex = 0;
                }
                listtextures.Sort();

                // Go for all the editing modes in the list
                foreach (ListViewItem lvi in listmodes.Items)
                {
                    EditModeInfo emi = (lvi.Tag as EditModeInfo);
                    lvi.Checked = (configinfo.EditModes.ContainsKey(emi.Type.FullName) && configinfo.EditModes[emi.Type.FullName]);
                }

                // Fill start modes
                RefillStartModes();

                // Done
                preventchanges = false;
            }
        }
Пример #3
0
        // Configuration item selected
        private void listconfigs_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Item selected?
            if (listconfigs.SelectedItems.Count > 0)
            {
                // Enable panels
                tabs.Enabled = true;

                preventchanges = true;

                //mxd. Store current engine name
                if (configinfo != null && !String.IsNullOrEmpty(cbEngineSelector.Text))
                {
                    configinfo.TestProgramName = cbEngineSelector.Text;
                }

                // Get config info of selected item
                configinfo = listconfigs.SelectedItems[0].Tag as ConfigurationInfo;

                //mxd. Load the game configuration
                gameconfig = new GameConfiguration(configinfo.Configuration);

                // Set defaults
                configinfo.ApplyDefaults(gameconfig);

                // Fill resources list
                configdata.EditResourceLocationList(configinfo.Resources);

                // Go for all nodebuilder save items
                nodebuildersave.SelectedIndex = -1;
                for (int i = 0; i < nodebuildersave.Items.Count; i++)
                {
                    // Get item
                    NodebuilderInfo ni = nodebuildersave.Items[i] as NodebuilderInfo;

                    // Item matches configuration setting?
                    if (String.CompareOrdinal(ni.Name, configinfo.NodebuilderSave) == 0)
                    {
                        // Select this item
                        nodebuildersave.SelectedIndex = i;
                        break;
                    }
                }

                // Go for all nodebuilder test items
                nodebuildertest.SelectedIndex = -1;
                for (int i = 0; i < nodebuildertest.Items.Count; i++)
                {
                    // Get item
                    NodebuilderInfo ni = nodebuildertest.Items[i] as NodebuilderInfo;

                    // Item matches configuration setting?
                    if (String.CompareOrdinal(ni.Name, configinfo.NodebuilderTest) == 0)
                    {
                        // Select this item
                        nodebuildertest.SelectedIndex = i;
                        break;
                    }
                }

                // Fill skills list
                skill.ClearInfo();
                skill.AddInfo(gameconfig.Skills.ToArray());

                //mxd. Fill engines list
                cbEngineSelector.Items.Clear();
                foreach (EngineInfo info in configinfo.TestEngines)
                {
                    cbEngineSelector.Items.Add(info.TestProgramName);
                }

                cbEngineSelector.SelectedIndex = configinfo.CurrentEngineIndex;
                btnRemoveEngine.Enabled        = configinfo.TestEngines.Count > 1;

                // Fill texture sets list
                listtextures.Items.Clear();
                foreach (DefinedTextureSet ts in configinfo.TextureSets)
                {
                    ListViewItem item = listtextures.Items.Add(ts.Name);
                    item.Tag        = ts;
                    item.ImageIndex = 0;
                }
                listtextures.Sort();

                // Go for all the editing modes in the list
                foreach (ListViewItem lvi in listmodes.Items)
                {
                    EditModeInfo emi = (lvi.Tag as EditModeInfo);

                    //mxd. Disable item if the mode does not support current map format
                    if (emi.Attributes.SupportedMapFormats != null &&
                        Array.IndexOf(emi.Attributes.SupportedMapFormats, gameconfig.FormatInterface) == -1)
                    {
                        lvi.Text      = emi.Attributes.DisplayName + " (map format not supported)";
                        lvi.ForeColor = SystemColors.GrayText;
                        lvi.BackColor = SystemColors.InactiveBorder;
                        lvi.Checked   = false;
                    }
                    else
                    {
                        lvi.Text      = emi.Attributes.DisplayName;
                        lvi.ForeColor = SystemColors.WindowText;
                        lvi.BackColor = SystemColors.Window;
                        lvi.Checked   = (configinfo.EditModes.ContainsKey(emi.Type.FullName) && configinfo.EditModes[emi.Type.FullName]);
                    }
                }

                // Update listmodes columns width (mxd)
                listmodes.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);

                // Fill start modes
                RefillStartModes();

                // Done
                preventchanges = false;
            }
        }
Пример #4
0
        // Configuration item selected
        private void listconfigs_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Item selected?
            if (listconfigs.SelectedItems.Count > 0)
            {
                // Enable panels
                tabs.Enabled   = true;
                preventchanges = true;

                // Get config info of selected item
                configinfo = listconfigs.SelectedItems[0].Tag as ConfigurationInfo;

                // Load the game configuration
                gameconfig = new GameConfiguration(General.LoadGameConfiguration(configinfo.Filename));

                // Set defaults
                configinfo.ApplyDefaults(gameconfig);

                // Fill skills list
                //skill.ClearInfo();
                //skill.AddInfo(gameconfig.Skills.ToArray());
                skill.Items.Clear();
                skill.Items.AddRange(gameconfig.Skills.ToArray());

                // Set test application and parameters
                if (!configinfo.CustomParameters)
                {
                    configinfo.TestParameters = gameconfig.TestParameters;
                }

                testapplication.Text = configinfo.TestProgram;
                testparameters.Text  = configinfo.TestParameters;
                int skilllevel = configinfo.TestSkill;
                //skill.Value = skilllevel - 1;
                //skill.Value = skilllevel;
                skill.SelectedIndex      = skilllevel;
                customparameters.Checked = configinfo.CustomParameters;

                // Fill texture sets list
                listtextures.Items.Clear();
                foreach (DefinedImageSet ts in configinfo.TextureSets)
                {
                    ListViewItem item = listtextures.Items.Add(ts.Name);
                    item.Tag        = ts;
                    item.ImageIndex = 0;
                }
                listtextures.Sort();

                // Go for all the editing modes in the list
                foreach (ListViewItem lvi in listmodes.Items)
                {
                    EditModeInfo emi = (lvi.Tag as EditModeInfo);
                    lvi.Checked = (configinfo.EditModes.ContainsKey(emi.Type.FullName) && configinfo.EditModes[emi.Type.FullName]);
                }

                // Fill start modes
                RefillStartModes();

                // Done
                preventchanges = false;
            }
        }