Esempio n. 1
0
        public TPL(byte[] file)
        {
            EndianBinaryReader er = new EndianBinaryReader(new MemoryStream(file), Endianness.BigEndian);
            bool OK;

            Header = new TPLHeader(er, out OK);
            if (!OK)
            {
                System.Windows.Forms.MessageBox.Show("Error 1"); goto end;
            }
            ImageHeaderOffsets   = new UInt32[Header.NrImages];
            PaletteHeaderOffsets = new UInt32[Header.NrImages];
            for (int i = 0; i < Header.NrImages; i++)
            {
                ImageHeaderOffsets[i]   = er.ReadUInt32();
                PaletteHeaderOffsets[i] = er.ReadUInt32();
            }
            Images   = new TPLImageHeader[Header.NrImages];
            Palettes = new TPLPaletteHeader[Header.NrImages];
            for (int i = 0; i < Header.NrImages; i++)
            {
                er.BaseStream.Position = ImageHeaderOffsets[i];
                Images[i] = new TPLImageHeader(er);
                if (PaletteHeaderOffsets[i] != 0)
                {
                    er.BaseStream.Position = PaletteHeaderOffsets[i];
                    Palettes[i]            = new TPLPaletteHeader(er);
                }
            }
end:
            er.Close();
        }
Esempio n. 2
0
        public TPL(byte[] Data)
        {
            EndianBinaryReader er = new EndianBinaryReader(new MemoryStream(Data), Endianness.BigEndian);

            try
            {
                Header   = new TPLHeader(er);
                Textures = new TPLTexture[Header.NrTextures];
                for (int i = 0; i < Header.NrTextures; i++)
                {
                    Textures[i] = new TPLTexture(er);
                }
            }
            finally
            {
                er.Close();
            }
        }