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 ();
|
CL_ClearState ();
|
||||||
P_NewServer();
|
Cvar_ForceCallback(&r_particlesdesc);
|
||||||
Stats_NewMap();
|
Stats_NewMap();
|
||||||
cl.servercount = svcnt;
|
cl.servercount = svcnt;
|
||||||
|
|
||||||
|
@ -1692,7 +1692,7 @@ void CLQ2_ParseServerData (void)
|
||||||
//cl.refresh_prepped = false;
|
//cl.refresh_prepped = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
P_NewServer();
|
Cvar_ForceCallback(&r_particlesdesc);
|
||||||
|
|
||||||
if (R_PreNewMap)
|
if (R_PreNewMap)
|
||||||
R_PreNewMap();
|
R_PreNewMap();
|
||||||
|
@ -1712,7 +1712,7 @@ void CLNQ_ParseServerData(void) //Doesn't change gamedir - use with caution.
|
||||||
Con_TPrintf (TLC_GOTSVDATAPACKET);
|
Con_TPrintf (TLC_GOTSVDATAPACKET);
|
||||||
CL_ClearState ();
|
CL_ClearState ();
|
||||||
Stats_NewMap();
|
Stats_NewMap();
|
||||||
P_NewServer();
|
Cvar_ForceCallback(&r_particlesdesc);
|
||||||
|
|
||||||
protover = MSG_ReadLong ();
|
protover = MSG_ReadLong ();
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,10 @@ extern cvar_t r_part_rain;
|
||||||
extern cvar_t r_bloodstains;
|
extern cvar_t r_bloodstains;
|
||||||
extern cvar_t gl_part_flame;
|
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");
|
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);
|
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 model_t mod_known[];
|
||||||
extern int mod_numknown;
|
extern int mod_numknown;
|
||||||
|
int restrictlevel = Cmd_FromGamecode() ? RESTRICT_SERVER : RESTRICT_LOCAL;
|
||||||
|
|
||||||
model_t *mod;
|
model_t *mod;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (cls.state == ca_disconnected)
|
||||||
|
return; // don't bother parsing while disconnected
|
||||||
|
|
||||||
for (i = 0; i < numparticletypes; i++)
|
for (i = 0; i < numparticletypes; i++)
|
||||||
{
|
{
|
||||||
*part_type[i].texname = '\0';
|
*part_type[i].texname = '\0';
|
||||||
|
@ -1501,8 +1508,6 @@ void P_NewServer(void)
|
||||||
part_type->ramp = NULL;
|
part_type->ramp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (i=0 , mod=mod_known ; i<mod_numknown ; i++, mod++)
|
for (i=0 , mod=mod_known ; i<mod_numknown ; i++, mod++)
|
||||||
{
|
{
|
||||||
mod->particleeffect = -1;
|
mod->particleeffect = -1;
|
||||||
|
@ -1539,8 +1544,8 @@ void P_NewServer(void)
|
||||||
file = COM_LoadMallocFile(va("%s.cfg", r_particlesdesc.string));
|
file = COM_LoadMallocFile(va("%s.cfg", r_particlesdesc.string));
|
||||||
if (file)
|
if (file)
|
||||||
{
|
{
|
||||||
Cbuf_AddText(file, RESTRICT_LOCAL);
|
Cbuf_AddText(file, restrictlevel);
|
||||||
Cbuf_AddText("\n", RESTRICT_LOCAL); //I'm paranoid.
|
Cbuf_AddText("\n", restrictlevel);
|
||||||
BZ_Free(file);
|
BZ_Free(file);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -136,7 +136,6 @@ typedef struct beamseg_s
|
||||||
void P_DrawParticles (void);
|
void P_DrawParticles (void);
|
||||||
void P_InitParticles (void);
|
void P_InitParticles (void);
|
||||||
void P_ClearParticles (void);
|
void P_ClearParticles (void);
|
||||||
void P_NewServer(void);
|
|
||||||
|
|
||||||
//allocate a new effect
|
//allocate a new effect
|
||||||
int P_ParticleTypeForName(char *name);
|
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;
|
typedef enum { BM_BLEND, BM_BLENDCOLOUR, BM_ADD, BM_SUBTRACT } blendmode_t;
|
||||||
|
|
||||||
|
// used for callback
|
||||||
|
extern cvar_t r_particlesdesc;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue