set g_balance_shotgun_secondary_force 150
set g_balance_shotgun_secondary_refire 1.1
set g_balance_shotgun_secondary_animtime 1
-set g_balance_shotgun_reload_ammo 4
+set g_balance_shotgun_reload_ammo 5
// }}}
// {{{ uzi
set g_balance_uzi_mode 1 // Activates varible spread for sustained & burst mode secondary
// weapon reload code
// ----------------------------------------------------------------
-void W_ReloadedAndReady()
+float W_ReloadCheck(float ammo_amount)
{
- float t;
- self.ammo_counter = autocvar_g_balance_sniperrifle_magazinecapacity;
- t = ATTACK_FINISHED(self) - autocvar_g_balance_sniperrifle_reloadtime - 1;
- ATTACK_FINISHED(self) = t;
- w_ready();
-}
-
-float W_Reload(float ammo_value)
-{
- float t;
-
- if(ammo_value < min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo)) // when we get here, bulletcounter must be 0 or -1
+ if(ammo_amount < min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo)) // when we get here, ammo_counter must be 0 or -1
{
- print("cannot reload... not enough bullets\n");
+ print("cannot reload... not enough ammo\n");
self.ammo_counter = -1; // reload later
W_SwitchToOtherWeapon(self);
return 0;
}
-
+
if (self.ammo_counter >= autocvar_g_balance_shotgun_reload_ammo)
return 0;
self.weaponentity.state = WS_READY;
}
- sound (self, CHAN_WEAPON2, "weapons/campingrifle_reload.wav", VOL_BASE, ATTN_NORM);
-
- t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_sniperrifle_reloadtime + 1;
- ATTACK_FINISHED(self) = t;
-
- weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_sniperrifle_reloadtime, W_ReloadedAndReady);
-
- self.ammo_counter = -1;
-
return 1;
}
void W_Shotgun_SetAmmoCounter()
{
- // set our ammo counter to the weapon we have switched to
+ // set ammo counter to the weapon we have switched to
if(!autocvar_g_balance_shotgun_reload_ammo)
self.ammo_counter = 0; // also keeps the crosshair ammo from displaying
else
self.ammo_counter = self.shotgun_load;
}
+void W_Shotgun_ReloadedAndReady()
+{
+ float t;
+
+ // now do the ammo maths
+ self.ammo_counter = 0; // when we get here it's -1
+ while(self.ammo_counter < autocvar_g_balance_shotgun_reload_ammo)
+ {
+ self.ammo_counter += 1;
+ self.ammo_shells -= 1;
+ }
+ self.shotgun_load = self.ammo_counter;
+
+ t = ATTACK_FINISHED(self) - autocvar_g_balance_sniperrifle_reloadtime - 1;
+ ATTACK_FINISHED(self) = t;
+ w_ready();
+}
+
void W_Shotgun_Reload()
{
// reloading is disabled for this weapon
if(!autocvar_g_balance_shotgun_reload_ammo)
return;
- w_ready();
- if(W_Reload(self.ammo_shells))
- {
- // now do the actual ammo transfer
- for(self.shotgun_load; self.shotgun_load < autocvar_g_balance_shotgun_reload_ammo && self.ammo_shells; )
- {
- self.ammo_counter += 1;
- self.shotgun_load = self.ammo_counter;
- self.ammo_shells -= 1;
- }
+ float t;
+
+ if(!W_ReloadCheck(self.ammo_shells))
return;
- }
+
+ sound (self, CHAN_WEAPON2, "weapons/campingrifle_reload.wav", VOL_BASE, ATTN_NORM);
+
+ t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_sniperrifle_reloadtime + 1;
+ ATTACK_FINISHED(self) = t;
+
+ weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_sniperrifle_reloadtime, W_Shotgun_ReloadedAndReady);
+
+ self.ammo_counter = -1;
}
void W_Shotgun_Attack (void)
if(self.weaponentity.state == WS_READY)
{
self.wish_reload = 0;
- W_Reload(self.ammo_shells);
+ W_Shotgun_Reload();
}
}
}
return;
w_ready();
- if(W_Reload(self.ammo_nails))
+ /*if(W_Reload(self.ammo_nails))
{
// now do the actual ammo transfer
for(self.sniperrifle_load; self.sniperrifle_load < autocvar_g_balance_shotgun_reload_ammo && self.ammo_nails; ++self.sniperrifle_load)
self.ammo_nails -= 1;
return;
- }
+ }*/
}
float W_SniperRifle_CheckMaxBullets(float checkammo)
void W_SniperRifle_BulletHail_Continue()
{
float r, sw, af;
- if(self.ammo_counter <= 0)
- W_SniperRifle_Reload();
+ //if(self.ammo_counter <= 0)
+ //W_SniperRifle_Reload();
if(self.ammo_counter < 0)
return; // reloading, so we are done
sw = self.switchweapon; // make it not detect weapon changes as reason to abort firing
if(self.weaponentity.state == WS_READY)
{
self.wish_reload = 0;
- W_Reload(self.ammo_nails);
+ //W_Reload(self.ammo_nails);
}
}
}