public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     dwWidth = buffer.ReadInt(32);
     dwHeight = buffer.ReadInt(32);
     dwFaceCount = buffer.ReadInt(32);
     dwMipMapLevelMax = buffer.ReadInt(32);
     Field5 = new SerializeData[60];
     for(int i = 0;i < _Field5.Length;i++)
     {
         _Field5[i] = new SerializeData();
         _Field5[i].Parse(buffer);
     }
     Field6 = buffer.ReadInt(32);
     Field7 = buffer.ReadInt(32);
     Field8 = buffer.ReadCharArray(256);
     serImageFileIDs = new SerializeData();
     serImageFileIDs.Parse(buffer);
     //still checking variablearrays
     this.ImageFileIDs = new List<ImageFileID>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _ImageFileIDs.Count; loop12++)
     {
         _ImageFileIDs[loop12] = new ImageFileID();
         _ImageFileIDs[loop12].Parse(buffer);
     }
     serFrame = new SerializeData();
     serFrame.Parse(buffer);
     //still checking variablearrays
     this.Frame = new List<TexFrame>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _Frame.Count; loop12++)
     {
         _Frame[loop12] = new TexFrame();
         _Frame[loop12].Parse(buffer);
     }
     Field13 = new IVector2D();
     Field13.Parse(buffer);
     Field14 = buffer.ReadInt(32);
     Field15 = buffer.ReadInt(32);
     Field16 = buffer.ReadInt(32);
     Field17 = buffer.ReadInt(32);
     Field18 = buffer.ReadInt(32);
     Field19 = buffer.ReadInt(32);
     Field20 = buffer.ReadInt64(64);
     Field21 = buffer.ReadInt(32);
     Field22 = (byte)buffer.ReadInt(8);
     Field23 = (byte)buffer.ReadInt(8);
     Field24 = (byte)buffer.ReadInt(8);
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 16;
     Field0 = stream.ReadValueS32();
     stream.Position = offset + 20;
     dwWidth = stream.ReadValueS32();
     stream.Position = offset + 24;
     dwHeight = stream.ReadValueS32();
     stream.Position = offset + 28;
     dwFaceCount = stream.ReadValueS32();
     stream.Position = offset + 36;
     dwMipMapLevelMax = stream.ReadValueS32();
     stream.Position = offset + 40;
     Field5 = new SerializeData[60];
     for(int loop12=0; loop12 < 60; loop12++ )
     {
         SerializeData temp12_Field5;
         temp12_Field5 = new SerializeData();
         temp12_Field5.FileRead(stream, stream.Position);
         _Field5[loop12] = temp12_Field5;
     }
     stream.Position = offset + 520;
     Field6 = stream.ReadValueS32();
     stream.Position = offset + 32;
     Field7 = stream.ReadValueS32();
     stream.Position = offset + 592;
     Field8 = stream.ReadString(256);
     stream.Position = offset + 852;
     serImageFileIDs = new SerializeData();
     serImageFileIDs.FileRead(stream, stream.Position);
     stream.Position = offset + 848;
     //still checking variablearrays
     ImageFileIDs = new List<ImageFileID>();
     for(int i = 0; i < (int)(serImageFileIDs.Field1 / 516); i++)
     {
     stream.Position = serImageFileIDs.Field0 + 16 + (516*i) ;
         ImageFileID temp12_ImageFileIDs;
         temp12_ImageFileIDs = new ImageFileID();
         temp12_ImageFileIDs.FileRead(stream, stream.Position);
         _ImageFileIDs.Add(temp12_ImageFileIDs);
     }
     stream.Position = offset + 524;
     serFrame = new SerializeData();
     serFrame.FileRead(stream, stream.Position);
     stream.Position = offset + 532;
     //still checking variablearrays
     Frame = new List<TexFrame>();
     for(int i = 0; i < (int)(serFrame.Field1 / 80); i++)
     {
     stream.Position = serFrame.Field0 + 16 + (80*i) ;
         TexFrame temp12_Frame;
         temp12_Frame = new TexFrame();
         temp12_Frame.FileRead(stream, stream.Position);
         _Frame.Add(temp12_Frame);
     }
     stream.Position = offset + 536;
     Field13 = new IVector2D();
     Field13.FileRead(stream, stream.Position);
     stream.Position = offset + 860;
     Field14 = stream.ReadValueS32();
     stream.Position = offset + 864;
     Field15 = stream.ReadValueS32();
     stream.Position = offset + 868;
     Field16 = stream.ReadValueS32();
     stream.Position = offset + 544;
     Field17 = stream.ReadValueS32();
     stream.Position = offset + 548;
     Field18 = stream.ReadValueS32();
     stream.Position = offset + 552;
     Field19 = stream.ReadValueS32();
     stream.Position = offset + 560;
     Field20 = stream.ReadValueS64();
     stream.Position = offset + 568;
     Field21 = stream.ReadValueS32();
     stream.Position = offset + 572;
     Field22 = (byte)stream.ReadByte();
     stream.Position = offset + 573;
     Field23 = (byte)stream.ReadByte();
     stream.Position = offset + 574;
     Field24 = (byte)stream.ReadByte();
 }