From 32406aaf48d48cb07b47db920af7a063bdf4b57f Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Sat, 22 Jan 2011 02:31:09 +0200 Subject: [PATCH] Only switch to another weapon if the current one doesn't have enough ammo loaded to still *use* it, not if it has no more ammo loaded at all. --- qcsrc/server/cl_weaponsystem.qc | 6 +++--- qcsrc/server/w_crylink.qc | 2 +- qcsrc/server/w_electro.qc | 2 +- qcsrc/server/w_grenadelauncher.qc | 2 +- qcsrc/server/w_hlac.qc | 2 +- qcsrc/server/w_minelayer.qc | 2 +- qcsrc/server/w_shotgun.qc | 2 +- qcsrc/server/w_sniperrifle.qc | 2 +- qcsrc/server/w_uzi.qc | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/qcsrc/server/cl_weaponsystem.qc b/qcsrc/server/cl_weaponsystem.qc index 0b23049fb..0f3edce25 100644 --- a/qcsrc/server/cl_weaponsystem.qc +++ b/qcsrc/server/cl_weaponsystem.qc @@ -1628,7 +1628,7 @@ void W_SetupProjectileVelocity(entity missile, float pSpeed, float spread) // shared weapon reload code .float reload_complain; -float W_ReloadCheck(float ammo_amount) +float W_ReloadCheck(float ammo_amount, float ammo_shot) { entity e; e = get_weaponinfo(self.weapon); @@ -1646,8 +1646,8 @@ float W_ReloadCheck(float ammo_amount) sprint(self, strcat("You don't have enough ammo to reload the ^2", W_Name(self.weapon), "\n")); self.reload_complain = time + 1; } - // is there's no more ammo to reload, only switch to another weapon if there's no more load in this one - if(!self.clip_load) + // switch away if the loaded amount of ammo is not enough to keep using the weapon + if(self.clip_load < ammo_shot) { self.clip_load = -1; // reload later W_SwitchToOtherWeapon(self); diff --git a/qcsrc/server/w_crylink.qc b/qcsrc/server/w_crylink.qc index 54bbf3652..604efbe1c 100644 --- a/qcsrc/server/w_crylink.qc +++ b/qcsrc/server/w_crylink.qc @@ -47,7 +47,7 @@ void W_Crylink_Reload() if(!autocvar_g_balance_crylink_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_cells)) + if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_crylink_primary_ammo, autocvar_g_balance_crylink_secondary_ammo))) return; float t; diff --git a/qcsrc/server/w_electro.qc b/qcsrc/server/w_electro.qc index 1b67d0408..c4cd72689 100644 --- a/qcsrc/server/w_electro.qc +++ b/qcsrc/server/w_electro.qc @@ -43,7 +43,7 @@ void W_Electro_Reload() if(!autocvar_g_balance_electro_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_cells)) + if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_secondary_ammo))) return; float t; diff --git a/qcsrc/server/w_grenadelauncher.qc b/qcsrc/server/w_grenadelauncher.qc index e803ac77f..ddd5eacf4 100644 --- a/qcsrc/server/w_grenadelauncher.qc +++ b/qcsrc/server/w_grenadelauncher.qc @@ -43,7 +43,7 @@ void W_GrenadeLauncher_Reload() if(!autocvar_g_balance_grenadelauncher_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_rockets)) + if(!W_ReloadCheck(self.ammo_rockets, min(autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_secondary_ammo))) return; float t; diff --git a/qcsrc/server/w_hlac.qc b/qcsrc/server/w_hlac.qc index 233e6d337..3a5ff0717 100644 --- a/qcsrc/server/w_hlac.qc +++ b/qcsrc/server/w_hlac.qc @@ -41,7 +41,7 @@ void W_HLAC_Reload() if(!autocvar_g_balance_hlac_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_cells)) + if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_hlac_primary_ammo, autocvar_g_balance_hlac_secondary_ammo))) return; float t; diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index dfef72195..d46342ccc 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -44,7 +44,7 @@ void W_MineLayer_Reload() if(!autocvar_g_balance_minelayer_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_rockets)) + if(!W_ReloadCheck(self.ammo_rockets, autocvar_g_balance_minelayer_ammo)) return; float t; diff --git a/qcsrc/server/w_shotgun.qc b/qcsrc/server/w_shotgun.qc index a8e4bb47c..acf65a1f9 100644 --- a/qcsrc/server/w_shotgun.qc +++ b/qcsrc/server/w_shotgun.qc @@ -41,7 +41,7 @@ void W_Shotgun_Reload() if(!autocvar_g_balance_shotgun_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_shells)) + if(!W_ReloadCheck(self.ammo_shells, autocvar_g_balance_shotgun_primary_ammo)) return; float t; diff --git a/qcsrc/server/w_sniperrifle.qc b/qcsrc/server/w_sniperrifle.qc index 7cfea7d2a..826aa8d8d 100644 --- a/qcsrc/server/w_sniperrifle.qc +++ b/qcsrc/server/w_sniperrifle.qc @@ -45,7 +45,7 @@ void W_SniperRifle_Reload() if(!autocvar_g_balance_sniperrifle_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_nails)) + if(!W_ReloadCheck(self.ammo_nails, min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo))) return; float t; diff --git a/qcsrc/server/w_uzi.qc b/qcsrc/server/w_uzi.qc index a87513b8e..a02175884 100644 --- a/qcsrc/server/w_uzi.qc +++ b/qcsrc/server/w_uzi.qc @@ -41,7 +41,7 @@ void W_UZI_Reload() if(!autocvar_g_balance_uzi_reload_ammo) return; - if(!W_ReloadCheck(self.ammo_nails)) + if(!W_ReloadCheck(self.ammo_nails, min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo))) return; float t; -- 2.39.2