Added cvar cl_laseralpha and documentation in cvarlist

This commit is contained in:
BjossiAlfreds 2024-03-31 10:45:31 +00:00
parent 9569f41c3c
commit c134d0127d
5 changed files with 29 additions and 2 deletions

View file

@ -120,6 +120,11 @@ Set `0` by default.
* **cl_kickangles**: If set to `0` angle kicks (weapon recoil, damage * **cl_kickangles**: If set to `0` angle kicks (weapon recoil, damage
hits and the like) are ignored. Cheat-protected. Defaults to `1`. hits and the like) are ignored. Cheat-protected. Defaults to `1`.
* **cl_laseralpha**: Controls how see-through laserbeams are.
The value ranges from 0.0 to 1.0, from completely invisible to
completely opaque. So higher value means better visibility.
Defaults to `0.3`.
* **cl_limitsparksounds**: If set to `1` the number of sound generated * **cl_limitsparksounds**: If set to `1` the number of sound generated
when shooting into power screen and power shields is limited to 16. when shooting into power screen and power shields is limited to 16.
This works around global volume drops in some OpenAL implementations This works around global volume drops in some OpenAL implementations

View file

@ -139,8 +139,17 @@ CL_AddPacketEntities(frame_t *frame)
/* tweak the color of beams */ /* tweak the color of beams */
if (renderfx & RF_BEAM) if (renderfx & RF_BEAM)
{ {
ent.alpha = cl_laseralpha->value;
if (ent.alpha < 0.0f)
{
ent.alpha = 0.0f;
}
else if (ent.alpha > 1.0f)
{
ent.alpha = 1.0f;
}
/* the four beam colors are encoded in 32 bits of skinnum (hack) */ /* the four beam colors are encoded in 32 bits of skinnum (hack) */
ent.alpha = 0.30f;
ent.skinnum = (s1->skinnum >> ((randk() % 4) * 8)) & 0xff; ent.skinnum = (s1->skinnum >> ((randk() % 4) * 8)) & 0xff;
ent.model = NULL; ent.model = NULL;
} }

View file

@ -50,6 +50,7 @@ cvar_t *cl_add_lights;
cvar_t *cl_add_entities; cvar_t *cl_add_entities;
cvar_t *cl_add_blend; cvar_t *cl_add_blend;
cvar_t *cl_kickangles; cvar_t *cl_kickangles;
cvar_t *cl_laseralpha;
cvar_t *cl_shownet; cvar_t *cl_shownet;
cvar_t *cl_showmiss; cvar_t *cl_showmiss;
@ -515,6 +516,7 @@ CL_InitLocal(void)
cl_predict = Cvar_Get("cl_predict", "1", 0); cl_predict = Cvar_Get("cl_predict", "1", 0);
cl_showfps = Cvar_Get("cl_showfps", "0", CVAR_ARCHIVE); cl_showfps = Cvar_Get("cl_showfps", "0", CVAR_ARCHIVE);
cl_showspeed = Cvar_Get("cl_showspeed", "0", CVAR_ARCHIVE); cl_showspeed = Cvar_Get("cl_showspeed", "0", CVAR_ARCHIVE);
cl_laseralpha = Cvar_Get("cl_laseralpha", "0.3", 0);
cl_upspeed = Cvar_Get("cl_upspeed", "200", 0); cl_upspeed = Cvar_Get("cl_upspeed", "200", 0);
cl_forwardspeed = Cvar_Get("cl_forwardspeed", "200", 0); cl_forwardspeed = Cvar_Get("cl_forwardspeed", "200", 0);

View file

@ -492,10 +492,20 @@ CL_ParseLaser(int colors)
{ {
if (l->endtime < cl.time) if (l->endtime < cl.time)
{ {
float alpha = cl_laseralpha->value;
if (alpha < 0.0f)
{
alpha = 0.0f;
}
else if (alpha > 1.0f)
{
alpha = 1.0f;
}
l->ent.flags = RF_TRANSLUCENT | RF_BEAM; l->ent.flags = RF_TRANSLUCENT | RF_BEAM;
VectorCopy(start, l->ent.origin); VectorCopy(start, l->ent.origin);
VectorCopy(end, l->ent.oldorigin); VectorCopy(end, l->ent.oldorigin);
l->ent.alpha = 0.30f; l->ent.alpha = alpha;
l->ent.skinnum = (colors >> ((randk() % 4) * 8)) & 0xff; l->ent.skinnum = (colors >> ((randk() % 4) * 8)) & 0xff;
l->ent.model = NULL; l->ent.model = NULL;
l->ent.frame = 4; l->ent.frame = 4;

View file

@ -316,6 +316,7 @@ extern cvar_t *vid_renderer;
extern cvar_t *cl_kickangles; extern cvar_t *cl_kickangles;
extern cvar_t *cl_r1q2_lightstyle; extern cvar_t *cl_r1q2_lightstyle;
extern cvar_t *cl_limitsparksounds; extern cvar_t *cl_limitsparksounds;
extern cvar_t *cl_laseralpha;
typedef struct typedef struct
{ {