add r_particlesdesc callback and removed latch, r_particlesdesc will now reload particle set on change
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2245 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
0f2a193838
commit
9e8aa5ee66
3 changed files with 17 additions and 10 deletions
|
@ -1486,7 +1486,7 @@ void CL_ParseServerData (void)
|
|||
}
|
||||
|
||||
CL_ClearState ();
|
||||
P_NewServer();
|
||||
Cvar_ForceCallback(&r_particlesdesc);
|
||||
Stats_NewMap();
|
||||
cl.servercount = svcnt;
|
||||
|
||||
|
@ -1692,7 +1692,7 @@ void CLQ2_ParseServerData (void)
|
|||
//cl.refresh_prepped = false;
|
||||
}
|
||||
|
||||
P_NewServer();
|
||||
Cvar_ForceCallback(&r_particlesdesc);
|
||||
|
||||
if (R_PreNewMap)
|
||||
R_PreNewMap();
|
||||
|
@ -1712,7 +1712,7 @@ void CLNQ_ParseServerData(void) //Doesn't change gamedir - use with caution.
|
|||
Con_TPrintf (TLC_GOTSVDATAPACKET);
|
||||
CL_ClearState ();
|
||||
Stats_NewMap();
|
||||
P_NewServer();
|
||||
Cvar_ForceCallback(&r_particlesdesc);
|
||||
|
||||
protover = MSG_ReadLong ();
|
||||
|
||||
|
|
|
@ -121,7 +121,10 @@ extern cvar_t r_part_rain;
|
|||
extern cvar_t r_bloodstains;
|
||||
extern cvar_t gl_part_flame;
|
||||
|
||||
cvar_t r_particlesdesc = SCVARF("r_particlesdesc", "spikeset", CVAR_LATCH|CVAR_SEMICHEAT);
|
||||
// callbacks
|
||||
void R_ParticlesDesc_Callback(struct cvar_s *var, char *oldvalue);
|
||||
|
||||
cvar_t r_particlesdesc = SCVARFC("r_particlesdesc", "spikeset", CVAR_SEMICHEAT, R_ParticlesDesc_Callback);
|
||||
|
||||
cvar_t r_part_rain_quantity = SCVAR("r_part_rain_quantity", "1");
|
||||
|
||||
|
@ -1483,14 +1486,18 @@ void P_ExportBuiltinSet_f(void)
|
|||
Con_Printf("Written particles/%s.cfg\n", efname);
|
||||
}
|
||||
|
||||
void P_NewServer(void)
|
||||
void R_ParticlesDesc_Callback(struct cvar_s *var, char *oldvalue)
|
||||
{
|
||||
extern model_t mod_known[];
|
||||
extern int mod_numknown;
|
||||
int restrictlevel = Cmd_FromGamecode() ? RESTRICT_SERVER : RESTRICT_LOCAL;
|
||||
|
||||
model_t *mod;
|
||||
int i;
|
||||
|
||||
if (cls.state == ca_disconnected)
|
||||
return; // don't bother parsing while disconnected
|
||||
|
||||
for (i = 0; i < numparticletypes; i++)
|
||||
{
|
||||
*part_type[i].texname = '\0';
|
||||
|
@ -1501,8 +1508,6 @@ void P_NewServer(void)
|
|||
part_type->ramp = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
for (i=0 , mod=mod_known ; i<mod_numknown ; i++, mod++)
|
||||
{
|
||||
mod->particleeffect = -1;
|
||||
|
@ -1539,8 +1544,8 @@ void P_NewServer(void)
|
|||
file = COM_LoadMallocFile(va("%s.cfg", r_particlesdesc.string));
|
||||
if (file)
|
||||
{
|
||||
Cbuf_AddText(file, RESTRICT_LOCAL);
|
||||
Cbuf_AddText("\n", RESTRICT_LOCAL); //I'm paranoid.
|
||||
Cbuf_AddText(file, restrictlevel);
|
||||
Cbuf_AddText("\n", restrictlevel);
|
||||
BZ_Free(file);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -136,7 +136,6 @@ typedef struct beamseg_s
|
|||
void P_DrawParticles (void);
|
||||
void P_InitParticles (void);
|
||||
void P_ClearParticles (void);
|
||||
void P_NewServer(void);
|
||||
|
||||
//allocate a new effect
|
||||
int P_ParticleTypeForName(char *name);
|
||||
|
@ -182,4 +181,7 @@ void P_DelinkTrailstate(trailstate_t **tsk);
|
|||
|
||||
typedef enum { BM_BLEND, BM_BLENDCOLOUR, BM_ADD, BM_SUBTRACT } blendmode_t;
|
||||
|
||||
// used for callback
|
||||
extern cvar_t r_particlesdesc;
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue