]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Remove the old way of showing damage effects on gibs. Currently, damage effects no...
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Wed, 4 Jan 2012 15:57:24 +0000 (17:57 +0200)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Wed, 4 Jan 2012 15:57:24 +0000 (17:57 +0200)
defaultXonotic.cfg
qcsrc/client/autocvars.qh
qcsrc/client/damage.qc
qcsrc/client/gibs.qc
qcsrc/server/g_violence.qc

index 2d240fd751e89dbf1abda704c7ec89dacf42df97..130f1754f1d0d2f7adb38c4188e4d87f96680b74 100644 (file)
@@ -367,10 +367,8 @@ set g_telefrags_teamplay 1 "never telefrag team mates"
 set g_telefrags_avoid 1 "when teleporters have a random destination, avoid teleporting to locations where a telefrag would happen"
 set g_teleport_maxspeed 0 "maximum speed that a player can keep when going through a teleporter (if a misc_teleporter_dest also has a cap the smallest one of these will be used), 0 = don't limit, -1 = keep no speed"
 
 set g_telefrags_avoid 1 "when teleporters have a random destination, avoid teleporting to locations where a telefrag would happen"
 set g_teleport_maxspeed 0 "maximum speed that a player can keep when going through a teleporter (if a misc_teleporter_dest also has a cap the smallest one of these will be used), 0 = don't limit, -1 = keep no speed"
 
-set cl_damageeffect_player 0.05 "enable weapon damage effects on players, value specifies how often to show the effect"
-set cl_damageeffect_player_limit 3 "how many damages to show on a player at once"
-set cl_damageeffect_gibs 0.125 "enable weapon damage effects on gibs, value specifies how often to show the effect"
-set cl_damageeffect_gibs_randomize 0.5 "probability for effects to show on gibs each tick, used so gibs don't generate particles at the same time and look ugly"
+set cl_damageeffect 0.05 "enable weapon damage effects on players, value specifies how often to show the effect"
+set cl_damageeffect_limit 3 "how many damages to show on a player at once"
 set cl_damageeffect_lifetime 0.04 "how much a damage effect lasts, multiplied by damage amount"
 set cl_damageeffect_lifetime_max 5 "maximum amount of lifetime a damage effect may have at a time"
 
 set cl_damageeffect_lifetime 0.04 "how much a damage effect lasts, multiplied by damage amount"
 set cl_damageeffect_lifetime_max 5 "maximum amount of lifetime a damage effect may have at a time"
 
index 70e0cfd6fbf69d1ed39b8df6256a6b44b34e1038..248166e68405579d6b3d4dc81f108838bb412ba4 100644 (file)
@@ -373,10 +373,8 @@ var float autocvar_cl_eventchase_distance = 140;
 var float autocvar_cl_eventchase_speed = 1.3;
 float autocvar_cl_lerpexcess;
 string autocvar__togglezoom;
 var float autocvar_cl_eventchase_speed = 1.3;
 float autocvar_cl_lerpexcess;
 string autocvar__togglezoom;
-float autocvar_cl_damageeffect_player;
-float autocvar_cl_damageeffect_player_limit;
-float autocvar_cl_damageeffect_gibs;
-float autocvar_cl_damageeffect_gibs_randomize;
+float autocvar_cl_damageeffect;
+float autocvar_cl_damageeffect_limit;
 float autocvar_cl_damageeffect_lifetime;
 float autocvar_cl_damageeffect_lifetime_max;
 float autocvar_cl_playerdetailreduction;
 float autocvar_cl_damageeffect_lifetime;
 float autocvar_cl_damageeffect_lifetime_max;
 float autocvar_cl_playerdetailreduction;
index e60cc363648a89a653553a6cdb4098375aa64caa..ebe7b2801198e3d146b22bd4b75d1edef5943ef7 100644 (file)
@@ -246,8 +246,6 @@ void DamageInfo_Precache()
 void DamageEffect_Think()
 {
        self.nextthink = time;
 void DamageEffect_Think()
 {
        self.nextthink = time;
-
-       float foundgib;
        vector org;
 
        if(time >= self.lifetime)
        vector org;
 
        if(time >= self.lifetime)
@@ -258,34 +256,15 @@ void DamageEffect_Think()
        }
        if(self.dmgtime > time)
                return;
        }
        if(self.dmgtime > time)
                return;
