MV_MODEL *mv_ParseMeshData(FILE *file_ptr, tLONG mesh_size, MV_OBJECT *pObj)
{
tWORD id;
tLONG size;
tLONG end_of_block;
MV_MODEL	*pMesh;

end_of_block = ftell(file_ptr) + mesh_size; 	/* where the block should end... */
end_of_block -= sizeof(tWORD)+sizeof(tLONG);	/*...ignoring the header */

pMesh = (MV_MODEL *)malloc(sizeof(MV_MODEL));
if (!pMesh)
return (MV_MODEL *)0;

pMesh->iNumFaces = 0;
pMesh->iNumVertices = 0;

do
{
mv_ReadChunk(file_ptr, &id, &size);

switch(id)
{
case	SMV_OBJECTDESCRIPTION:
mv_ParseObjectBlock(file_ptr, size, pObj, pMesh);
break;
default:
mv_SkipChunk(file_ptr, size);
}
}
while(ftell(file_ptr) < end_of_block);

return pMesh;
}
