Esempio n. 1
0
        public RmdNode(Element elem)
        {
            _Element         = elem;
            _SurrogateObject = new SurrogateDataObject(this);

            Text = elem.Type.ToString("X8");
        }
Esempio n. 2
0
        public ImageDataNode(DataElement elem, DataElement info)
            : base(elem)
        {
            ImageInfoWrapper *imageInfo = (ImageInfoWrapper *)info.Data;

            if (imageInfo->bitsPerPixel == 0x20)
            {
                Parse32BppRGB(info);
            }
            else if (imageInfo->bitsPerPixel == 0x8)
            {
                Parse8BppIndexed(info);
            }
            else if (imageInfo->bitsPerPixel == 0x4)
            {
                Parse4BppIndexed(info);
            }
            else
            {
                throw new Exception(string.Format("Unable to parse {0}-bit per pixel image.", imageInfo->bitsPerPixel));
            }

            _SurrogateObject = new SurrogateDataObject(this);
            Text             = "Image Data";
        }
Esempio n. 3
0
        public DataNode(DataElement elem)
            : base(elem)
        {
            _DataElement     = elem;
            _SurrogateObject = new SurrogateDataObject(this);

            ContextMenuStrip.Items["Import"].Visible = false;
        }
Esempio n. 4
0
        public ImageInfoNode(DataElement elem)
            : base(elem)
        {
            _SurrogateObject = new SurrogateDataObject(this);
            Text             = "Image Info";

            _ImageInfo = (ImageInfoWrapper *)elem.Data;
        }
Esempio n. 5
0
        public PacDataNode(PacData data)
            : base(data.Name)
        {
            _PacData = data;

            _SurrogateObject = new SurrogateDataObject(this);
            ContextMenuStrip.Items["Import"].Visible = false;
        }
Esempio n. 6
0
        public RawFileDataNode(string name, int size)
            : base(name)
        {
            _Data     = (byte *)Marshal.AllocHGlobal(size);
            _DataSize = size;

            _SurrogateObject = new SurrogateDataObject(this);
            ContextMenuStrip.Items["Import"].Visible = false;
        }
Esempio n. 7
0
        public RmdFileNode(RmdFileElement elem)
            : base(elem.Name)
        {
            _Element         = elem;
            _SurrogateObject = new SurrogateDataObject(this);

            foreach (Element child in elem.Elements)
            {
                Nodes.Add(NodeFactory.FromElement(child));
            }
        }
Esempio n. 8
0
        public MeshSetNode(ContainerElement elem)
            : base(elem)
        {
            Text = "Meshes";

            if (RmdNodes.Length > 0 && RmdNodes.First().ElementType == 0x01)
            {
                RmdNodes.First().Text = "Count Node";
            }

            _SurrogateObject = new SurrogateDataObject(this);
        }
Esempio n. 9
0
        public RawFileDataNode(string name, byte[] data)
            : base(name)
        {
            _Data     = (byte *)Marshal.AllocHGlobal(data.Length);
            _DataSize = data.Length;

            for (int i = 0; i < data.Length; i++)
            {
                _Data[i] = data[i];
            }

            _SurrogateObject = new SurrogateDataObject(this);
            ContextMenuStrip.Items["Import"].Visible = false;
        }
Esempio n. 10
0
        public TextureSetNode(ContainerElement elem)
            : base(elem)
        {
            Text = "Textures";

            if (RmdNodes.Length > 0 && RmdNodes.First().ElementType == 0x01)
            {
                RmdNodes.First().Text = "Count Node";
            }

            if (RmdNodes.Length > 1 && RmdNodes.Last().ElementType == 0x03)
            {
                RmdNodes.Last().Text = "Ex Data";
            }

            _SurrogateObject = new SurrogateDataObject(this);
        }
Esempio n. 11
0
        public DrawCallNode(ContainerElement elem)
            : base(elem)
        {
            Text = string.Format("Draw Call [{0}]", GetMeshIndex());

            if (RmdNodes.Length > 0 && RmdNodes.First().ElementType == 0x01)
            {
                RmdNodes.First().Text = "Draw Data";
            }

            if (RmdNodes.Length > 1 && RmdNodes.Last().ElementType == 0x03)
            {
                RmdNodes.Last().Text = "Ex Data";
            }

            _SurrogateObject = new SurrogateDataObject(this);
        }
Esempio n. 12
0
        public TextureRefNode(ContainerElement elem)
            : base(elem)
        {
            Text = GetTextureName();

            if (!elem.Elements.Select(x => x.Type).SequenceEqual(new uint[] { 0x1, 0x2, 0x2, 0x3 }))
            {
                throw new ArgumentException();
            }

            Nodes[0].Text = "Usage Data";
            Nodes[1].Text = "Name Data";
            Nodes[2].Text = "Unknown";
            Nodes[3].Text = "Ex Data";

            _SurrogateObject = new SurrogateDataObject(this);
        }
