From: Mircea Kitsune Date: Tue, 12 Apr 2011 22:39:20 +0000 (+0300) Subject: Fix ammo checks, all works properly again X-Git-Tag: xonotic-v0.5.0~263^2~10^2~19 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=db005924619ad5faf8580d7af03d8598499b5f15;p=xonotic%2Fxonotic-data.pk3dir.git Fix ammo checks, all works properly again --- diff --git a/qcsrc/server/w_hagar.qc b/qcsrc/server/w_hagar.qc index 899c3866e..b1880032c 100644 --- a/qcsrc/server/w_hagar.qc +++ b/qcsrc/server/w_hagar.qc @@ -125,6 +125,8 @@ void W_Hagar_Attack2_Load_Release (void) if(!self.hagar_load) return; + weapon_prepareattack_do(1, autocvar_g_balance_hagar_secondary_refire); + W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", CHAN_WEAPON, autocvar_g_balance_hagar_secondary_damage); pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); @@ -183,24 +185,11 @@ void W_Hagar_Attack2_Load (void) { // loadable hagar secondary attack, must always run each frame - if not(weapon_action(self.weapon, WR_CHECKAMMO2)) - { - W_SwitchToOtherWeapon(self); - return; - } - local float loaded; - local float used_ammo, enough_ammo; + local float enough_ammo; loaded = self.hagar_load >= autocvar_g_balance_hagar_secondary_load_max; - // check if we have enough ammo for another rocket - used_ammo = autocvar_g_balance_hagar_secondary_ammo; - if(autocvar_g_balance_hagar_reload_ammo) - enough_ammo = self.weapon_load[WEP_HAGAR] >= used_ammo + (used_ammo * self.hagar_load); - else - enough_ammo = self.ammo_rockets >= used_ammo + (used_ammo * self.hagar_load); - if(self.BUTTON_ATCK2) { if(self.BUTTON_ATCK && autocvar_g_balance_hagar_secondary_load_abort) @@ -221,6 +210,12 @@ void W_Hagar_Attack2_Load (void) } else { + // check if we have enough ammo for another rocket + if(autocvar_g_balance_hagar_reload_ammo) + enough_ammo = self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_secondary_ammo; + else + enough_ammo = self.ammo_rockets >= autocvar_g_balance_hagar_secondary_ammo; + // check if we can attempt to load another rocket if(!self.hagar_loadblock && !loaded && enough_ammo) if(self.hagar_loadstep < time) @@ -245,8 +240,14 @@ void W_Hagar_Attack2_Load (void) if(self.hagar_load) if(!self.BUTTON_ATCK2 || ((loaded || !enough_ammo) && self.hagar_loadstep < time && !autocvar_g_balance_hagar_secondary_load_hold)) - if(weapon_prepareattack(0, autocvar_g_balance_hagar_secondary_refire)) W_Hagar_Attack2_Load_Release(); + + // we aren't checking ammo during an attack, so we must do it here + if not(weapon_action(self.weapon, WR_CHECKAMMO2)) + { + W_SwitchToOtherWeapon(self); + return; + } } void spawnfunc_weapon_hagar (void)