Exemplo n.º 1
0
        public override void Open(HSDReader Reader)
        {
            uint DataOffset = Reader.ReadUInt32();

            base.Open(Reader);
            Data = Reader.ReadBuffer(DataOffset, TPL.TextureByteSize((TPL_TextureFormat)Format, Width, Height));
        }
Exemplo n.º 2
0
        public override void Open(HSDReader Reader)
        {
            uint DataOffset = Reader.ReadUInt32();

            Format     = (GXTlutFmt)Reader.ReadUInt32();
            GXTlut     = Reader.ReadUInt32();
            ColorCount = Reader.ReadUInt16();
            Reader.ReadUInt16();

            Data = Reader.ReadBuffer(DataOffset, TPL.PaletteByteSize((TPL_PaletteFormat)Format, ColorCount));
        }
Exemplo n.º 3
0
        public override void Open(HSDReader Reader)
        {
            uint DataOffset = Reader.ReadUInt32();

            Width  = Reader.ReadUInt16();
            Height = Reader.ReadUInt16();
            Format = (GXTexFmt)Reader.ReadUInt32();
            Mipmap = Reader.ReadUInt32();
            MinLOD = Reader.ReadSingle();
            MaxLOD = Reader.ReadSingle();

            Data = Reader.ReadBuffer(DataOffset, TPL.TextureByteSize((TPL_TextureFormat)Format, Width, Height));
        }
Exemplo n.º 4
0
        public override void Open(HSDReader Reader)
        {
            uint NameOffset           = Reader.ReadUInt32();
            uint NextOff              = Reader.ReadUInt32();
            uint VertexAttributeArray = Reader.ReadUInt32();

            Flags = (POBJ_FLAG)Reader.ReadUInt16();
            int  DisplayListSize   = Reader.ReadUInt16() * 32;
            uint DisplayListOffset = Reader.ReadUInt32();
            uint WeightListOffset  = Reader.ReadUInt32();

            if (NextOff > 0)
            {
                Next = Reader.ReadObject <HSD_POBJ>(NextOff);
            }

            // Display List
            if (DisplayListOffset > 0)
            {
                DisplayListBuffer = Reader.ReadBuffer(DisplayListOffset, DisplayListSize);
            }

            if (VertexAttributeArray > 0)
            {
                VertexAttributes = Reader.ReadObject <HSD_AttributeGroup>(VertexAttributeArray);
            }

            //Skinning
            if (WeightListOffset > 0)
            {
                if (Flags.HasFlag(POBJ_FLAG.ENVELOPE))
                {
                    // offsets to array of bone-weight combinations
                    BindGroups = Reader.ReadObject <HSD_PointerArray <HSD_JOBJWeight> >(WeightListOffset);
                }
                else
                if (Flags.HasFlag(POBJ_FLAG.SHAPEANIM))
                {
                    throw new Exception("Shape Anim not supported");//??
                }
                else
                if (Flags.HasFlag(POBJ_FLAG.SKIN))
                {
                    // Single bind to given bone
                    SingleBind = Reader.ReadObject <HSD_JOBJ>(WeightListOffset);
                }
            }
        }
Exemplo n.º 5
0
        public override void Open(HSDReader Reader)
        {
            base.Open(Reader);

            Data = Reader.ReadBuffer(Offset, (int)DataLength);
        }
Exemplo n.º 6
0
        public override void Open(HSDReader Reader)
        {
            base.Open(Reader);

            Track.Data = Reader.ReadBuffer(Track.DataOffset, DataSize);
        }