From f8996717b914420d2121400a5e5380b88c6db3a9 Mon Sep 17 00:00:00 2001 From: terencehill Date: Fri, 6 Feb 2015 21:51:31 +0100 Subject: [PATCH] Fix a few weapons not working with 0 ammo while owning the unlimited ammo powerup --- qcsrc/common/weapons/w_arc.qc | 1 + qcsrc/common/weapons/w_devastator.qc | 2 ++ qcsrc/common/weapons/w_hagar.qc | 5 ++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/qcsrc/common/weapons/w_arc.qc b/qcsrc/common/weapons/w_arc.qc index d8faa7be9..5176af6c7 100644 --- a/qcsrc/common/weapons/w_arc.qc +++ b/qcsrc/common/weapons/w_arc.qc @@ -272,6 +272,7 @@ void W_Arc_Beam_Think(void) entity oldself = self; self = self.owner; if(!WEP_ACTION(WEP_ARC, WR_CHECKAMMO1) && !WEP_ACTION(WEP_ARC, WR_CHECKAMMO2)) + if(!(self.items & IT_UNLIMITED_WEAPON_AMMO)) { // note: this doesn't force the switch W_SwitchToOtherWeapon(self); diff --git a/qcsrc/common/weapons/w_devastator.qc b/qcsrc/common/weapons/w_devastator.qc index 9e5f98a49..ab334fafb 100644 --- a/qcsrc/common/weapons/w_devastator.qc +++ b/qcsrc/common/weapons/w_devastator.qc @@ -103,6 +103,7 @@ void W_Devastator_Explode(void) if(self.realowner.weapon == WEP_DEVASTATOR) { if(self.realowner.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo)) + if(!(self.realowner.items & IT_UNLIMITED_WEAPON_AMMO)) { self.realowner.cnt = WEP_DEVASTATOR; ATTACK_FINISHED(self.realowner) = time; @@ -181,6 +182,7 @@ void W_Devastator_DoRemoteExplode(void) if(self.realowner.weapon == WEP_DEVASTATOR) { if(self.realowner.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo)) + if(!(self.realowner.items & IT_UNLIMITED_WEAPON_AMMO)) { self.realowner.cnt = WEP_DEVASTATOR; ATTACK_FINISHED(self.realowner) = time; diff --git a/qcsrc/common/weapons/w_hagar.qc b/qcsrc/common/weapons/w_hagar.qc index 1085c315a..62b52168e 100644 --- a/qcsrc/common/weapons/w_hagar.qc +++ b/qcsrc/common/weapons/w_hagar.qc @@ -299,7 +299,9 @@ void W_Hagar_Attack2_Load(void) loaded = self.hagar_load >= WEP_CVAR_SEC(hagar, load_max); // this is different than WR_CHECKAMMO when it comes to reloading - if(autocvar_g_balance_hagar_reload_ammo) + if(self.items & IT_UNLIMITED_WEAPON_AMMO) + enough_ammo = true; + else if(autocvar_g_balance_hagar_reload_ammo) enough_ammo = self.(weapon_load[WEP_HAGAR]) >= WEP_CVAR_SEC(hagar, ammo); else enough_ammo = self.WEP_AMMO(HAGAR) >= WEP_CVAR_SEC(hagar, ammo); @@ -383,6 +385,7 @@ void W_Hagar_Attack2_Load(void) // we aren't checking ammo during an attack, so we must do it here if(!(WEP_ACTION(self.weapon, WR_CHECKAMMO1) + WEP_ACTION(self.weapon, WR_CHECKAMMO2))) + if(!(self.items & IT_UNLIMITED_WEAPON_AMMO)) { // note: this doesn't force the switch W_SwitchToOtherWeapon(self); -- 2.39.2