- Mod_BuildTextureVectorsAndNormals(mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_texcoord2f, mesh->data_element3i, svector3f, tvector3f, normal3f);
- }
- for (layernum = 0, layer = skin->data_layers;layernum < skin->num_layers;layernum++, layer++)
- {
- 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;
- if (layer->flags & ALIASLAYER_SPECULAR)
- {
- c_alias_polys += mesh->num_triangles;
- 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, LIGHTING_SPECULAR);
- }
- else 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)
- continue;
- 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);
- }
- 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)
- continue;
- 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);
- }
- c_alias_polys += mesh->num_triangles;
- 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, LIGHTING_DIFFUSE);
- }