private void ModifyParents(int parent) { FrameObjectBase obj = treeView1.SelectedNode.Tag as FrameObjectBase; ListWindow window = new ListWindow(); window.PopulateForm(parent); if (window.ShowDialog() == DialogResult.OK) { int refID = (window.chosenObject as FrameEntry).RefID; obj.IsOnFrameTable = true; if (parent == 0) { obj.ParentIndex1.Name = window.chosenObject.ToString(); obj.ParentIndex1.Index = SceneData.FrameResource.GetIndexOfObject(refID); obj.ParentIndex1.RefID = refID; obj.SubRef(FrameEntryRefTypes.Parent1); obj.AddRef(FrameEntryRefTypes.Parent1, refID); } else if (parent == 1) { obj.ParentIndex2.Name = window.chosenObject.ToString(); obj.ParentIndex2.Index = SceneData.FrameResource.GetIndexOfObject(refID) + SceneData.FrameResource.FrameScenes.Count; obj.ParentIndex2.RefID = refID; obj.SubRef(FrameEntryRefTypes.Parent2); obj.AddRef(FrameEntryRefTypes.Parent2, refID); } treeView1.Nodes.Remove(treeView1.SelectedNode); TreeNode newNode = new TreeNode(); newNode.Tag = obj; newNode.Name = obj.RefID.ToString(); newNode.Text = obj.ToString(); if (obj.ParentIndex1.Index != -1) { TreeNode[] nodes = treeView1.Nodes.Find(obj.ParentIndex1.RefID.ToString(), true); if (nodes.Length > 0) { AddToTree(newNode, nodes[0]); } } else if (obj.ParentIndex2.Index != -1) { TreeNode[] nodes = treeView1.Nodes.Find(obj.ParentIndex2.RefID.ToString(), true); if (nodes.Length > 0) { AddToTree(newNode, nodes[0]); } } else { } } }