public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = new RenderParams();
     Field2.Parse(buffer);
     Field3 = buffer.ReadInt(32);
     Field4 = new TextureStageParams[16];
     for(int i = 0;i < _Field4.Length;i++)
     {
         _Field4[i] = new TextureStageParams();
         _Field4[i].Parse(buffer);
     }
     Field5 = buffer.ReadInt(32);
     Field6 = buffer.ReadCharArray(256);
     Field7 = buffer.ReadCharArray(64);
     Field8 = buffer.ReadCharArray(64);
     serTagMap = new SerializeData();
     serTagMap.Parse(buffer);
     hTagMap = new DT_TAGMAP();
     hTagMap.Parse(buffer);
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 0;
     Field0 = stream.ReadValueS32();
     stream.Position = offset + 4;
     Field1 = stream.ReadValueS32();
     stream.Position = offset + 8;
     Field2 = new RenderParams();
     Field2.FileRead(stream, stream.Position);
     stream.Position = offset + 100;
     Field3 = stream.ReadValueS32();
     stream.Position = offset + 104;
     Field4 = new TextureStageParams[16];
     for(int loop12=0; loop12 < 16; loop12++ )
     {
         TextureStageParams temp12_Field4;
         temp12_Field4 = new TextureStageParams();
         temp12_Field4.FileRead(stream, stream.Position);
         _Field4[loop12] = temp12_Field4;
     }
     stream.Position = offset + 424;
     Field5 = stream.ReadValueS32();
     stream.Position = offset + 428;
     Field6 = stream.ReadString(256);
     stream.Position = offset + 684;
     Field7 = stream.ReadString(64);
     stream.Position = offset + 748;
     Field8 = stream.ReadString(64);
     stream.Position = offset + 812;
     serTagMap = new SerializeData();
     serTagMap.FileRead(stream, stream.Position);
     stream.Position = offset + 820;
     // hTagMap: type DT_TAGMAP hasnt a deserializer implemented
     throw new Exception("some fields arent going to be decoded.");
 }