예제 #1
0
        private void ExtractList1(byte[] fData)
        {
            if (List1Start <= 0)
            {
                return;
            }
            if (List1End <= 0)
            {
                return;
            }
            if (List1End <= List1Start)
            {
                return;
            }

            NodeCount = 0;
            Nodes.Clear();

            for (int lstPoint = List1Start; lstPoint < List1End; lstPoint += 4)
            {
                int    entry     = BitConverter.ToInt32(fData, lstPoint);
                string childType = GetTypeFromPointer(BitConverter.ToInt32(fData, entry));

                if ((childType == "CNode") || (childType == "CModel") || childType == "CWorld")
                {
                    CA_Node tNode = new CA_Node();
                    tNode.ExtractNode(fData, entry);
                    tNode.Parent = this;
                    //AddNode(tNode);
                    Nodes.Add(tNode);
                    NodeCount++;
                }
            }
        }
예제 #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            byte[] fData;

            nodeTree.Nodes.Clear();

            if (System.IO.File.Exists(txtFile.Text) == false)
            {
                return;
            }
            try { fData = System.IO.File.ReadAllBytes(txtFile.Text); } catch { MessageBox.Show("File Read Error"); return; }

            int entry = int.Parse(txtAddr.Text, System.Globalization.NumberStyles.HexNumber);

            if (!CurrentModel.ExtractNode(fData, entry))
            {
                MessageBox.Show("Load Error"); return;
            }

            //nodeTree.Nodes.Add(CurrentModel.NodeType);
            //textBox1.Text = CurrentModel.DumpTreeText("");

            FillTreeNode(CurrentModel);
        }