#include #include #include #include "dff.h" void ReadBinMesh(geometry *geo, FILE *dff) { int i, j; split *cursplit; float *normal; fread(&geo->facetype, 4, 1, dff); fread(&geo->splitcount, 4, 1, dff); fread(&geo->indexcount, 4, 1, dff); if (geo->facetype == 1) inc = 1; else inc = 3; /* Loop through splits. * PS2 Version doesn't use indices here. */ geo->splt = (split *) malloc(geo->splitcount*sizeof(split)); for (i = 0; i < geo->splitcount; i++) { cursplit = &geo->splt[i]; fread(&cursplit->indexcount, 4, 1, dff); fread(&cursplit->matindex, 4, 1, dff); if (!geo->isps2) { cursplit->indices = (int *) malloc(cursplit->indexcount*sizeof(int)); for (j = 0; j < cursplit->indexcount; j++) fread(&cursplit->indices[j], 4, 1, dff); cursplit->vertexcount = cursplit->indexcount; } else { cursplit->normals = malloc(geo->indexcount * sizeof(float *)); for (j = 0; j < cursplit->indexcount; j++) cursplit->normals[j], 4, 1, dff); } } }