-
-       org = gettaginfo(self.owner, self.bone);
-
-       // Scan the owner of all gibs in the world. If a gib owner is the same as the player we're applying
-       // the effect to, it means our player is gibbed. Therefore, apply particles to the gibs instead.
-       entity head;
-       for(head = world; (head = find(head, classname, "gib")); )
-       {
-               if(head.team == self.team)
-               {
-                       if(autocvar_cl_damageeffect_gibs)
-                       {
-                               if(autocvar_cl_damageeffect_gibs_randomize >= random())
-                                       pointparticles(self.dmgpartnum, head.origin, '0 0 0', 1);
-                               self.dmgtime = time + autocvar_cl_damageeffect_gibs;
-                       }
-                       foundgib = TRUE;
-               }
-       }
-
-       if(foundgib || !autocvar_cl_damageeffect_player)
+       if(!autocvar_cl_damageeffect)
                return; // don't show effects on the invisible dead body if gibs exist
        if(self.team == player_localentnum - 1 && !autocvar_chase_active)
                return; // if we aren't in third person mode, hide own damage effect
 
                return; // don't show effects on the invisible dead body if gibs exist
        if(self.team == player_localentnum - 1 && !autocvar_chase_active)
                return; // if we aren't in third person mode, hide own damage effect
 
-       // Now apply the effect to actual players
+       // Now apply the effect to the player
+       org = gettaginfo(self.owner, self.bone);
        pointparticles(self.dmgpartnum, org, '0 0 0', 1);
        pointparticles(self.dmgpartnum, org, '0 0 0', 1);
-       self.dmgtime = time + autocvar_cl_damageeffect_player;
+       self.dmgtime = time + autocvar_cl_damageeffect;
 }
 
 void DamageEffect(vector hitorg, float dmg, float type, float specnum, float entnumber)
 }
 
 void DamageEffect(vector hitorg, float dmg, float type, float specnum, float entnumber)
@@ -294,9 +273,7 @@ void DamageEffect(vector hitorg, float dmg, float type, float specnum, float ent
        string specstr, effectnum;
        entity e;
 
        string specstr, effectnum;
        entity e;
 
-       if(!autocvar_cl_damageeffect_player && !autocvar_cl_damageeffect_gibs)
-               return;
-       if(autocvar_cl_gentle || autocvar_cl_gentle_damage)
+       if(!autocvar_cl_damageeffect || autocvar_cl_gentle || autocvar_cl_gentle_damage)
                return;
        if(self.model == "" || !self.model)
                return;
                return;
        if(self.model == "" || !self.model)
                return;
@@ -307,7 +284,7 @@ void DamageEffect(vector hitorg, float dmg, float type, float specnum, float ent
                if(e.team == entnumber)
                        i += 1;
        }
                if(e.team == entnumber)
                        i += 1;
        }
-       if(i >= autocvar_cl_damageeffect_player_limit)
+       if(i >= autocvar_cl_damageeffect_limit)
                return;
 
        specstr = species_prefix(specnum);
                return;
 
        specstr = species_prefix(specnum);
index a93f62d830b0bd818df3b3967ccd2e377a8ad6ca..1bceca152afb6a11f6e60001565bd0ec5ab74b55 100644 (file)
@@ -109,7 +109,7 @@ void Gib_Draw()
        }
 }
 
        }
 }
 
