mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-31 00:30:57 +00:00
bring back the alpha setting for dlights (finally found out what it was
for) and "fix" the wayward dlights in mvds: caused by svc_muzzleflash being written before the player updates. Should probably fix properly that in the server too.
This commit is contained in:
parent
57ffcae9fe
commit
9ed9832789
8 changed files with 33 additions and 19 deletions
|
@ -44,7 +44,7 @@ typedef struct dlight_s
|
||||||
float die; // stop lighting after this time
|
float die; // stop lighting after this time
|
||||||
float decay; // drop this each second
|
float decay; // drop this each second
|
||||||
float minlight; // don't add when contributing less
|
float minlight; // don't add when contributing less
|
||||||
float color[3]; // Don't use alpha --KB
|
float color[4];
|
||||||
} dlight_t;
|
} dlight_t;
|
||||||
|
|
||||||
extern dlight_t *r_dlights;
|
extern dlight_t *r_dlights;
|
||||||
|
|
|
@ -90,7 +90,7 @@ R_RenderDlight (dlight_t *light)
|
||||||
|
|
||||||
qfglBegin (GL_TRIANGLE_FAN);
|
qfglBegin (GL_TRIANGLE_FAN);
|
||||||
|
|
||||||
qfglColor3fv (light->color);
|
qfglColor4fv (light->color);
|
||||||
|
|
||||||
VectorSubtract (r_origin, light->origin, v);
|
VectorSubtract (r_origin, light->origin, v);
|
||||||
VectorNormalize (v);
|
VectorNormalize (v);
|
||||||
|
|
|
@ -400,10 +400,10 @@ CL_NewDlight (int key, vec3_t org, int effects)
|
||||||
float radius;
|
float radius;
|
||||||
float time = 0.1;
|
float time = 0.1;
|
||||||
dlight_t *dl;
|
dlight_t *dl;
|
||||||
static vec3_t normal = {0.4, 0.2, 0.05};
|
static quat_t normal = {0.4, 0.2, 0.05, 0.7};
|
||||||
static vec3_t red = {0.5, 0.05, 0.05};
|
static quat_t red = {0.5, 0.05, 0.05, 0.7};
|
||||||
static vec3_t blue = {0.05, 0.05, 0.5};
|
static quat_t blue = {0.05, 0.05, 0.5, 0.7};
|
||||||
static vec3_t purple = {0.5, 0.05, 0.5};
|
static quat_t purple = {0.5, 0.05, 0.5, 0.7};
|
||||||
|
|
||||||
if (!(effects & (EF_BLUE | EF_RED | EF_BRIGHTLIGHT | EF_DIMLIGHT)))
|
if (!(effects & (EF_BLUE | EF_RED | EF_BRIGHTLIGHT | EF_DIMLIGHT)))
|
||||||
return;
|
return;
|
||||||
|
@ -425,16 +425,16 @@ CL_NewDlight (int key, vec3_t org, int effects)
|
||||||
|
|
||||||
switch (effects & (EF_BLUE | EF_RED)) {
|
switch (effects & (EF_BLUE | EF_RED)) {
|
||||||
case EF_RED | EF_BLUE:
|
case EF_RED | EF_BLUE:
|
||||||
VectorCopy (purple, dl->color);
|
QuatCopy (purple, dl->color);
|
||||||
break;
|
break;
|
||||||
case EF_RED:
|
case EF_RED:
|
||||||
VectorCopy (red, dl->color);
|
QuatCopy (red, dl->color);
|
||||||
break;
|
break;
|
||||||
case EF_BLUE:
|
case EF_BLUE:
|
||||||
VectorCopy (blue, dl->color);
|
QuatCopy (blue, dl->color);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
VectorCopy (normal, dl->color);
|
QuatCopy (normal, dl->color);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -598,6 +598,7 @@ CL_RelinkEntities (void)
|
||||||
dl->color[0] = 0.2;
|
dl->color[0] = 0.2;
|
||||||
dl->color[1] = 0.1;
|
dl->color[1] = 0.1;
|
||||||
dl->color[2] = 0.05;
|
dl->color[2] = 0.05;
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CL_NewDlight (i, ent->origin, state->effects);
|
CL_NewDlight (i, ent->origin, state->effects);
|
||||||
|
@ -611,6 +612,7 @@ CL_RelinkEntities (void)
|
||||||
dl->radius = 200;
|
dl->radius = 200;
|
||||||
dl->die = cl.time + 0.1;
|
dl->die = cl.time + 0.1;
|
||||||
VectorCopy (r_firecolor->vec, dl->color);
|
VectorCopy (r_firecolor->vec, dl->color);
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
R_RocketTrail (ent);
|
R_RocketTrail (ent);
|
||||||
} else if (ent->model->flags & EF_GRENADE)
|
} else if (ent->model->flags & EF_GRENADE)
|
||||||
|
|
|
@ -339,6 +339,7 @@ CL_ParseTEnt (void)
|
||||||
dl->color[0] = 1.0;
|
dl->color[0] = 1.0;
|
||||||
dl->color[1] = 0.5;
|
dl->color[1] = 0.5;
|
||||||
dl->color[2] = 0.25;
|
dl->color[2] = 0.25;
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sound
|
// sound
|
||||||
|
@ -409,6 +410,7 @@ CL_ParseTEnt (void)
|
||||||
dl->color[0] = vid.palette[colorStart] * (1.0 / 255.0);
|
dl->color[0] = vid.palette[colorStart] * (1.0 / 255.0);
|
||||||
dl->color[1] = vid.palette[colorStart + 1] * (1.0 / 255.0);
|
dl->color[1] = vid.palette[colorStart + 1] * (1.0 / 255.0);
|
||||||
dl->color[2] = vid.palette[colorStart + 2] * (1.0 / 255.0);
|
dl->color[2] = vid.palette[colorStart + 2] * (1.0 / 255.0);
|
||||||
|
dl->color[3] = 0.7;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TE_EXPLOSION3: // Nehahra colored light explosion
|
case TE_EXPLOSION3: // Nehahra colored light explosion
|
||||||
|
@ -423,6 +425,7 @@ CL_ParseTEnt (void)
|
||||||
dl->die = cl.time + 0.5;
|
dl->die = cl.time + 0.5;
|
||||||
dl->decay = 300;
|
dl->decay = 300;
|
||||||
VectorCopy (col, dl->color);
|
VectorCopy (col, dl->color);
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ struct skin_s;
|
||||||
|
|
||||||
extern int packet_latency[NET_TIMINGS];
|
extern int packet_latency[NET_TIMINGS];
|
||||||
extern int parsecountmod;
|
extern int parsecountmod;
|
||||||
|
extern int player_parsecountmod;
|
||||||
extern double parsecounttime;
|
extern double parsecounttime;
|
||||||
extern int cl_playerindex;
|
extern int cl_playerindex;
|
||||||
extern int cl_flagindex;
|
extern int cl_flagindex;
|
||||||
|
|
|
@ -97,10 +97,10 @@ CL_NewDlight (int key, vec3_t org, int effects, byte glow_size,
|
||||||
{
|
{
|
||||||
float radius;
|
float radius;
|
||||||
dlight_t *dl;
|
dlight_t *dl;
|
||||||
static vec3_t normal = {0.4, 0.2, 0.05};
|
static quat_t normal = {0.4, 0.2, 0.05, 0.7};
|
||||||
static vec3_t red = {0.5, 0.05, 0.05};
|
static quat_t red = {0.5, 0.05, 0.05, 0.7};
|
||||||
static vec3_t blue = {0.05, 0.05, 0.5};
|
static quat_t blue = {0.05, 0.05, 0.5, 0.7};
|
||||||
static vec3_t purple = {0.5, 0.05, 0.5};
|
static quat_t purple = {0.5, 0.05, 0.5, 0.7};
|
||||||
|
|
||||||
effects &= EF_BLUE | EF_RED | EF_BRIGHTLIGHT | EF_DIMLIGHT;
|
effects &= EF_BLUE | EF_RED | EF_BRIGHTLIGHT | EF_DIMLIGHT;
|
||||||
if (!effects) {
|
if (!effects) {
|
||||||
|
@ -126,16 +126,16 @@ CL_NewDlight (int key, vec3_t org, int effects, byte glow_size,
|
||||||
dl->die = cl.time + 0.1;
|
dl->die = cl.time + 0.1;
|
||||||
switch (effects & (EF_RED | EF_BLUE)) {
|
switch (effects & (EF_RED | EF_BLUE)) {
|
||||||
case EF_RED | EF_BLUE:
|
case EF_RED | EF_BLUE:
|
||||||
VectorCopy (purple, dl->color);
|
QuatCopy (purple, dl->color);
|
||||||
break;
|
break;
|
||||||
case EF_RED:
|
case EF_RED:
|
||||||
VectorCopy (red, dl->color);
|
QuatCopy (red, dl->color);
|
||||||
break;
|
break;
|
||||||
case EF_BLUE:
|
case EF_BLUE:
|
||||||
VectorCopy (blue, dl->color);
|
QuatCopy (blue, dl->color);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
VectorCopy (normal, dl->color);
|
QuatCopy (normal, dl->color);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -537,6 +537,7 @@ CL_LinkPacketEntities (void)
|
||||||
dl->radius = 200.0;
|
dl->radius = 200.0;
|
||||||
dl->die = cl.time + 0.1;
|
dl->die = cl.time + 0.1;
|
||||||
VectorCopy (r_firecolor->vec, dl->color);
|
VectorCopy (r_firecolor->vec, dl->color);
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
R_RocketTrail (*ent);
|
R_RocketTrail (*ent);
|
||||||
} else if (model->flags & EF_GRENADE)
|
} else if (model->flags & EF_GRENADE)
|
||||||
|
@ -663,6 +664,7 @@ CL_ParsePlayerinfo (void)
|
||||||
Host_Error ("CL_ParsePlayerinfo: bad num");
|
Host_Error ("CL_ParsePlayerinfo: bad num");
|
||||||
|
|
||||||
info = &cl.players[num];
|
info = &cl.players[num];
|
||||||
|
player_parsecountmod = parsecountmod;
|
||||||
state = &cl.frames[parsecountmod].playerstate[num];
|
state = &cl.frames[parsecountmod].playerstate[num];
|
||||||
|
|
||||||
state->number = num;
|
state->number = num;
|
||||||
|
@ -1160,6 +1162,7 @@ CL_EmitEntities (void)
|
||||||
dl->color[0] = 0;
|
dl->color[0] = 0;
|
||||||
dl->color[1] = 1;
|
dl->color[1] = 1;
|
||||||
dl->color[2] = 0;
|
dl->color[2] = 0;
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
VectorCopy (nearloc->loc, trueloc);
|
VectorCopy (nearloc->loc, trueloc);
|
||||||
R_WizSpikeEffect (trueloc);
|
R_WizSpikeEffect (trueloc);
|
||||||
|
|
|
@ -159,6 +159,7 @@ const char *svc_strings[] = {
|
||||||
|
|
||||||
int oldparsecountmod;
|
int oldparsecountmod;
|
||||||
int parsecountmod;
|
int parsecountmod;
|
||||||
|
int player_parsecountmod;
|
||||||
double parsecounttime;
|
double parsecounttime;
|
||||||
|
|
||||||
int viewentity;
|
int viewentity;
|
||||||
|
@ -1156,7 +1157,7 @@ CL_MuzzleFlash (void)
|
||||||
if ((unsigned int) (i - 1) >= MAX_CLIENTS)
|
if ((unsigned int) (i - 1) >= MAX_CLIENTS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pl = &cl.frames[parsecountmod].playerstate[i - 1];
|
pl = &cl.frames[player_parsecountmod].playerstate[i - 1];
|
||||||
|
|
||||||
dl = R_AllocDlight (i);
|
dl = R_AllocDlight (i);
|
||||||
if (!dl)
|
if (!dl)
|
||||||
|
@ -1174,6 +1175,7 @@ CL_MuzzleFlash (void)
|
||||||
dl->color[0] = 0.2;
|
dl->color[0] = 0.2;
|
||||||
dl->color[1] = 0.1;
|
dl->color[1] = 0.1;
|
||||||
dl->color[2] = 0.05;
|
dl->color[2] = 0.05;
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SHOWNET(x) \
|
#define SHOWNET(x) \
|
||||||
|
|
|
@ -350,6 +350,7 @@ CL_ParseTEnt (void)
|
||||||
dl->color[0] = 0.86;
|
dl->color[0] = 0.86;
|
||||||
dl->color[1] = 0.31;
|
dl->color[1] = 0.31;
|
||||||
dl->color[2] = 0.24;
|
dl->color[2] = 0.24;
|
||||||
|
dl->color[3] = 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sound
|
// sound
|
||||||
|
@ -419,6 +420,7 @@ CL_ParseTEnt (void)
|
||||||
dl->color[0] = vid.palette[colorStart] * (1.0 / 255.0);
|
dl->color[0] = vid.palette[colorStart] * (1.0 / 255.0);
|
||||||
dl->color[1] = vid.palette[colorStart + 1] * (1.0 / 255.0);
|
dl->color[1] = vid.palette[colorStart + 1] * (1.0 / 255.0);
|
||||||
dl->color[2] = vid.palette[colorStart + 2] * (1.0 / 255.0);
|
dl->color[2] = vid.palette[colorStart + 2] * (1.0 / 255.0);
|
||||||
|
dl->color[3] = 0.7;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TE_GUNSHOT: // bullet hitting wall
|
case TE_GUNSHOT: // bullet hitting wall
|
||||||
|
@ -446,6 +448,7 @@ CL_ParseTEnt (void)
|
||||||
dl->color[0] = 0.25;
|
dl->color[0] = 0.25;
|
||||||
dl->color[1] = 0.40;
|
dl->color[1] = 0.40;
|
||||||
dl->color[2] = 0.65;
|
dl->color[2] = 0.65;
|
||||||
|
dl->color[3] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
R_LightningBloodEffect (pos);
|
R_LightningBloodEffect (pos);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue