Merge remote branch 'refs/remotes/origin/fruitiex/outofammosound'
authorRudolf Polzer <divverent@alientrap.org>
Tue, 19 Oct 2010 05:42:06 +0000 (07:42 +0200)
committerRudolf Polzer <divverent@alientrap.org>
Tue, 19 Oct 2010 05:42:06 +0000 (07:42 +0200)
1  2 
qcsrc/server/cl_weaponsystem.qc

index 9e1eedae0339cac49b07111f5f2a04beee7ee49c,ba30b1f81e83e37dac64f75cc9ce77217a03e649..4537573c5d57b28c6ed7757a4aea131bcd78d109
@@@ -130,8 -130,6 +130,8 @@@ vector w_shotend
  // this function calculates w_shotorg and w_shotdir based on the weapon model
  // offset, trueaim and antilag, and won't put w_shotorg inside a wall.
  // make sure you call makevectors first (FIXME?)
 +.float prevstrengthsound;
 +.float prevstrengthsoundattempt;
  void W_SetupShot_Dir_ProjectileSize_Range(entity ent, vector s_forward, vector mi, vector ma, float antilag, float recoil, string snd, float maxdamage, float range)
  {
        float nudge = 1; // added to traceline target and subtracted from result
                sound (ent, CHAN_WEAPON, snd, VOL_BASE, ATTN_NORM);
        }
  
 -      if (ent.items & IT_STRENGTH)
 -      if (!g_minstagib)
 -              sound (ent, CHAN_AUTO, "weapons/strength_fire.wav", VOL_BASE, ATTN_NORM);
 +      if(ent.items & IT_STRENGTH)
 +      if(!g_minstagib)
 +      if(
 +              (time > ent.prevstrengthsound + cvar("sv_strengthsound_antispam_time"))
 +              ||
 +              (time > ent.prevstrengthsoundattempt + cvar("sv_strengthsound_antispam_refire_threshold"))
 +      ) // prevent insane sound spam
 +      {
 +              sound(ent, CHAN_AUTO, "weapons/strength_fire.wav", VOL_BASE, ATTN_NORM);
 +              ent.prevstrengthsound = time;
 +      }
 +      ent.prevstrengthsoundattempt = time;
  
        // nudge w_shotend so a trace to w_shotend hits
        w_shotend = w_shotend + normalize(w_shotend - w_shotorg) * nudge;
@@@ -1117,6 -1106,9 +1117,9 @@@ float weapon_prepareattack_checkammo(fl
                for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.owner == self)
                        return FALSE;
  
+               if(self.weapon == self.switchweapon) // only play once BEFORE starting to switch weapons
+                       sound (self, CHAN_AUTO, "weapons/dryfire.wav", VOL_BASE, ATTN_NORM);
                W_SwitchToOtherWeapon(self);
                return FALSE;
        }