mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2025-02-19 10:31:08 +00:00
add r_noshadow_list cvar (from MarkV), removing hardcoded list of models to not have shadows
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1210 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
parent
0ef7b2be15
commit
a3f63c8023
3 changed files with 35 additions and 26 deletions
|
@ -2399,25 +2399,15 @@ void Mod_CalcAliasBounds (aliashdr_t *a)
|
||||||
loadmodel->ymaxs[2] = loadmodel->maxs[2];
|
loadmodel->ymaxs[2] = loadmodel->maxs[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
static qboolean
|
||||||
=================
|
nameInList(const char *list, const char *name)
|
||||||
Mod_SetExtraFlags -- johnfitz -- set up extra flags that aren't in the mdl
|
|
||||||
=================
|
|
||||||
*/
|
|
||||||
void Mod_SetExtraFlags (qmodel_t *mod)
|
|
||||||
{
|
{
|
||||||
extern cvar_t r_nolerp_list;
|
|
||||||
const char *s;
|
const char *s;
|
||||||
char tmp[MAX_QPATH];
|
char tmp[MAX_QPATH];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!mod || !mod->name || mod->type != mod_alias)
|
s = list;
|
||||||
return;
|
|
||||||
|
|
||||||
mod->flags &= 0xFF; //only preserve first byte
|
|
||||||
|
|
||||||
// nolerp flag
|
|
||||||
s = r_nolerp_list.string;
|
|
||||||
while (*s)
|
while (*s)
|
||||||
{
|
{
|
||||||
// make a copy until the next comma or end of string
|
// make a copy until the next comma or end of string
|
||||||
|
@ -2430,23 +2420,37 @@ void Mod_SetExtraFlags (qmodel_t *mod)
|
||||||
}
|
}
|
||||||
tmp[i] = '\0';
|
tmp[i] = '\0';
|
||||||
//compare it to the model name
|
//compare it to the model name
|
||||||
if (!strcmp(mod->name, tmp))
|
if (!strcmp(name, tmp))
|
||||||
{
|
{
|
||||||
mod->flags |= MOD_NOLERP;
|
return true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
//search forwards to the next comma or end of string
|
//search forwards to the next comma or end of string
|
||||||
while (*s && *s == ',')
|
while (*s && *s == ',')
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// noshadow flag (TODO: make this a cvar list)
|
/*
|
||||||
if (!strcmp (mod->name, "progs/flame2.mdl") ||
|
=================
|
||||||
!strcmp (mod->name, "progs/flame.mdl") ||
|
Mod_SetExtraFlags -- johnfitz -- set up extra flags that aren't in the mdl
|
||||||
!strcmp (mod->name, "progs/bolt1.mdl") ||
|
=================
|
||||||
!strcmp (mod->name, "progs/bolt2.mdl") ||
|
*/
|
||||||
!strcmp (mod->name, "progs/bolt3.mdl") ||
|
void Mod_SetExtraFlags (qmodel_t *mod)
|
||||||
!strcmp (mod->name, "progs/laser.mdl"))
|
{
|
||||||
|
extern cvar_t r_nolerp_list, r_noshadow_list;
|
||||||
|
|
||||||
|
if (!mod || !mod->name || mod->type != mod_alias)
|
||||||
|
return;
|
||||||
|
|
||||||
|
mod->flags &= 0xFF; //only preserve first byte
|
||||||
|
|
||||||
|
// nolerp flag
|
||||||
|
if (nameInList(r_nolerp_list.string, mod->name))
|
||||||
|
mod->flags |= MOD_NOLERP;
|
||||||
|
|
||||||
|
// noshadow flag
|
||||||
|
if (nameInList(r_noshadow_list.string, mod->name))
|
||||||
mod->flags |= MOD_NOSHADOW;
|
mod->flags |= MOD_NOSHADOW;
|
||||||
|
|
||||||
// fullbright hack (TODO: make this a cvar list)
|
// fullbright hack (TODO: make this a cvar list)
|
||||||
|
|
|
@ -96,6 +96,8 @@ cvar_t r_showbboxes = {"r_showbboxes", "0", CVAR_NONE};
|
||||||
cvar_t r_lerpmodels = {"r_lerpmodels", "1", CVAR_NONE};
|
cvar_t r_lerpmodels = {"r_lerpmodels", "1", CVAR_NONE};
|
||||||
cvar_t r_lerpmove = {"r_lerpmove", "1", CVAR_NONE};
|
cvar_t r_lerpmove = {"r_lerpmove", "1", CVAR_NONE};
|
||||||
cvar_t r_nolerp_list = {"r_nolerp_list", "progs/flame.mdl,progs/flame2.mdl,progs/braztall.mdl,progs/brazshrt.mdl,progs/longtrch.mdl,progs/flame_pyre.mdl,progs/v_saw.mdl,progs/v_xfist.mdl,progs/h2stuff/newfire.mdl", CVAR_NONE};
|
cvar_t r_nolerp_list = {"r_nolerp_list", "progs/flame.mdl,progs/flame2.mdl,progs/braztall.mdl,progs/brazshrt.mdl,progs/longtrch.mdl,progs/flame_pyre.mdl,progs/v_saw.mdl,progs/v_xfist.mdl,progs/h2stuff/newfire.mdl", CVAR_NONE};
|
||||||
|
cvar_t r_noshadow_list = {"r_noshadow_list", "progs/flame2.mdl,progs/flame.mdl,progs/bolt1.mdl,progs/bolt2.mdl,progs/bolt3.mdl,progs/laser.mdl", CVAR_NONE};
|
||||||
|
|
||||||
extern cvar_t r_vfog;
|
extern cvar_t r_vfog;
|
||||||
//johnfitz
|
//johnfitz
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,7 @@ extern cvar_t r_showbboxes;
|
||||||
extern cvar_t r_lerpmodels;
|
extern cvar_t r_lerpmodels;
|
||||||
extern cvar_t r_lerpmove;
|
extern cvar_t r_lerpmove;
|
||||||
extern cvar_t r_nolerp_list;
|
extern cvar_t r_nolerp_list;
|
||||||
|
extern cvar_t r_noshadow_list;
|
||||||
//johnfitz
|
//johnfitz
|
||||||
extern cvar_t gl_zfix; // QuakeSpasm z-fighting fix
|
extern cvar_t gl_zfix; // QuakeSpasm z-fighting fix
|
||||||
|
|
||||||
|
@ -98,10 +99,10 @@ static void R_VisChanged (cvar_t *var)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
===============
|
===============
|
||||||
R_NoLerpList_f -- johnfitz -- called when r_nolerp_list cvar changes
|
R_Model_ExtraFlags_List_f -- johnfitz -- called when r_nolerp_list or r_noshadow_list cvar changes
|
||||||
===============
|
===============
|
||||||
*/
|
*/
|
||||||
static void R_NoLerpList_f (cvar_t *var)
|
static void R_Model_ExtraFlags_List_f (cvar_t *var)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i=0; i < MAX_MODELS; i++)
|
for (i=0; i < MAX_MODELS; i++)
|
||||||
|
@ -166,7 +167,9 @@ void R_Init (void)
|
||||||
Cvar_RegisterVariable (&r_lerpmodels);
|
Cvar_RegisterVariable (&r_lerpmodels);
|
||||||
Cvar_RegisterVariable (&r_lerpmove);
|
Cvar_RegisterVariable (&r_lerpmove);
|
||||||
Cvar_RegisterVariable (&r_nolerp_list);
|
Cvar_RegisterVariable (&r_nolerp_list);
|
||||||
Cvar_SetCallback (&r_nolerp_list, R_NoLerpList_f);
|
Cvar_SetCallback (&r_nolerp_list, R_Model_ExtraFlags_List_f);
|
||||||
|
Cvar_RegisterVariable (&r_noshadow_list);
|
||||||
|
Cvar_SetCallback (&r_noshadow_list, R_Model_ExtraFlags_List_f);
|
||||||
//johnfitz
|
//johnfitz
|
||||||
|
|
||||||
Cvar_RegisterVariable (&gl_zfix); // QuakeSpasm z-fighting fix
|
Cvar_RegisterVariable (&gl_zfix); // QuakeSpasm z-fighting fix
|
||||||
|
|
Loading…
Reference in a new issue