-void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent, float gibownernum)
+void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent)
 {
        entity gib;
 
 {
        entity gib;
 
@@ -121,7 +121,6 @@ void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector
        gib.solid = SOLID_CORPSE;
        gib.cnt = specnum;
        gib.silent = issilent;
        gib.solid = SOLID_CORPSE;
        gib.cnt = specnum;
        gib.silent = issilent;
-       gib.team = gibownernum - 1;
        Gib_setmodel(gib, mdlname, specnum);
 
        setsize (gib, '-8 -8 -8', '8 8 8');
        Gib_setmodel(gib, mdlname, specnum);
 
        setsize (gib, '-8 -8 -8', '8 8 8');
@@ -211,37 +210,37 @@ void Ent_GibSplash(float isNew)
                                sound (self, CH_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM);
 
                        if(prandom() < amount)
                                sound (self, CH_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM);
 
                        if(prandom() < amount)
-                               TossGib ("models/gibs/eye.md3", org, org, vel, prandomvec() * 150, specnum, 0, issilent, entnumber);
+                               TossGib ("models/gibs/eye.md3", org, org, vel, prandomvec() * 150, specnum, 0, issilent);
                        new_te_bloodshower(particleeffectnum(strcat(specstr, "bloodshower")), org, 1200, amount);
                        if(prandom() < amount)
                        new_te_bloodshower(particleeffectnum(strcat(specstr, "bloodshower")), org, 1200, amount);
                        if(prandom() < amount)
-                               TossGib ("models/gibs/bloodyskull.md3", org, org + 16 * prandomvec(), vel, prandomvec() * 100, specnum, 0, issilent, entnumber);
+                               TossGib ("models/gibs/bloodyskull.md3", org, org + 16 * prandomvec(), vel, prandomvec() * 100, specnum, 0, issilent);
 
                        for(c = 0; c < amount; ++c)
                        {
                                randomvalue = amount - c;
 
                                if(prandom() < randomvalue)
 
                        for(c = 0; c < amount; ++c)
                        {
                                randomvalue = amount - c;
 
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent, entnumber);
+                                       TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent, entnumber);
+                                       TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/chest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent, entnumber);
+                                       TossGib ("models/gibs/chest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/smallchest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent, entnumber);
+                                       TossGib ("models/gibs/smallchest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/leg1.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent, entnumber);
+                                       TossGib ("models/gibs/leg1.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/leg2.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent, entnumber);
+                                       TossGib ("models/gibs/leg2.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent);
 
                                // these splat on impact
                                if(prandom() < randomvalue)
 
                                // these splat on impact
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber);
+                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber);
+                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber);
+                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent);
                                if(prandom() < randomvalue)
                                if(prandom() < randomvalue)
-                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber);
+                                       TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent);
                        }
                        break;
                case 0x02:
                        }
                        break;
                case 0x02:
@@ -249,7 +248,7 @@ void Ent_GibSplash(float isNew)
                        break;
                case 0x03:
                        if(prandom() < amount)
                        break;
                case 0x03:
                        if(prandom() < amount)
-                               TossGib ("models/gibs/chunk.mdl", org, org, vel, prandomvec() * (prandom() * 30 + 20), specnum, 1, issilent, entnumber); // TODO maybe adjust to more randomization?
+                               TossGib ("models/gibs/chunk.mdl", org, org, vel, prandomvec() * (prandom() * 30 + 20), specnum, 1, issilent); // TODO maybe adjust to more randomization?
                        break;
                case 0x81:
                        pointparticles(particleeffectnum(strcat(gentle_prefix, "damage_dissolve")), org, vel, amount);
                        break;
                case 0x81:
                        pointparticles(particleeffectnum(strcat(gentle_prefix, "damage_dissolve")), org, vel, amount);
index 40fb19018673255269b2de4500090548cfdadb55..ba2426718a571ca706958e8de9b6c3ad94b35a71 100644 (file)
@@ -3,7 +3,6 @@ float Violence_GibSplash_SendEntity(entity to, float sf)
        WriteByte(MSG_ENTITY, ENT_CLIENT_GIBSPLASH);
        WriteByte(MSG_ENTITY, self.state); // actually type
        WriteByte(MSG_ENTITY, bound(1, self.cnt * 16, 255)); // gibbage amount multiplier
        WriteByte(MSG_ENTITY, ENT_CLIENT_GIBSPLASH);
        WriteByte(MSG_ENTITY, self.state); // actually type
        WriteByte(MSG_ENTITY, bound(1, self.cnt * 16, 255)); // gibbage amount multiplier
-       WriteByte(MSG_ENTITY, self.team); // player num
        WriteShort(MSG_ENTITY, floor(self.origin_x / 4)); // not using a coord here, as gibs don't need this accuracy
        WriteShort(MSG_ENTITY, floor(self.origin_y / 4)); // not using a coord here, as gibs don't need this accuracy
        WriteShort(MSG_ENTITY, floor(self.origin_z / 4)); // not using a coord here, as gibs don't need this accuracy
        WriteShort(MSG_ENTITY, floor(self.origin_x / 4)); // not using a coord here, as gibs don't need this accuracy
        WriteShort(MSG_ENTITY, floor(self.origin_y / 4)); // not using a coord here, as gibs don't need this accuracy
        WriteShort(MSG_ENTITY, floor(self.origin_z / 4)); // not using a coord here, as gibs don't need this accuracy