private void AddBtn_Click(object sender, EventArgs e) { var sel = Selected; int TTAIndex = 0; int MaxTTAIndex = (ActiveTTAB.Interactions.Length == 0)?-1:ActiveTTAB.Interactions.Max(x => (int)x.TTAIndex); Content.Content.Get().Changes.BlockingResMod(new ResAction(() => { while (Strings.Length <= MaxTTAIndex) { Strings.InsertString(Strings.Length, new STRItem { Value = "---" }); } TTAIndex = Strings.Length; Strings.InsertString(Strings.Length, new STRItem { Value = "New Interaction" }); }, Strings)); Content.Content.Get().Changes.BlockingResMod(new ResAction(() => { var action = new TTABInteraction() { TTAIndex = (uint)TTAIndex, MotiveEntries = new TTABMotiveEntry[MotiveNames.Length] }; ActiveTTAB.InsertInteraction(action, (sel == null)?ActiveTTAB.Interactions.Length:(Array.IndexOf(ActiveTTAB.Interactions, sel) + 1)); }, ActiveTTAB)); UpdateListing(); }
public void UpdateSelection(int sel) { InternalChange = true; SelectedIndex = sel; bool enabled = true; try { Selected = ActiveTTAB.InteractionByIndex[(uint)sel]; } catch (Exception) { Selected = new TTABInteraction() { TTAIndex = 0, MotiveEntries = new TTABMotiveEntry[MotiveNames.Length] }; enabled = false; //disable everything and set Selected to a dummy. } AllowBox.Enabled = enabled; ActionButton.Enabled = enabled; CheckButton.Enabled = enabled; FlagsBox.Enabled = enabled; MetaBox.Enabled = enabled; MotiveBox.Enabled = enabled; InteractionPathName.Text = GetTTA(Selected.TTAIndex); AutonomyInput.Value = Selected.AutonomyThreshold; AttenuationCombo.Text = Selected.AttenuationValue.ToString(); JoinInput.Value = Math.Max(-1, Selected.JoiningIndex); UpdateMotiveList(); foreach (var checkAtt in FlagNames) { var check = checkAtt.Key; var att = checkAtt.Value; var property = Selected.GetType().GetProperty(att); check.Checked = (bool)property.GetValue(Selected, new object[0]); } if (InteractionList.Items.Count > 0) { var int1 = PieToInteraction.FirstOrDefault(x => x.Value == sel); PieView.SelectedNode = int1.Key; var int2 = -1; TTAToListIndex.TryGetValue(sel, out int2); if (int2 != -1 && !InteractionList.SelectedIndices.Contains(int2)) { InteractionList.SelectedIndices.Clear(); InteractionList.SelectedIndices.Add(int2); } } InternalChange = false; var oldInd = MotiveList.SelectedIndex; MotiveList.SelectedIndex = -1; MotiveList.SelectedIndex = oldInd; }