- if (!(layer->flags & (ALIASLAYER_DIFFUSE | ALIASLAYER_SPECULAR))
- || ((layer->flags & ALIASLAYER_NODRAW_IF_NOTCOLORMAPPED) && ent->colormap < 0)
- || ((layer->flags & ALIASLAYER_NODRAW_IF_COLORMAPPED) && ent->colormap >= 0))
- continue;
- lightcolor2[0] = lightcolor[0] * ifog;
- lightcolor2[1] = lightcolor[1] * ifog;
- lightcolor2[2] = lightcolor[2] * ifog;
- ambientscale2 = 0;
- diffusescale2 = 0;
- specularscale2 = 0;
- if (layer->flags & ALIASLAYER_SPECULAR)
- specularscale2 = specularscale;
- if (layer->flags & ALIASLAYER_DIFFUSE)
- {
- if (layer->flags & ALIASLAYER_COLORMAP_PANTS)
- {
- // 128-224 are backwards ranges
- c = (ent->colormap & 0xF) << 4;c += (c >= 128 && c < 224) ? 4 : 12;
- // fullbright passes were already taken care of, so skip them in realtime lighting passes
- if (c < 224)
- {
- bcolor = (qbyte *) (&palette_complete[c]);
- lightcolor2[0] *= bcolor[0] * (1.0f / 255.0f);
- lightcolor2[1] *= bcolor[1] * (1.0f / 255.0f);
- lightcolor2[2] *= bcolor[2] * (1.0f / 255.0f);
- ambientscale2 = ambientscale;
- diffusescale2 = diffusescale;
- }
- }
- else if (layer->flags & ALIASLAYER_COLORMAP_SHIRT)
- {
- // 128-224 are backwards ranges
- c = (ent->colormap & 0xF0);c += (c >= 128 && c < 224) ? 4 : 12;
- // fullbright passes were already taken care of, so skip them in realtime lighting passes
- if (c < 224)
- {
- bcolor = (qbyte *) (&palette_complete[c]);
- lightcolor2[0] *= bcolor[0] * (1.0f / 255.0f);
- lightcolor2[1] *= bcolor[1] * (1.0f / 255.0f);
- lightcolor2[2] *= bcolor[2] * (1.0f / 255.0f);
- ambientscale2 = ambientscale;
- diffusescale2 = diffusescale;
- }
- }
- else
- {
- ambientscale2 = ambientscale;
- diffusescale2 = diffusescale;
- }
- }
- if (!(ambientscale2 + diffusescale2 + specularscale2) || VectorLength2(lightcolor2) <= 0.01)
- continue;
- c_alias_polys += mesh->num_triangles;
- if (!vertex3f)
- {
- if (ent->frameblend[0].frame == 0 && ent->frameblend[0].lerp == 1)
- {
- vertex3f = mesh->data_basevertex3f;
- svector3f = mesh->data_basesvector3f;
- tvector3f = mesh->data_basetvector3f;
- normal3f = mesh->data_basenormal3f;
- }
- else
- {
- vertex3f = varray_vertex3f;
- svector3f = varray_svector3f;
- tvector3f = varray_tvector3f;
- normal3f = varray_normal3f;
- Mod_Alias_GetMesh_Vertex3f(ent->model, ent->frameblend, mesh, vertex3f);
- Mod_BuildTextureVectorsAndNormals(mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_texcoord2f, mesh->data_element3i, svector3f, tvector3f, normal3f);
- }
- }
- // TODO: make layer have ->gloss as well as ->texture, and merge specular layer for common non-colormapped case?
- R_Shadow_RenderLighting(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i, vertex3f, svector3f, tvector3f, normal3f, mesh->data_texcoord2f, relativelightorigin, relativeeyeorigin, lightcolor2, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, layer->texture, layer->nmap, layer->texture, lightcubemap, ambientscale2, diffusescale2, specularscale2);
+ vertex3f = mesh->data_basevertex3f;
+ svector3f = mesh->data_basesvector3f;
+ tvector3f = mesh->data_basetvector3f;
+ normal3f = mesh->data_basenormal3f;
+ }
+ else
+ {
+ vertex3f = varray_vertex3f;
+ svector3f = varray_svector3f;
+ tvector3f = varray_tvector3f;
+ normal3f = varray_normal3f;
+ Mod_Alias_GetMesh_Vertex3f(ent->model, ent->frameblend, mesh, vertex3f);
+ Mod_BuildTextureVectorsAndNormals(0, mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_texcoord2f, mesh->data_element3i, svector3f, tvector3f, normal3f);