From: havoc Date: Sun, 17 Jun 2007 07:22:10 +0000 (+0000) Subject: patch from Spike which implements colormap support on csqc entities X-Git-Tag: xonotic-v0.1.0preview~3024 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=68e4033b2e8393d2c2553382aa68c11fa4c80d49;p=xonotic%2Fdarkplaces.git patch from Spike which implements colormap support on csqc entities git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7440 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/csprogs.c b/csprogs.c index 6a8b57cd..fea2b60d 100644 --- a/csprogs.c +++ b/csprogs.c @@ -177,6 +177,28 @@ qboolean CSQC_AddRenderEdict(prvm_edict_t *ed) if(renderflags & RF_ADDITIVE) e->render.effects |= EF_ADDITIVE; } + if ((e->render.colormap > 0 && e->render.colormap <= cl.maxclients) || e->render.colormap >= 1024) + { + int cb; + 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; + + cb = (palcol & 0xF) << 4;cb += (cb >= 128 && cb < 224) ? 4 : 12; + cbcolor = (unsigned char *) (&palette_complete[cb]); + 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); + cb = (palcol & 0xF0);cb += (cb >= 128 && cb < 224) ? 4 : 12; + cbcolor = (unsigned char *) (&palette_complete[cb]); + 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); + } + // either fullbright or lit if (!(e->render.effects & EF_FULLBRIGHT) && !r_fullbright.integer) e->render.flags |= RENDER_LIGHT;