- surf->lightmaptexturestride = 0;
- surf->lightmaptexture = NULL;
-
- surf->mesh = mesh = Mem_Alloc(loadmodel->mempool, sizeof(surfmesh_t) + (surf->poly_numverts - 2) * sizeof(int[3]) + surf->poly_numverts * sizeof(surfvertex_t));
- mesh->numverts = surf->poly_numverts;
- mesh->numtriangles = surf->poly_numverts - 2;
- mesh->vertex = (surfvertex_t *)(mesh + 1);
- mesh->index = (int *)(mesh->vertex + mesh->numverts);
- memset(mesh->vertex, 0, mesh->numverts * sizeof(surfvertex_t));
-
- index = mesh->index;
- for (i = 0;i < mesh->numtriangles;i++)
- {
- *index++ = 0;
- *index++ = i + 1;
- *index++ = i + 2;
- }
-
- for (i = 0, in = surf->poly_verts, out = mesh->vertex;i < mesh->numverts;i++, in += 3, out++)
- {
- VectorCopy (in, out->v);
-
- s = DotProduct (out->v, surf->texinfo->vecs[0]) + surf->texinfo->vecs[0][3];
- t = DotProduct (out->v, surf->texinfo->vecs[1]) + surf->texinfo->vecs[1][3];
-
- out->ab[0] = s * (1.0f / 16.0f);
- out->ab[1] = t * (1.0f / 16.0f);
-
- out->st[0] = s / surf->texinfo->texture->width;
- out->st[1] = t / surf->texinfo->texture->height;
-
- s = (s + 8 - surf->texturemins[0]) * (1.0 / 16.0);
- t = (t + 8 - surf->texturemins[1]) * (1.0 / 16.0);
-
- // lightmap coordinates
- out->uv[0] = 0;
- out->uv[1] = 0;
-
- // LordHavoc: calc lightmap data offset for vertex lighting to use
- is = (int) s;
- it = (int) t;
- is = bound(0, is, smax);
- it = bound(0, it, tmax);
- out->lightmapoffset = ((it * (smax+1) + is) * 3);
- }
-}
-
-void Mod_GenerateLightmappedMesh (msurface_t *surf)
-{
- int i, is, it, *index, smax, tmax;
- float *in, s, t, xbase, ybase, xscale, yscale;
- surfvertex_t *out;
- surfmesh_t *mesh;