]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Re-implement lifetime for the effects
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Thu, 25 Aug 2011 16:36:38 +0000 (19:36 +0300)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Thu, 25 Aug 2011 16:36:38 +0000 (19:36 +0300)
qcsrc/client/autocvars.qh
qcsrc/client/damage.qc

index ac12dd8d9af39e09d3b5e762f886050526039690..df681434907bba9629e3d19c9d74b47056921637 100644 (file)
@@ -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;
index cf65d9d73973193735fea3e79c54978dc54e4dbd..1f6efab3ef39c79caee89ec98d3b752bfdd0ee20 100644 (file)
@@ -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;
 }