From 0548dc7639089122c9270c87abe9e769fe89cd9a Mon Sep 17 00:00:00 2001 From: Martin Taibr Date: Sun, 21 Oct 2018 23:07:25 +0200 Subject: [PATCH] document WEP_FLAG_PENETRATEWALLS --- qcsrc/server/weapons/tracing.qc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qcsrc/server/weapons/tracing.qc b/qcsrc/server/weapons/tracing.qc index 506bb43c4..9e78aa3c3 100644 --- a/qcsrc/server/weapons/tracing.qc +++ b/qcsrc/server/weapons/tracing.qc @@ -31,7 +31,16 @@ void W_SetupShot_Dir_ProjectileSize_Range(entity ent, .entity weaponentity, vect if(!IS_CLIENT(ent)) antilag = false; // no antilag for non-clients! if (IS_PLAYER(ent) && (wep.spawnflags & WEP_FLAG_PENETRATEWALLS)) + { + // This is the reason rifle, MG, OKMG and other fireBullet weapons don't hit the crosshair when shooting at walls. + // This is intentional, otherwise if you stand too close to a (glass) wall and attempt to shoot an enemy through it, + // trueaim will cause the shot to hit the wall exactly but then miss the enemy (unless shooting from eye/center). + // TODO for fireBullet, find how far the shot will penetrate and aim at that + // for fireRailgunbullet, find the farthest target and aim at that + // this will avoid issues when another player is passing in front of you when you shoot + // (currently such a shot will hit him but then miss the original target) ent.dphitcontentsmask = DPCONTENTS_BODY | DPCONTENTS_CORPSE; + } else ent.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE; if(antilag) -- 2.39.2