// 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; }
// 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; } }
// 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; } }
// 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; } }