From c3fa085562893304f25be0cf9c5eea54dd53a914 Mon Sep 17 00:00:00 2001 From: div0 Date: Thu, 30 Oct 2008 11:19:42 +0000 Subject: [PATCH] fix throw logic git-svn-id: svn://svn.icculus.org/nexuiz/trunk@4941 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_weapons.qc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/data/qcsrc/server/cl_weapons.qc b/data/qcsrc/server/cl_weapons.qc index 594213c42..f46e226b8 100644 --- a/data/qcsrc/server/cl_weapons.qc +++ b/data/qcsrc/server/cl_weapons.qc @@ -207,7 +207,7 @@ float W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vector // toss current weapon void W_ThrowWeapon(vector velo, vector delta, float doreduce) { - local float w, a, wb; + local float w, a, wb, wa; w = self.weapon; if (w == 0) @@ -224,8 +224,20 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce) return; wb = W_WeaponBit(w); + wa = W_AmmoItemCode(w); + if(!wb) + return; if(self.weapons & wb != wb) return; + if(start_weapons & wb) + { + if(wa == IT_SUPERWEAPON && start_items & IT_UNLIMITED_SUPERWEAPONS) + return; + if(wa != IT_SUPERWEAPON && start_items & IT_UNLIMITED_WEAPON_AMMO) + return; + if(wa == 0) + return; + } self.weapons = self.weapons - wb; W_SwitchWeapon_Force(self, w_getbestweapon(self)); -- 2.39.2