From 40c59ad07fa52fe99ede5da067b69ff0dd532934 Mon Sep 17 00:00:00 2001 From: Martin Taibr Date: Mon, 15 Aug 2016 21:00:27 +0200 Subject: [PATCH] fix solidpenetration --- qcsrc/server/weapons/tracing.qc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qcsrc/server/weapons/tracing.qc b/qcsrc/server/weapons/tracing.qc index 85551aa2b..eace8ce0c 100644 --- a/qcsrc/server/weapons/tracing.qc +++ b/qcsrc/server/weapons/tracing.qc @@ -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)) -- 2.39.2