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(); }
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(); } }