public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     serVertices = new SerializeData();
     serVertices.Parse(buffer);
     //still checking variablearrays
     this.Vertices = new List<Vector3D>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _Vertices.Count; loop12++)
     {
         _Vertices[loop12] = new Vector3D();
         _Vertices[loop12].Parse(buffer);
     }
     Field3 = buffer.ReadInt(32);
     serTriangles = new SerializeData();
     serTriangles.Parse(buffer);
     //still checking variablearrays
     this.Triangles = new List<IndexedTriangle>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _Triangles.Count; loop12++)
     {
         _Triangles[loop12] = new IndexedTriangle();
         _Triangles[loop12].Parse(buffer);
     }
     Field6 = buffer.ReadInt(32);
     serPlanes = new SerializeData();
     serPlanes.Parse(buffer);
     //still checking variablearrays
     this.Planes = new List<Plane>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _Planes.Count; loop12++)
     {
         _Planes[loop12] = new Plane();
         _Planes[loop12].Parse(buffer);
     }
     Field9 = new Matrix3x3();
     Field9.Parse(buffer);
     Field10 = new Vector3D();
     Field10.Parse(buffer);
     Field11 = buffer.ReadFloat32();
     Field12 = buffer.ReadFloat32();
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 0;
     Field0 = stream.ReadValueS32();
     stream.Position = offset + 4;
     serVertices = new SerializeData();
     serVertices.FileRead(stream, stream.Position);
     stream.Position = offset + 12;
     //still checking variablearrays
     Vertices = new List<Vector3D>();
     for(int i = 0; i < (int)(serVertices.Field1 / 12); i++)
     {
     stream.Position = serVertices.Field0 + 16 + (12*i) ;
         Vector3D temp12_Vertices;
         temp12_Vertices = new Vector3D();
         temp12_Vertices.FileRead(stream, stream.Position);
         _Vertices.Add(temp12_Vertices);
     }
     stream.Position = offset + 16;
     Field3 = stream.ReadValueS32();
     stream.Position = offset + 20;
     serTriangles = new SerializeData();
     serTriangles.FileRead(stream, stream.Position);
     stream.Position = offset + 28;
     //still checking variablearrays
     Triangles = new List<IndexedTriangle>();
     for(int i = 0; i < (int)(serTriangles.Field1 / 12); i++)
     {
     stream.Position = serTriangles.Field0 + 16 + (12*i) ;
         IndexedTriangle temp12_Triangles;
         temp12_Triangles = new IndexedTriangle();
         temp12_Triangles.FileRead(stream, stream.Position);
         _Triangles.Add(temp12_Triangles);
     }
     stream.Position = offset + 32;
     Field6 = stream.ReadValueS32();
     stream.Position = offset + 36;
     serPlanes = new SerializeData();
     serPlanes.FileRead(stream, stream.Position);
     stream.Position = offset + 44;
     //still checking variablearrays
     Planes = new List<Plane>();
     for(int i = 0; i < (int)(serPlanes.Field1 / 16); i++)
     {
     stream.Position = serPlanes.Field0 + 16 + (16*i) ;
         Plane temp12_Planes;
         temp12_Planes = new Plane();
         temp12_Planes.FileRead(stream, stream.Position);
         _Planes.Add(temp12_Planes);
     }
     stream.Position = offset + 48;
     Field9 = new Matrix3x3();
     Field9.FileRead(stream, stream.Position);
     stream.Position = offset + 84;
     Field10 = new Vector3D();
     Field10.FileRead(stream, stream.Position);
     stream.Position = offset + 96;
     Field11 = stream.ReadValueF32();
     stream.Position = offset + 100;
     Field12 = stream.ReadValueF32();
 }