-/*
-void Mod_MD2_LoadTriangles(md2triangle_t *in)
-{
- int i, j;
- loadmodel->md2data_tris = Mem_Alloc(loadmodel->mempool, loadmodel->numtris * sizeof(md2triangle_t));
+ // load the triangles and stvert data
+ inst = (void*)(base + LittleLong(pinmodel->ofs_st));
+ intri = (void*)(base + LittleLong(pinmodel->ofs_tris));
+ skinwidth = LittleLong(pinmodel->skinwidth);
+ skinheight = LittleLong(pinmodel->skinheight);
+
+ stverts = Mem_Alloc(tempmempool, numst * sizeof(float[2]));
+ s = 1.0f / skinwidth;
+ t = 1.0f / skinheight;
+ for (i = 0;i < numst;i++)
+ {
+ j = (unsigned short) LittleShort(inst[i*2+0]);
+ k = (unsigned short) LittleShort(inst[i*2+1]);
+ if (j >= skinwidth || k >= skinheight)
+ {
+ Mem_Free(stverts);
+ Host_Error("Mod_MD2_LoadGeometry: invalid skin coordinate (%i %i) on vert %i of model %s\n", j, k, i, loadmodel->name);
+ }
+ stverts[i*2+0] = j * s;
+ stverts[i*2+1] = k * t;
+ }
+
+ md2verthash = Mem_Alloc(tempmempool, 256 * sizeof(hash));
+ md2verthashdata = Mem_Alloc(tempmempool, loadmodel->numtris * 3 * sizeof(*hash));