public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     serSubObjects = new SerializeData();
     serSubObjects.Parse(buffer);
     //still checking variablearrays
     this.SubObjects = new List<SubObject>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _SubObjects.Count; loop12++)
     {
         _SubObjects[loop12] = new SubObject();
         _SubObjects[loop12].Parse(buffer);
     }
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 0;
     Field0 = stream.ReadValueS32();
     stream.Position = offset + 4;
     serSubObjects = new SerializeData();
     serSubObjects.FileRead(stream, stream.Position);
     stream.Position = offset + 16;
     //still checking variablearrays
     SubObjects = new List<SubObject>();
     for(int i = 0; i < (int)(serSubObjects.Field1 / 372); i++)
     {
     stream.Position = serSubObjects.Field0 + 16 + (372*i) ;
         SubObject temp12_SubObjects;
         temp12_SubObjects = new SubObject();
         temp12_SubObjects.FileRead(stream, stream.Position);
         _SubObjects.Add(temp12_SubObjects);
     }
 }