- index = *in++;
- glTexCoord2f(tex[index*2], tex[index*2+1]);
- if (colors)
- glColor4f(colors[index*4] * (1.0f / 255.0f), colors[index*4+1] * (1.0f / 255.0f), colors[index*4+2] * (1.0f / 255.0f), colors[index*4+3] * (1.0f / 255.0f));
- glVertex3fv(&aliasvert[index*3]);
+ fullbright = !(layer->flags & ALIASLAYER_DIFFUSE) || r_fullbright.integer || (ent->effects & EF_FULLBRIGHT);
+ if (r_shadow_realtime_world.integer && !fullbright)
+ {
+ colorscale *= r_ambient.value * (2.0f / 128.0f);
+ fullbright = true;
+ }
+ if (layer->flags & (ALIASLAYER_COLORMAP_PANTS | ALIASLAYER_COLORMAP_SHIRT))
+ {
+ // 128-224 are backwards ranges
+ if (layer->flags & ALIASLAYER_COLORMAP_PANTS)
+ c = (ent->colormap & 0xF) << 4;
+ else //if (layer->flags & ALIASLAYER_COLORMAP_SHIRT)
+ c = (ent->colormap & 0xF0);
+ c += (c >= 128 && c < 224) ? 4 : 12;
+ bcolor = (qbyte *) (&palette_complete[c]);
+ fullbright = fullbright || c >= 224;
+ VectorScale(bcolor, (1.0f / 255.0f), tint);
+ }
+ else
+ tint[0] = tint[1] = tint[2] = 1;
+ colorscale *= ifog;
+ if (fullbright)
+ GL_Color(tint[0] * colorscale, tint[1] * colorscale, tint[2] * colorscale, ent->alpha);
+ else
+ {
+ if (R_LightModel(ambientcolor4f, diffusecolor, diffusenormal, ent, tint[0] * colorscale, tint[1] * colorscale, tint[2] * colorscale, ent->alpha, false))
+ {
+ GL_ColorPointer(varray_color4f);
+ R_Model_Alias_GetMesh_Array3f(ent, mesh, MODELARRAY_NORMAL, varray_normal3f);
+ R_LightModel_CalcVertexColors(ambientcolor4f, diffusecolor, diffusenormal, mesh->num_vertices, varray_vertex3f, varray_normal3f, varray_color4f);
+ }
+ else
+ GL_Color(ambientcolor4f[0], ambientcolor4f[1], ambientcolor4f[2], ambientcolor4f[3]);
+ }