]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
fix solidpenetration
authorMartin Taibr <taibr.martin@gmail.com>
Mon, 15 Aug 2016 19:00:27 +0000 (21:00 +0200)
committerMartin Taibr <taibr.martin@gmail.com>
Mon, 15 Aug 2016 19:00:27 +0000 (21:00 +0200)
qcsrc/server/weapons/tracing.qc

index 85551aa2b36dd1168ab19c5fe93ff238284b418f..eace8ce0c79b086d8107488b274890e198bd3960 100644 (file)
@@ -22,7 +22,7 @@
 // make sure you call makevectors first (FIXME?)
 void W_SetupShot_Dir_ProjectileSize_Range(entity ent, .entity weaponentity, vector s_forward, vector mi, vector ma, float antilag, float recoil, Sound snd, float chan, float maxdamage, float range)
 {
-    TC(Sound, snd);
+       TC(Sound, snd);
        float nudge = 1; // added to traceline target and subtracted from result  TOOD(divVerent): do we still need this? Doesn't the engine do this now for us?
        float oldsolid;
        vector vecs, dv;
@@ -475,7 +475,8 @@ void fireBullet(entity this, vector start, vector dir, float spread, float max_s
                        break;
 
                float dist_taken = max(autocvar_g_ballistics_mindistance, vlen(trace_endpos - start));
-               solid_penetration_left *= (dist_taken / maxdist);
+               solid_penetration_left -= (dist_taken / maxdist);
+               solid_penetration_left = max(solid_penetration_left, 0);
 
                // Only show effect when going through a player (invisible otherwise)
                if (hit && (hit.solid != SOLID_BSP))