From 8a7433cf6e3a5b9951d9c2037c4acb412fe5414e Mon Sep 17 00:00:00 2001 From: Martin Taibr Date: Thu, 25 Jul 2019 14:51:22 +0200 Subject: [PATCH] fix missing nex whoosh in overkill and insta (some turrets use this fn) --- qcsrc/server/weapons/tracing.qc | 41 +++++++++++++++------------------ 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/qcsrc/server/weapons/tracing.qc b/qcsrc/server/weapons/tracing.qc index 74420b333..f09bf1168 100644 --- a/qcsrc/server/weapons/tracing.qc +++ b/qcsrc/server/weapons/tracing.qc @@ -213,10 +213,7 @@ void W_SetupProjVelocity_Explicit(entity proj, vector dir, vector upDir, float p void FireRailgunBullet (entity this, .entity weaponentity, vector start, vector end, float bdamage, float bforce, float mindist, float maxdist, float halflifedist, float forcehalflifedist, int deathtype) { - entity pseudoprojectile = NULL; - vector dir = normalize(end - start); - //float max_length = vlen(end - start); vector force = dir * bforce; // go a little bit into the wall because we need to hit this wall later @@ -277,29 +274,27 @@ void FireRailgunBullet (entity this, .entity weaponentity, vector start, vector //explosion = spawn(); // Find all non-hit players the beam passed close by - float length = vlen(trace_endpos - start); - if(deathtype == WEP_VAPORIZER.m_id || deathtype == WEP_VORTEX.m_id) // WEAPONTODO - { - FOREACH_CLIENT(IS_REAL_CLIENT(it) && it != this, { - if (!it.railgunhit && !(IS_SPEC(it) && it.enemy == this)) - { - // nearest point on the beam - vector beampos = start + dir * bound(0, (it.origin - start) * dir, length); + float length = vlen(endpoint - start); + entity pseudoprojectile = NULL; + FOREACH_CLIENT(IS_REAL_CLIENT(it) && it != this, { + if (!it.railgunhit && !(IS_SPEC(it) && it.enemy == this)) + { + // nearest point on the beam + vector beampos = start + dir * bound(0, (it.origin - start) * dir, length); - float f = bound(0, 1 - vlen(beampos - it.origin) / 512, 1); - if(f <= 0) - continue; + float f = bound(0, 1 - vlen(beampos - it.origin) / 512, 1); + if(f <= 0) + continue; - if(!pseudoprojectile) - pseudoprojectile = spawn(); // we need this so the sound uses the "entchannel4" volume - msg_entity = it; - soundtoat(MSG_ONE, pseudoprojectile, beampos, CH_SHOTS, SND(NEXWHOOSH_RANDOM()), VOL_BASE * f, ATTEN_NONE); - } - }); + if(!pseudoprojectile) + pseudoprojectile = spawn(); // we need this so the sound uses the "entchannel4" volume + msg_entity = it; + soundtoat(MSG_ONE, pseudoprojectile, beampos, CH_SHOTS, SND(NEXWHOOSH_RANDOM()), VOL_BASE * f, ATTEN_NONE); + } + }); - if(pseudoprojectile) - delete(pseudoprojectile); - } + if(pseudoprojectile) + delete(pseudoprojectile); // find all the entities the railgun hit and hurt them IL_EACH(g_railgunhit, it.railgunhit, -- 2.39.2