public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     CollisionMeshCount = buffer.ReadInt(32);
     serCollisionMeshes = new SerializeData();
     serCollisionMeshes.Parse(buffer);
     //still checking variablearrays
     this.CollisionMeshes = new List<CollisionMesh>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _CollisionMeshes.Count; loop12++)
     {
         _CollisionMeshes[loop12] = new CollisionMesh();
         _CollisionMeshes[loop12].Parse(buffer);
     }
     Field4 = buffer.ReadCharArray(256);
     Field5 = buffer.ReadCharArray(256);
     Field6 = buffer.ReadInt(32);
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 12;
     Field0 = stream.ReadValueS32();
     stream.Position = offset + 16;
     CollisionMeshCount = stream.ReadValueS32();
     stream.Position = offset + 20;
     serCollisionMeshes = new SerializeData();
     serCollisionMeshes.FileRead(stream, stream.Position);
     stream.Position = offset + 32;
     //still checking variablearrays
     CollisionMeshes = new List<CollisionMesh>();
     for(int i = 0; i < (int)(serCollisionMeshes.Field1 / 136); i++)
     {
     stream.Position = serCollisionMeshes.Field0 + 16 + (136*i) ;
         CollisionMesh temp12_CollisionMeshes;
         temp12_CollisionMeshes = new CollisionMesh();
         temp12_CollisionMeshes.FileRead(stream, stream.Position);
         _CollisionMeshes.Add(temp12_CollisionMeshes);
     }
     stream.Position = offset + 44;
     Field4 = stream.ReadString(256);
     stream.Position = offset + 300;
     Field5 = stream.ReadString(256);
     stream.Position = offset + 40;
     Field6 = stream.ReadValueS32();
 }