From: Mircea Kitsune Date: Thu, 25 Aug 2011 16:36:38 +0000 (+0300) Subject: Re-implement lifetime for the effects X-Git-Tag: xonotic-v0.6.0~110^2^2~91 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=6bbc463dada078044df5c0ed1733187e6f05c0e8;p=xonotic%2Fxonotic-data.pk3dir.git Re-implement lifetime for the effects --- diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index ac12dd8d9..df6814349 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -365,3 +365,5 @@ string autocvar__togglezoom; float autocvar_cl_damageeffect_player; float autocvar_cl_damageeffect_gibs; float autocvar_cl_damageeffect_gibs_randomize; +float autocvar_cl_damageeffect_lifetime; +float autocvar_cl_damageeffect_lifetime_max; diff --git a/qcsrc/client/damage.qc b/qcsrc/client/damage.qc index cf65d9d73..1f6efab3e 100644 --- a/qcsrc/client/damage.qc +++ b/qcsrc/client/damage.qc @@ -239,6 +239,7 @@ void DamageInfo_Precache() .entity dmgent; .float dmgpartnum, dmgtime; +.float lifetime; void Ent_DamageEffect_Think() { @@ -247,6 +248,12 @@ void Ent_DamageEffect_Think() float foundgib; entity entcs; + if(time >= self.lifetime) + { + remove(self); + self = world; + return; + } if(self.dmgtime > time) return; entcs = entcs_receiver[self.team]; @@ -262,7 +269,7 @@ void Ent_DamageEffect_Think() { if(autocvar_cl_damageeffect_gibs) { - if(autocvar_cl_damageeffect_gibs_randomize < random()) + if(autocvar_cl_damageeffect_gibs_randomize >= random()) pointparticles(self.dmgpartnum, head.origin, '0 0 0', 1); self.dmgtime = time + autocvar_cl_damageeffect_gibs; } @@ -327,6 +334,7 @@ void Ent_DamageEffect() e.classname = "damageeffect"; e.team = entnumber - 1; e.dmgpartnum = particleeffectnum(effectnum); + e.lifetime = time + bound(0, dmg * autocvar_cl_damageeffect_lifetime, autocvar_cl_damageeffect_lifetime_max); e.think = Ent_DamageEffect_Think; e.nextthink = time; }