-.float fireball_load;
-
-void W_Fireball_SetAmmoCounter()
-{
- // set clip_load to the weapon we have switched to, if the gun uses reloading
- if(!autocvar_g_balance_fireball_reload_ammo)
- self.clip_load = 0; // also keeps crosshair ammo from displaying
- else
- {
- self.clip_load = self.fireball_load;
- self.clip_size = autocvar_g_balance_fireball_reload_ammo; // for the crosshair ammo display
- }
-}
-
-void W_Fireball_ReloadedAndReady()
-{
- float t;
-
- // now do the ammo transfer
- self.clip_load = self.old_clip_load; // restore the ammo counter, in case we still had ammo in the weapon before reloading
- while(self.clip_load < autocvar_g_balance_fireball_reload_ammo && self.ammo_fuel) // make sure we don't add more ammo than we have
- {
- self.clip_load += 1;
- self.ammo_fuel -= 1;
-
- // fuel can be a non-whole number, which brakes stuff here when between 0 and 1
- if(self.ammo_fuel < 1)
- self.ammo_fuel = 0;
- }
- self.fireball_load = self.clip_load;
-
- t = ATTACK_FINISHED(self) - autocvar_g_balance_fireball_reload_time - 1;
- ATTACK_FINISHED(self) = t;
- w_ready();
-}
-
-void W_Fireball_Reload()
-{
- // return if reloading is disabled for this weapon
- if(!autocvar_g_balance_fireball_reload_ammo)
- return;
-
- if(!W_ReloadCheck(self.ammo_fuel, min(autocvar_g_balance_fireball_primary_ammo, autocvar_g_balance_fireball_secondary_ammo)))
- return;
-
- float t;
-
- sound (self, CHAN_WEAPON2, "weapons/reload.wav", VOL_BASE, ATTN_NORM);
-
- t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_fireball_reload_time + 1;
- ATTACK_FINISHED(self) = t;
-
- weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_fireball_reload_time, W_Fireball_ReloadedAndReady);
-
- self.old_clip_load = self.clip_load;
- self.clip_load = -1;
-}
-