| 30 |  |  | 
| 31 |  | static MESH     *mlist = NULL;          /* list of loaded meshes */ | 
| 32 |  |  | 
| 33 | + | static lut_keycmpf_t cvcmp; | 
| 34 | + | static lut_hashf_t cvhash; | 
| 35 |  |  | 
| 36 | + |  | 
| 37 |  | static unsigned long | 
| 38 | < | cvhash(cvp)                             /* hash an encoded vertex */ | 
| 39 | < | MCVERT  *cvp; | 
| 38 | > | cvhash(p)                               /* hash an encoded vertex */ | 
| 39 | > | /* MCVERT       *cvp; */ | 
| 40 | > | const void      *p; | 
| 41 |  | { | 
| 42 | + | const MCVERT    *cvp = (const MCVERT *)p; | 
| 43 |  | unsigned long   hval; | 
| 44 |  |  | 
| 45 |  | if (!(cvp->fl & MT_V)) | 
| 54 |  |  | 
| 55 |  |  | 
| 56 |  | static int | 
| 57 | < | cvcmp(v1, v2)                           /* compare encoded vertices */ | 
| 58 | < | register MCVERT *v1, *v2; | 
| 57 | > | cvcmp(vv1, vv2)                         /* compare encoded vertices */ | 
| 58 | > | /* register MCVERT      *v1, *v2; */ | 
| 59 | > | const void      *vv1, *vv2; | 
| 60 |  | { | 
| 61 | + | const MCVERT    *v1 = vv1, *v2 = vv2; | 
| 62 |  | if (v1->fl != v2->fl) | 
| 63 |  | return(1); | 
| 64 |  | if (v1->xyz[0] != v2->xyz[0]) | 
| 553 |  | if (nouvbounds && pp->uv != NULL) | 
| 554 |  | return("unreferenced uv coordinates"); | 
| 555 |  | } | 
| 549 | – | if (pp->ntris + pp->nj1tris + pp->nj2tris <= 0) | 
| 550 | – | error(WARNING, "no triangles in patch"); | 
| 556 |  | if (pp->ntris > 0 && pp->tri == NULL) | 
| 557 |  | return("missing patch triangle list"); | 
| 558 |  | if (pp->nj1tris > 0 && pp->j1tri == NULL) | 
| 620 |  | t2cnt += pp->nj2tris; | 
| 621 |  | } | 
| 622 |  | fprintf(fp, "Mesh statistics:\n"); | 
| 623 | < | fprintf(fp, "\t%ld materials\n", ms->nmats); | 
| 623 | > | fprintf(fp, "\t%ld materials\n", (long)ms->nmats); | 
| 624 |  | fprintf(fp, "\t%d patches (%.2f MBytes)\n", ms->npatches, | 
| 625 |  | (ms->npatches*sizeof(MESHPATCH) + | 
| 626 |  | vcnt*3*sizeof(uint32) + |