mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-20 18:52:28 +00:00
[nq] Add a cvar to control player shadows
cl_player_shadows defaults to 1 thus giving a nice (for the resolution) shadow of the player (and disables the weapon shadow).
This commit is contained in:
parent
6892dc1422
commit
5a6d3ec3c9
3 changed files with 20 additions and 4 deletions
|
@ -202,6 +202,7 @@ extern int cl_color;
|
|||
|
||||
extern int cl_shownet;
|
||||
extern int cl_nolerp;
|
||||
extern int cl_player_shadows;
|
||||
|
||||
extern char *cl_name;
|
||||
extern int cl_writecfg;
|
||||
|
|
|
@ -265,7 +265,7 @@ CL_RelinkEntities (void)
|
|||
animation->pose1 = animation->pose2 = -1;
|
||||
CL_TransformEntity (ent, new->scale / 16.0, new->angles,
|
||||
new->origin);
|
||||
if (i != cl.viewentity || chase_active) {
|
||||
if (i != cl.viewentity || chase_active || cl_player_shadows) {
|
||||
R_AddEfrags (&cl_world.scene->worldmodel->brush, ent);
|
||||
}
|
||||
*old_origin = new->origin;
|
||||
|
@ -296,13 +296,15 @@ CL_RelinkEntities (void)
|
|||
}
|
||||
CL_TransformEntity (ent, new->scale / 16.0, angles, origin);
|
||||
}
|
||||
if (i != cl.viewentity || chase_active) {
|
||||
if (i != cl.viewentity || chase_active || cl_player_shadows) {
|
||||
vec4f_t org = Transform_GetWorldPosition (transform);
|
||||
if (!VectorCompare (org, *old_origin)) {//FIXME
|
||||
R_AddEfrags (&cl_world.scene->worldmodel->brush, ent);
|
||||
}
|
||||
}
|
||||
}
|
||||
renderer->onlyshadows = (cl_player_shadows && i == cl.viewentity
|
||||
&& !chase_active);
|
||||
|
||||
// rotate binary objects locally
|
||||
if (model_flags & EF_ROTATE) {
|
||||
|
|
|
@ -123,6 +123,15 @@ static cvar_t cl_nolerp_cvar = {
|
|||
.flags = CVAR_NONE,
|
||||
.value = { .type = &cexpr_int, .value = &cl_nolerp },
|
||||
};
|
||||
int cl_player_shadows;
|
||||
static cvar_t cl_player_shadows_cvar = {
|
||||
.name = "cl_player_shadows",
|
||||
.description =
|
||||
"Show player shadows instead of weapon shadows",
|
||||
.default_value = "1",
|
||||
.flags = CVAR_ARCHIVE,
|
||||
.value = { .type = &cexpr_int, .value = &cl_player_shadows },
|
||||
};
|
||||
|
||||
static int r_ambient;
|
||||
static cvar_t r_ambient_cvar = {
|
||||
|
@ -257,6 +266,7 @@ CL_InitCvars (void)
|
|||
Cvar_Register (&cl_writecfg_cvar, 0, 0);
|
||||
Cvar_Register (&cl_shownet_cvar, 0, 0);
|
||||
Cvar_Register (&cl_nolerp_cvar, 0, 0);
|
||||
Cvar_Register (&cl_player_shadows_cvar, 0, 0);
|
||||
|
||||
//FIXME not hooked up (don't do anything), but should not work in
|
||||
//multi-player
|
||||
|
@ -280,9 +290,12 @@ CL_ClearState (void)
|
|||
r_data->lightstyle = cl.lightstyle;
|
||||
|
||||
cl.viewstate.weapon_entity = Scene_CreateEntity (cl_world.scene);
|
||||
renderer_t *renderer = Ent_GetComponent (cl.viewstate.weapon_entity.id, scene_renderer, cl_world.scene->reg);
|
||||
renderer->depthhack = 1;
|
||||
CL_Init_Entity (cl.viewstate.weapon_entity);
|
||||
renderer_t *renderer = Ent_GetComponent (cl.viewstate.weapon_entity.id,
|
||||
scene_renderer,
|
||||
cl_world.scene->reg);
|
||||
renderer->depthhack = 1;
|
||||
renderer->noshadows = cl_player_shadows;
|
||||
r_data->view_model = cl.viewstate.weapon_entity;
|
||||
|
||||
CL_TEnts_Precache ();
|
||||
|
|
Loading…
Reference in a new issue