From fe53615900e4309a64f513e162f4538c208ba1ce Mon Sep 17 00:00:00 2001 From: TimeServ Date: Mon, 30 Aug 2004 06:07:13 +0000 Subject: [PATCH] custom tent change git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@74 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/cl_tent.c | 18 +++++++++++++++++- engine/server/pr_cmds.c | 7 +++++++ engine/server/server.h | 2 ++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/engine/client/cl_tent.c b/engine/client/cl_tent.c index 1a62c50f4..128f51b91 100644 --- a/engine/client/cl_tent.c +++ b/engine/client/cl_tent.c @@ -804,12 +804,14 @@ typedef struct { vec3_t dlightrgb; float dlightradius; float dlighttime; + vec3_t dlightcfade; } clcustomtents_t; #define CTE_CUSTOMCOUNT 1 #define CTE_CUSTOMDIRECTION 2 #define CTE_STAINS 4 #define CTE_GLOWS 8 +#define CTE_CHANNELFADE 16 #define CTE_ISBEAM 128 clcustomtents_t customtenttype[255]; //network based. @@ -850,6 +852,12 @@ void CL_ParseCustomTEnt(void) t->dlightrgb[2] = MSG_ReadByte()/255.0f; t->dlightradius = MSG_ReadByte(); t->dlighttime = MSG_ReadByte()/16.0f; + if (t->netstyle & CTE_CHANNELFADE) + { + t->dlightcfade[0] = MSG_ReadByte()/64.0f; + t->dlightcfade[1] = MSG_ReadByte()/64.0f; + t->dlightcfade[2] = MSG_ReadByte()/64.0f; + } } else t->dlighttime = 0; @@ -901,7 +909,14 @@ void CL_ParseCustomTEnt(void) dl->color[1] = t->dlightrgb[1]; dl->color[2] = t->dlightrgb[2]; - // let darklights work since they get no control over this just yet + if (t->netstyle & CTE_CHANNELFADE) + { + dl->channelfade[0] = t->dlightcfade[0]; + dl->channelfade[1] = t->dlightcfade[1]; + dl->channelfade[2] = t->dlightcfade[2]; + } + + /* if (dl->color[0] < 0) dl->channelfade[0] = 0; else @@ -916,6 +931,7 @@ void CL_ParseCustomTEnt(void) dl->channelfade[2] = 0; else dl->channelfade[2] = dl->color[0]/t->dlighttime; + */ } } void CL_ClearCustomTEnts(void) diff --git a/engine/server/pr_cmds.c b/engine/server/pr_cmds.c index 894f0098f..8988251ec 100644 --- a/engine/server/pr_cmds.c +++ b/engine/server/pr_cmds.c @@ -6112,6 +6112,13 @@ void PF_RegisterTEnt(progfuncs_t *prinst, struct globalvars_s *pr_globals) sv.customtents[i].dlightradius = G_FLOAT(OFS_PARM1+arg*3)/4; sv.customtents[i].dlighttime = G_FLOAT(OFS_PARM2+arg*3)*16; arg += 3; + if (nettype & CTE_CHANNELFADE) + { + sv.customtents[i].dlightcfade[0] = G_FLOAT(OFS_PARM0+arg*3+0)*64; + sv.customtents[i].dlightcfade[1] = G_FLOAT(OFS_PARM0+arg*3+1)*64; + sv.customtents[i].dlightcfade[2] = G_FLOAT(OFS_PARM0+arg*3+2)*64; + arg++; // we're out now.. + } } if (arg != *prinst->callargc) diff --git a/engine/server/server.h b/engine/server/server.h index 7ce8005ad..5ff61d2fc 100644 --- a/engine/server/server.h +++ b/engine/server/server.h @@ -71,11 +71,13 @@ typedef struct { qbyte dlightrgb[3]; qbyte dlightradius; qbyte dlighttime; + qbyte dlightcfade[3]; } svcustomtents_t; #define CTE_CUSTOMCOUNT 1 #define CTE_CUSTOMDIRECTION 2 #define CTE_STAINS 4 #define CTE_GLOWS 8 +#define CTE_CHANNELFADE 16 #define CTE_ISBEAM 128 typedef struct