mirror of
https://github.com/blendogames/thirtyflightsofloving.git
synced 2024-11-15 00:41:21 +00:00
Added r_entity_doublelight cvar to renderer.
This commit is contained in:
parent
fdca639bd4
commit
c137bb8926
4 changed files with 36 additions and 20 deletions
|
@ -66,6 +66,8 @@ Changes as of v0.20 update 8:
|
||||||
- Added changeable gl_clear color controlled by cvars r_clearcolor_r, r_clearcolor_g, and r_clearcolor_b.
|
- Added changeable gl_clear color controlled by cvars r_clearcolor_r, r_clearcolor_g, and r_clearcolor_b.
|
||||||
Values are normalized (0-1).
|
Values are normalized (0-1).
|
||||||
|
|
||||||
|
- Added doubled entity lighting to mimic Q2's original entity lighting. Set the cvar r_entity_doublelight to 1 to enable this.
|
||||||
|
|
||||||
- Added ifeq, ifneq, ifgt, ifge, iflt, ifle, ifbit, and ifnbit layout script commands.
|
- Added ifeq, ifneq, ifgt, ifge, iflt, ifle, ifbit, and ifnbit layout script commands.
|
||||||
|
|
||||||
- Added a check to prevent game code from sending unicasts to non-present clients (i.e. bots). This would
|
- Added a check to prevent game code from sending unicasts to non-present clients (i.e. bots). This would
|
||||||
|
|
|
@ -399,7 +399,7 @@ void R_LightPoint (vec3_t p, vec3_t color, qboolean isEnt)
|
||||||
}
|
}
|
||||||
|
|
||||||
// this catches too bright modulated color
|
// this catches too bright modulated color
|
||||||
for (i=0;i<3;i++)
|
for (i=0; i<3; i++)
|
||||||
if (color[i]>1) color[i] = 1;
|
if (color[i]>1) color[i] = 1;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -422,8 +422,13 @@ void R_LightPoint (vec3_t p, vec3_t color, qboolean isEnt)
|
||||||
if (add > 0)
|
if (add > 0)
|
||||||
VectorMA (color, add, dl->color, color);
|
VectorMA (color, add, dl->color, color);
|
||||||
}
|
}
|
||||||
//VectorScale (color, r_modulate->value, color); // Knightmare- this makes ents too bright
|
|
||||||
//VectorScale (color, r_modulate->value*1.5f, color); // Knightmare- this makes ents too bright
|
// scale up light color by r_modulate if enabled
|
||||||
|
if (r_entity_doublelight->integer) {
|
||||||
|
VectorScale (color, r_modulate->value, color);
|
||||||
|
}
|
||||||
|
// VectorScale (color, r_modulate->value, color); // Knightmare- this makes ents too bright
|
||||||
|
// VectorScale (color, r_modulate->value*1.5f, color); // Knightmare- this makes ents too bright
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -462,7 +467,7 @@ void R_LightPointDynamics (vec3_t p, vec3_t color, m_dlight_t *list, int *amount
|
||||||
VectorCopy (pointcolor, color);
|
VectorCopy (pointcolor, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
//this catches too bright modulated color
|
// this catches too bright modulated color
|
||||||
for (i=0;i<3;i++)
|
for (i=0;i<3;i++)
|
||||||
if (color[i]>1) color[i] = 1;
|
if (color[i]>1) color[i] = 1;
|
||||||
|
|
||||||
|
@ -471,7 +476,7 @@ void R_LightPointDynamics (vec3_t p, vec3_t color, m_dlight_t *list, int *amount
|
||||||
//
|
//
|
||||||
m_dl = 0;
|
m_dl = 0;
|
||||||
dl = r_newrefdef.dlights;
|
dl = r_newrefdef.dlights;
|
||||||
for (lnum=0 ; lnum<r_newrefdef.num_dlights ; lnum++, dl++)
|
for (lnum=0; lnum<r_newrefdef.num_dlights; lnum++, dl++)
|
||||||
{
|
{
|
||||||
if (dl->spotlight) // spotlights
|
if (dl->spotlight) // spotlights
|
||||||
continue;
|
continue;
|
||||||
|
@ -485,7 +490,7 @@ void R_LightPointDynamics (vec3_t p, vec3_t color, m_dlight_t *list, int *amount
|
||||||
float highest = -1;
|
float highest = -1;
|
||||||
|
|
||||||
VectorScale(dl->color, add, dlColor);
|
VectorScale(dl->color, add, dlColor);
|
||||||
for (i=0;i<3;i++)
|
for (i=0; i<3; i++)
|
||||||
if (highest<dlColor[i]) highest = dlColor[i];
|
if (highest<dlColor[i]) highest = dlColor[i];
|
||||||
|
|
||||||
if (m_dl<max)
|
if (m_dl<max)
|
||||||
|
@ -500,8 +505,8 @@ void R_LightPointDynamics (vec3_t p, vec3_t color, m_dlight_t *list, int *amount
|
||||||
float least_val = 10;
|
float least_val = 10;
|
||||||
int least_index = 0;
|
int least_index = 0;
|
||||||
|
|
||||||
for (i=0;i<m_dl;i++)
|
for (i=0; i<m_dl; i++)
|
||||||
if (list[i].strength<least_val)
|
if (list[i].strength < least_val)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
@ -517,6 +522,11 @@ void R_LightPointDynamics (vec3_t p, vec3_t color, m_dlight_t *list, int *amount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// scale up light color by r_modulate if enabled
|
||||||
|
if (r_entity_doublelight->integer) {
|
||||||
|
VectorScale (color, r_modulate->value, color);
|
||||||
|
}
|
||||||
|
|
||||||
*amount = m_dl;
|
*amount = m_dl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -241,6 +241,7 @@ extern cvar_t *r_dlights_normal;
|
||||||
extern cvar_t *r_model_shading;
|
extern cvar_t *r_model_shading;
|
||||||
extern cvar_t *r_model_dlights;
|
extern cvar_t *r_model_dlights;
|
||||||
extern cvar_t *r_model_minlight;
|
extern cvar_t *r_model_minlight;
|
||||||
|
extern cvar_t *r_entity_doublelight;
|
||||||
|
|
||||||
extern cvar_t *r_lightlevel; // FIXME: This is a HACK to get the client's light level
|
extern cvar_t *r_lightlevel; // FIXME: This is a HACK to get the client's light level
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,7 @@ cvar_t *r_dlights_normal; // lerped dlights on models
|
||||||
cvar_t *r_model_shading;
|
cvar_t *r_model_shading;
|
||||||
cvar_t *r_model_dlights;
|
cvar_t *r_model_dlights;
|
||||||
cvar_t *r_model_minlight;
|
cvar_t *r_model_minlight;
|
||||||
|
cvar_t *r_entity_doublelight;
|
||||||
|
|
||||||
cvar_t *r_lightlevel; // FIXME: This is a HACK to get the client's light level
|
cvar_t *r_lightlevel; // FIXME: This is a HACK to get the client's light level
|
||||||
|
|
||||||
|
@ -683,9 +684,9 @@ void R_RenderView (refdef_t *fd)
|
||||||
{
|
{
|
||||||
R_SuspendFog ();
|
R_SuspendFog ();
|
||||||
|
|
||||||
// R_DrawAllDecals();
|
// R_DrawAllDecals ();
|
||||||
R_DrawAllEntities(false);
|
R_DrawAllEntities( false);
|
||||||
R_DrawAllParticles();
|
R_DrawAllParticles ();
|
||||||
|
|
||||||
R_ResumeFog ();
|
R_ResumeFog ();
|
||||||
}
|
}
|
||||||
|
@ -696,17 +697,17 @@ void R_RenderView (refdef_t *fd)
|
||||||
R_RenderDlights();
|
R_RenderDlights();
|
||||||
|
|
||||||
if (r_transrendersort->integer) {
|
if (r_transrendersort->integer) {
|
||||||
//R_BuildParticleList();
|
// R_BuildParticleList ();
|
||||||
R_SortParticlesOnList();
|
R_SortParticlesOnList ();
|
||||||
R_DrawAllDecals();
|
R_DrawAllDecals ();
|
||||||
//R_DrawAllEntityShadows();
|
// R_DrawAllEntityShadows ();
|
||||||
R_DrawSolidEntities();
|
R_DrawSolidEntities ();
|
||||||
R_DrawEntitiesOnList(ents_trans);
|
R_DrawEntitiesOnList (ents_trans);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
R_DrawAllDecals();
|
R_DrawAllDecals ();
|
||||||
//R_DrawAllEntityShadows();
|
// R_DrawAllEntityShadows ();
|
||||||
R_DrawAllEntities(true);
|
R_DrawAllEntities (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
R_DrawAllParticles ();
|
R_DrawAllParticles ();
|
||||||
|
@ -964,6 +965,8 @@ void R_Register (void)
|
||||||
Cvar_SetDescription ("r_model_dlights", "Sets maximum number of dynamic lights for a model.");
|
Cvar_SetDescription ("r_model_dlights", "Sets maximum number of dynamic lights for a model.");
|
||||||
r_model_minlight = Cvar_Get ("r_model_minlight", "0.02", CVAR_ARCHIVE );
|
r_model_minlight = Cvar_Get ("r_model_minlight", "0.02", CVAR_ARCHIVE );
|
||||||
Cvar_SetDescription ("r_model_minlight", "Sets minimum light level for alias model rendering.");
|
Cvar_SetDescription ("r_model_minlight", "Sets minimum light level for alias model rendering.");
|
||||||
|
r_entity_doublelight = Cvar_Get ("r_entity_doublelight", "0", CVAR_ARCHIVE );
|
||||||
|
Cvar_SetDescription ("r_entity_doublelight", "Enables original glitchy double-lighting of models. This is a sort-of-exploit, but is not considered a cheat.");
|
||||||
|
|
||||||
r_lightlevel = Cvar_Get ("r_lightlevel", "0", 0);
|
r_lightlevel = Cvar_Get ("r_lightlevel", "0", 0);
|
||||||
Cvar_SetDescription ("r_lightlevel", "Hack to send player's light level to server. This is overwritten every render frame.");
|
Cvar_SetDescription ("r_lightlevel", "Hack to send player's light level to server. This is overwritten every render frame.");
|
||||||
|
|
Loading…
Reference in a new issue