From 68e4033b2e8393d2c2553382aa68c11fa4c80d49 Mon Sep 17 00:00:00 2001 From: havoc Date: Sun, 17 Jun 2007 07:22:10 +0000 Subject: [PATCH] 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 --- csprogs.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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; -- 2.39.2