Esempio n. 13
0
        public PacFileNode(string fileName, ICollection <PacData> data)
            : base(fileName)
        {
            _FileName = fileName;

            foreach (PacData item in data)
            {
                if (item.Name.EndsWith(".Rmd", true, CultureInfo.CurrentCulture))
                {
                    Nodes.Add(NodeFactory.FromElement(RmdFileElement.FromPtr(item.Name, item.Data, item.DataSize)));
                }
                else
                {
                    Nodes.Add(new PacDataNode(item));
                }
            }

            _SurrogateObject = new SurrogateDataObject(this);
        }
Esempio n. 14
0
        public FileDataNode(string text)
            : base(text)
        {
            _SurrogateObject = new SurrogateDataObject(this);

            ContextMenuStrip = new ContextMenuStrip();
            ContextMenuStrip.Items.Add(new ToolStripMenuItem("&Export", null, Export_Click)
            {
                Name = "Export"
            });
            ContextMenuStrip.Items.Add(new ToolStripMenuItem("&Import", null, Import_Click)
            {
                Name = "Import"
            });
            ContextMenuStrip.Items.Add(new ToolStripMenuItem("I&nsert Above", null, InsertAbove_Click)
            {
                Name = "Insert Above"
            });
            ContextMenuStrip.Items.Add(new ToolStripMenuItem("&Replace", null, Replace_Click)
            {
                Name = "Replace"
            });
            ContextMenuStrip.Items.Add(new ToolStripSeparator());
            ContextMenuStrip.Items.Add(new ToolStripMenuItem("Move &Up", null, MoveUp_Click)
            {
                Name = "Move Up"
            });
            ContextMenuStrip.Items.Add(new ToolStripMenuItem("Move D&own", null, MoveDown_Click)
            {
                Name = "Move Down"
            });
            ContextMenuStrip.Items.Add(new ToolStripSeparator());
            ContextMenuStrip.Items.Add(new ToolStripMenuItem("&Delete", null, Delete_Click)
            {
                Name = "Delete"
            });
            ContextMenuStrip.Opening += ContextMenuStrip_Opening;
        }
Esempio n. 15
0
        public MaterialNode(ContainerElement elem)
            : base(elem)
        {
            if (RmdNodes.Length > 0 && RmdNodes.First().ElementType == 0x1)
            {
                RmdNodes.First().Text = "Material Data";
            }

            _TextureRefNode = Nodes[1] as TextureRefNode;
            if (_TextureRefNode != null)
            {
                _TextureRefNode.Text = "Texture Reference";
            }

            if (RmdNodes.Length > 1 && RmdNodes.Last().ElementType == 0x3)
            {
                RmdNodes.Last().Text = "Ex Data";
            }


            Text             = string.Format("Material [{0}]", _TextureRefNode.TextureName);
            _SurrogateObject = new SurrogateDataObject(this);
        }
Esempio n. 16
0
        public TextureNode(ContainerElement elem)
            : base(elem)
        {
            Text = GetTextureName();

            if (!elem.Elements.Select(x => x.Type).SequenceEqual(new uint[] { 0x1, 0x2, 0x2, 0x1, 0x3 }))
            {
                throw new ArgumentException();
            }

            RmdNode oldNode = RmdNodes[3];

            _TextureImageNode = new TextureImageNode(oldNode.Element as ContainerElement);
            Nodes.Insert(3, _TextureImageNode);
            Nodes.Remove(oldNode);

            Nodes[0].Text = "Usage Data";
            Nodes[1].Text = "Name Data";
            Nodes[2].Text = "Unknown";
            Nodes[4].Text = "Ex Data";

            _SurrogateObject = new SurrogateDataObject(this);
        }
Esempio n. 17
0
        public TextureImageNode(ContainerElement elem)
            : base(elem)
        {
            Text = "Texture Image";

            if (!elem.Elements.Select(x => x.Type).SequenceEqual(new uint[] { 0x1, 0x1 }))
            {
                throw new ArgumentException();
            }

            DataNode oldInfoNode = Nodes[0] as DataNode;

            _ImageInfoNode = new ImageInfoNode(oldInfoNode.DataElement);
            DataNode oldImageNode = Nodes[1] as DataNode;

            _ImageDataNode = new ImageDataNode(oldImageNode.DataElement, _ImageInfoNode.DataElement);

            Nodes.Insert(0, _ImageInfoNode);
            Nodes.Remove(oldInfoNode);
            Nodes.Insert(1, _ImageDataNode);
            Nodes.Remove(oldImageNode);

            _SurrogateObject = new SurrogateDataObject(this);
        }