Example #1
0
        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
                {
                }
            }
        }