From e0a5869e0a870c3c6f92e8186588a8acbac4e53c Mon Sep 17 00:00:00 2001 From: div0 Date: Mon, 19 Jan 2009 09:37:16 +0000 Subject: [PATCH] fix the weapons/rick1.wav sounds (instant rickroll... sorry, ricochets) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5616 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/client/damage.qc | 27 ++++++++++++++++++++++----- data/qcsrc/client/projectile.qc | 10 +++++++--- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/data/qcsrc/client/damage.qc b/data/qcsrc/client/damage.qc index fb968e09e..08e639e14 100644 --- a/data/qcsrc/client/damage.qc +++ b/data/qcsrc/client/damage.qc @@ -79,14 +79,26 @@ void Ent_DamageInfo() { case WEP_LASER: org2 = org + backoff * 8; - pointparticles(particleeffectnum("laser_impact"), org2, backoff * 1000, 1); sound (self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("laser_impact"), org2, backoff * 1000, 1); break; case WEP_SHOTGUN: pointparticles(particleeffectnum("shotgun_impact"), org, backoff * 1000, 1); + if(r < 0.05) + sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM); + else if(r < 0.1) + sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM); + else if(r < 0.2) + sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM); break; case WEP_UZI: pointparticles(particleeffectnum("machinegun_impact"), org, backoff * 1000, 1); + if(r < 0.05) + sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM); + else if(r < 0.1) + sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM); + else if(r < 0.2) + sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM); break; case WEP_GRENADE_LAUNCHER: org2 = org + backoff * 12; @@ -204,6 +216,12 @@ void Ent_DamageInfo() break; case WEP_CAMPINGRIFLE: pointparticles(particleeffectnum("machinegun_impact"), org, backoff * 1000, 1); + if(r < 0.2) + sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM); + else if(r < 0.4) + sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM); + else if(r < 0.5) + sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM); break; default: dprint("Unhandled damage of weapon ", ftos(hitwep), "\n"); @@ -227,6 +245,9 @@ void DamageInfo_Precache() precache_sound("weapons/hookbomb_impact.wav"); precache_sound("weapons/laserimpact.wav"); precache_sound("weapons/neximpact.wav"); + precache_sound ("weapons/ric1.wav"); + precache_sound ("weapons/ric2.wav"); + precache_sound ("weapons/ric3.wav"); precache_sound("weapons/rocket_impact.wav"); precache_sound("weapons/seekerexp1.wav"); precache_sound("weapons/seekerexp2.wav"); @@ -235,8 +256,4 @@ void DamageInfo_Precache() precache_sound("weapons/tagexp2.wav"); precache_sound("weapons/tagexp3.wav"); precache_sound("weapons/tag_impact.wav"); - - // precache_sound ("weapons/ric1.wav"); // not used by anything - // precache_sound ("weapons/ric2.wav"); // not used by anything - // precache_sound ("weapons/ric3.wav"); // not used by anything } diff --git a/data/qcsrc/client/projectile.qc b/data/qcsrc/client/projectile.qc index d1a1eead3..4e88ddcbe 100644 --- a/data/qcsrc/client/projectile.qc +++ b/data/qcsrc/client/projectile.qc @@ -11,6 +11,7 @@ void SUB_Stop() .float count; // set if clientside projectile .float cnt; // sound index .float gravity; +.float snd_looping; void Projectile_Draw() { @@ -89,18 +90,21 @@ void Projectile_Draw() void loopsound(entity e, float ch, string samp, float vol, float attn) { if(csqc_flags & CSQC_FLAG_COLORCODES) + { sound(e, ch, samp, vol, attn); + e.snd_looping = 1; + } } void Ent_RemoveProjectile() { - if(self.cnt) - loopsound(self, CHAN_PROJECTILE, "misc/null.wav", VOL_BASE, ATTN_NORM); + if(self.snd_looping) + sound(self, CHAN_PROJECTILE, "misc/null.wav", VOL_BASE, ATTN_NORM); } void Ent_Projectile() { - float f; + float f, r; InterpolateOrigin_Undo(); -- 2.39.2