- if ((e->render.colormap > 0 && e->render.colormap <= cl.maxclients) || e->render.colormap >= 1024)
- {
- unsigned char *cbcolor;
- int palcol;
- if (e->render.colormap >= 1024)
- palcol = (unsigned char)(e->render.colormap-1024);
- else
- palcol = cl.scores[e->render.colormap-1].colors;
-
- cbcolor = (unsigned char *) (&palette_pantscolormap[palcol & 0xF]);
- e->render.colormap_pantscolor[0] = cbcolor[0] * (1.0f / 255.0f);
- e->render.colormap_pantscolor[1] = cbcolor[1] * (1.0f / 255.0f);
- e->render.colormap_pantscolor[2] = cbcolor[2] * (1.0f / 255.0f);
- cbcolor = (unsigned char *) (&palette_shirtcolormap[(palcol & 0xF0) >> 4]);
- e->render.colormap_shirtcolor[0] = cbcolor[0] * (1.0f / 255.0f);
- e->render.colormap_shirtcolor[1] = cbcolor[1] * (1.0f / 255.0f);
- e->render.colormap_shirtcolor[2] = cbcolor[2] * (1.0f / 255.0f);
- }
+ c = (int)ed->fields.client->colormap;
+ if (c <= 0)
+ CL_SetEntityColormapColors(entrender, -1);
+ else if (c <= cl.maxclients && cl.scores != NULL)
+ CL_SetEntityColormapColors(entrender, cl.scores[c-1].colors);
+ else
+ CL_SetEntityColormapColors(entrender, c);