+ e->render.alpha = e->state_current.alpha * (1.0f / 255.0f); // FIXME: interpolate?
+ e->render.scale = e->state_current.scale * (1.0f / 16.0f); // FIXME: interpolate?
+ e->render.flags = e->state_current.flags;
+ e->render.effects = e->state_current.effects;
+ VectorScale(e->state_current.colormod, (1.0f / 32.0f), e->render.colormod);
+ if (e->state_current.flags & RENDER_COLORMAPPED)
+ {
+ int cb;
+ qbyte *cbcolor;
+ e->render.colormap = e->state_current.colormap;
+ cb = (e->render.colormap & 0xF) << 4;cb += (cb >= 128 && cb < 224) ? 4 : 12;
+ cbcolor = (qbyte *) (&palette_complete[cb]);
+ e->render.colormap_pantscolor[0] = cbcolor[0] * (1.0f / 255.0f) * e->render.colormod[0];
+ e->render.colormap_pantscolor[1] = cbcolor[1] * (1.0f / 255.0f) * e->render.colormod[1];
+ e->render.colormap_pantscolor[2] = cbcolor[2] * (1.0f / 255.0f) * e->render.colormod[2];
+ cb = (e->render.colormap & 0xF0);cb += (cb >= 128 && cb < 224) ? 4 : 12;
+ cbcolor = (qbyte *) (&palette_complete[cb]);
+ e->render.colormap_shirtcolor[0] = cbcolor[0] * (1.0f / 255.0f) * e->render.colormod[0];
+ e->render.colormap_shirtcolor[1] = cbcolor[1] * (1.0f / 255.0f) * e->render.colormod[1];
+ e->render.colormap_shirtcolor[2] = cbcolor[2] * (1.0f / 255.0f) * e->render.colormod[2];
+ }
+ else if (e->state_current.colormap && cl.scores != NULL)
+ {
+ int cb;
+ qbyte *cbcolor;
+ e->render.colormap = cl.scores[e->state_current.colormap - 1].colors; // color it
+ cb = (e->render.colormap & 0xF) << 4;cb += (cb >= 128 && cb < 224) ? 4 : 12;
+ cbcolor = (qbyte *) (&palette_complete[cb]);
+ e->render.colormap_pantscolor[0] = cbcolor[0] * (1.0f / 255.0f) * e->render.colormod[0];
+ e->render.colormap_pantscolor[1] = cbcolor[1] * (1.0f / 255.0f) * e->render.colormod[1];
+ e->render.colormap_pantscolor[2] = cbcolor[2] * (1.0f / 255.0f) * e->render.colormod[2];
+ cb = (e->render.colormap & 0xF0);cb += (cb >= 128 && cb < 224) ? 4 : 12;
+ cbcolor = (qbyte *) (&palette_complete[cb]);
+ e->render.colormap_shirtcolor[0] = cbcolor[0] * (1.0f / 255.0f) * e->render.colormod[0];
+ e->render.colormap_shirtcolor[1] = cbcolor[1] * (1.0f / 255.0f) * e->render.colormod[1];
+ e->render.colormap_shirtcolor[2] = cbcolor[2] * (1.0f / 255.0f) * e->render.colormod[2];
+ }
+ else
+ {
+ e->render.colormap = -1; // no special coloring
+ VectorClear(e->render.colormap_pantscolor);
+ VectorClear(e->render.colormap_shirtcolor);
+ }
+ e->render.skinnum = e->state_current.skin;
+ if (e->render.flags & RENDER_VIEWMODEL && !e->state_current.tagentity)