mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2025-02-02 22:11:22 +00:00
add r_noshadow_list cvar (from MarkV), removing hardcoded list of models to not have shadows
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1210 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
parent
2e2b110ecb
commit
95e0be7afe
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];
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
Mod_SetExtraFlags -- johnfitz -- set up extra flags that aren't in the mdl
|
||||
=================
|
||||
*/
|
||||
void Mod_SetExtraFlags (qmodel_t *mod)
|
||||
static qboolean
|
||||
nameInList(const char *list, const char *name)
|
||||
{
|
||||
extern cvar_t r_nolerp_list;
|
||||
const char *s;
|
||||
char tmp[MAX_QPATH];
|
||||
int i;
|
||||
|
||||
if (!mod || !mod->name || mod->type != mod_alias)
|
||||
return;
|
||||
s = list;
|
||||
|
||||
mod->flags &= 0xFF; //only preserve first byte
|
||||
|
||||
// nolerp flag
|
||||
s = r_nolerp_list.string;
|
||||
while (*s)
|
||||
{
|
||||
// make a copy until the next comma or end of string
|
||||
|
@ -2430,23 +2420,37 @@ void Mod_SetExtraFlags (qmodel_t *mod)
|
|||
}
|
||||
tmp[i] = '\0';
|
||||
//compare it to the model name
|
||||
if (!strcmp(mod->name, tmp))
|
||||
if (!strcmp(name, tmp))
|
||||
{
|
||||
mod->flags |= MOD_NOLERP;
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
//search forwards to the next comma or end of string
|
||||
while (*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") ||
|
||||
!strcmp (mod->name, "progs/bolt1.mdl") ||
|
||||
!strcmp (mod->name, "progs/bolt2.mdl") ||
|
||||
!strcmp (mod->name, "progs/bolt3.mdl") ||
|
||||
!strcmp (mod->name, "progs/laser.mdl"))
|
||||
/*
|
||||
=================
|
||||
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, 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;
|
||||
|
||||
// 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_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_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;
|
||||
//johnfitz
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ extern cvar_t r_showbboxes;
|
|||
extern cvar_t r_lerpmodels;
|
||||
extern cvar_t r_lerpmove;
|
||||
extern cvar_t r_nolerp_list;
|
||||
extern cvar_t r_noshadow_list;
|
||||
//johnfitz
|
||||
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;
|
||||
for (i=0; i < MAX_MODELS; i++)
|
||||
|
@ -166,7 +167,9 @@ void R_Init (void)
|
|||
Cvar_RegisterVariable (&r_lerpmodels);
|
||||
Cvar_RegisterVariable (&r_lerpmove);
|
||||
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
|
||||
|
||||
Cvar_RegisterVariable (&gl_zfix); // QuakeSpasm z-fighting fix
|
||||
|
|
Loading…
Reference in a new issue