]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Port new code to all weapons, part 1
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 30 Jan 2011 16:58:34 +0000 (18:58 +0200)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 30 Jan 2011 16:58:34 +0000 (18:58 +0200)
13 files changed:
qcsrc/server/w_crylink.qc
qcsrc/server/w_electro.qc
qcsrc/server/w_fireball.qc
qcsrc/server/w_grenadelauncher.qc
qcsrc/server/w_hlac.qc
qcsrc/server/w_minelayer.qc
qcsrc/server/w_minstanex.qc
qcsrc/server/w_nex.qc
qcsrc/server/w_rocketlauncher.qc
qcsrc/server/w_seeker.qc
qcsrc/server/w_shotgun.qc
qcsrc/server/w_sniperrifle.qc
qcsrc/server/w_uzi.qc

index d9eb227627c33beaf4a628b3c8419125affd8c3a..7be90ae12d7a4ba159f7a3e590398a427f88fa4e 100644 (file)
@@ -24,44 +24,15 @@ void W_Crylink_SetAmmoCounter()
        }
 }
 
-void W_Crylink_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_crylink_reload_ammo && self.ammo_cells) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_cells -= 1;
-       }
-       self.crylink_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_crylink_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_Crylink_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_crylink_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_crylink_primary_ammo, autocvar_g_balance_crylink_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_crylink_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_crylink_reload_time, W_Crylink_ReloadedAndReady);
+       self.reload_ammo_player = ammo_cells;
+       self.reload_ammo_min = min(autocvar_g_balance_crylink_primary_ammo, autocvar_g_balance_crylink_secondary_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_crylink_reload_ammo;
+       self.reload_time = autocvar_g_balance_crylink_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_Crylink_CheckLinks(entity e)
index e14064ef083626e613694dbe0a4047ebf6485bba..215290b3435e38efc97dbed3f9b1c30d737e2a12 100644 (file)
@@ -20,44 +20,15 @@ void W_Electro_SetAmmoCounter()
        }
 }
 
-void W_Electro_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_electro_reload_ammo && self.ammo_cells) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_cells -= 1;
-       }
-       self.electro_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_electro_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_Electro_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_electro_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_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_electro_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_electro_reload_time, W_Electro_ReloadedAndReady);
+       self.reload_ammo_player = ammo_cells;
+       self.reload_ammo_min = min(autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_secondary_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_electro_reload_ammo;
+       self.reload_time = autocvar_g_balance_electro_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_Plasma_Explode_Combo (void);
index 64ea41d3e517cd95f2d11ab97b5720ce6e3cd138..98571d30d0ff1d911646cbda49b2458c765c7441 100644 (file)
@@ -21,48 +21,19 @@ void W_Fireball_SetAmmoCounter()
        }
 }
 
-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;
+       // 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;
 
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_fireball_reload_time, W_Fireball_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = min(autocvar_g_balance_fireball_primary_ammo, autocvar_g_balance_fireball_secondary_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_fireball_reload_ammo;
+       self.reload_time = autocvar_g_balance_fireball_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_Fireball_Explode (void)
index 4d255bd1c8308498fe3738afe284f754428b31b9..bea8e2f609447b78f47fbee5311c6e9f182ea0ff 100644 (file)
@@ -20,44 +20,15 @@ void W_GrenadeLauncher_SetAmmoCounter()
        }
 }
 
-void W_GrenadeLauncher_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_grenadelauncher_reload_ammo && self.ammo_rockets) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_rockets -= 1;
-       }
-       self.grenadelauncher_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_grenadelauncher_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_GrenadeLauncher_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_grenadelauncher_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_rockets, min(autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_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_grenadelauncher_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_grenadelauncher_reload_time, W_GrenadeLauncher_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = min(autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_secondary_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_grenadelauncher_reload_ammo;
+       self.reload_time = autocvar_g_balance_grenadelauncher_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_Grenade_Explode (void)
index ddfe763be11d0c873483a3f5515577336022f1c1..ecca801400f036db423a3c5bbf85270dc52ab7b6 100644 (file)
@@ -18,44 +18,15 @@ void W_HLAC_SetAmmoCounter()
        }
 }
 
-void W_HLAC_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_hlac_reload_ammo && self.ammo_cells) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_cells -= 1;
-       }
-       self.hlac_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_hlac_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_HLAC_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_hlac_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_hlac_primary_ammo, autocvar_g_balance_hlac_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_hlac_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_hlac_reload_time, W_HLAC_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = min(autocvar_g_balance_hlac_primary_ammo, autocvar_g_balance_hlac_secondary_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_hlac_reload_ammo;
+       self.reload_time = autocvar_g_balance_hlac_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_HLAC_Touch (void)
index b5ca7aa14d692417f0487f2e1501c08fe2a41255..e3fe77450a8796197952f6646917428d6411c28c 100644 (file)
@@ -21,44 +21,15 @@ void W_MineLayer_SetAmmoCounter()
        }
 }
 
-void W_MineLayer_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_minelayer_reload_ammo && self.ammo_rockets) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_rockets -= 1;
-       }
-       self.minelayer_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_minelayer_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_MineLayer_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_minelayer_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_rockets, autocvar_g_balance_minelayer_ammo))
-               return;
-
-       float t;
-
-       sound (self, CHAN_WEAPON2, "weapons/reload.wav", VOL_BASE, ATTN_NORM);
-
-       t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_minelayer_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_minelayer_reload_time, W_MineLayer_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = autocvar_g_balance_minelayer_ammo;
+       self.reload_ammo_amount = autocvar_g_balance_minelayer_reload_ammo;
+       self.reload_time = autocvar_g_balance_minelayer_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void spawnfunc_weapon_minelayer (void)
index 9d4bdec4b7c67246db0d00b4f0988bc7131938e3..9981ad2692749ee3da2a2b8c9197a46d32ac7fe9 100644 (file)
@@ -19,49 +19,18 @@ void W_Minstanex_SetAmmoCounter()
        }
 }
 
-void W_Minstanex_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_minstanex_reload_ammo && self.ammo_cells) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_cells -= 1;
-       }
-       self.minstanex_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_minstanex_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_Minstanex_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_minstanex_reload_ammo)
-               return;
-
+       self.reload_ammo_player = ammo_fuel;
        if(autocvar_g_balance_minstanex_laser_ammo)
-       {
-               if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo)))
-                       return;
-       }
-       else if(!W_ReloadCheck(self.ammo_cells, autocvar_g_balance_minstanex_ammo))
-               return;
-
-       float t;
-
-       sound (self, CHAN_WEAPON2, "weapons/reload.wav", VOL_BASE, ATTN_NORM);
-
-       t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_minstanex_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_minstanex_reload_time, W_Minstanex_ReloadedAndReady);
+               self.reload_ammo_min = min(autocvar_g_balance_minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo);
+       else
+               self.reload_ammo_min = autocvar_g_balance_minstanex_ammo;
+       self.reload_ammo_amount = autocvar_g_balance_minstanex_reload_ammo;
+       self.reload_time = autocvar_g_balance_minstanex_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_MinstaNex_Attack (void)
index 6cf6e3df550b4e48d18dc249bb8cbbd9f6c43752..c33ac4087f0964d28f21a4fc0439d67470fa0d2c 100644 (file)
@@ -18,44 +18,15 @@ void W_Nex_SetAmmoCounter()
        }
 }
 
-void W_Nex_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_nex_reload_ammo && self.ammo_cells) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_cells -= 1;
-       }
-       self.nex_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_nex_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_Nex_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_nex_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_cells, min(autocvar_g_balance_nex_primary_ammo, autocvar_g_balance_nex_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_nex_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_nex_reload_time, W_Nex_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = min(autocvar_g_balance_nex_primary_ammo, autocvar_g_balance_nex_secondary_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_nex_reload_ammo;
+       self.reload_time = autocvar_g_balance_nex_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void SendCSQCNexBeamParticle(float charge) {
index cb639430bb507d16a5d1c6fa48d414e1d75b3783..a87650a929e88e334473b66f70ef690285b06644 100644 (file)
@@ -20,44 +20,15 @@ void W_RocketLauncher_SetAmmoCounter()
        }
 }
 
-void W_RocketLauncher_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_rocketlauncher_reload_ammo && self.ammo_rockets) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_rockets -= 1;
-       }
-       self.rocketlauncher_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_rocketlauncher_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_RocketLauncher_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_rocketlauncher_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_rockets, autocvar_g_balance_rocketlauncher_ammo))
-               return;
-
-       float t;
-
-       sound (self, CHAN_WEAPON2, "weapons/reload.wav", VOL_BASE, ATTN_NORM);
-
-       t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_rocketlauncher_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_rocketlauncher_reload_time, W_RocketLauncher_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = autocvar_g_balance_rocketlauncher_ammo;
+       self.reload_ammo_amount = autocvar_g_balance_rocketlauncher_reload_ammo;
+       self.reload_time = autocvar_g_balance_rocketlauncher_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_Rocket_Unregister()
index 0fdfaafb3462821b48f879b5210a2204822dbcc9..7d14148c2593c2fd95d16eb13365c7ff2c9f4417 100644 (file)
@@ -20,44 +20,15 @@ void W_Seeker_SetAmmoCounter()
        }
 }
 
-void W_Seeker_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_seeker_reload_ammo && self.ammo_rockets) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_rockets -= 1;
-       }
-       self.seeker_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_seeker_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_Seeker_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_seeker_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_rockets, min(autocvar_g_balance_seeker_missile_ammo, autocvar_g_balance_seeker_tag_ammo)))
-               return;
-
-       float t;
-
-       sound (self, CHAN_WEAPON2, "weapons/reload.wav", VOL_BASE, ATTN_NORM);
-
-       t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_seeker_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_seeker_reload_time, W_Seeker_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = min(autocvar_g_balance_seeker_missile_ammo, autocvar_g_balance_seeker_tag_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_seeker_reload_ammo;
+       self.reload_time = autocvar_g_balance_seeker_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void Seeker_Missile_Explode ()
index ad790eb9280d547b4dd997c37dd4a3942452a925..2930dd480d6cf79fc4640ffca0ff34fdaf5709e2 100644 (file)
@@ -18,44 +18,15 @@ void W_Shotgun_SetAmmoCounter()
        }
 }
 
-void W_Shotgun_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_shotgun_reload_ammo && self.ammo_shells) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_shells -= 1;
-       }
-       self.shotgun_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_shotgun_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_Shotgun_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_shotgun_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_shells, autocvar_g_balance_shotgun_primary_ammo))
-               return;
-
-       float t;
-
-       sound (self, CHAN_WEAPON2, "weapons/reload.wav", VOL_BASE, ATTN_NORM);
-
-       t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_shotgun_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_shotgun_reload_time, W_Shotgun_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = autocvar_g_balance_shotgun_primary_ammo;
+       self.reload_ammo_amount = autocvar_g_balance_shotgun_reload_ammo;
+       self.reload_time = autocvar_g_balance_shotgun_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_Shotgun_Attack (void)
index 523cab74e1258ba34a7cb3ceab526dcc0b7d8f8b..4b4cd951cecdd770eb93832dfdc637ed1d780665 100644 (file)
@@ -23,44 +23,15 @@ void W_SniperRifle_SetAmmoCounter()
        }
 }
 
-void W_SniperRifle_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_sniperrifle_reload_ammo && self.ammo_nails) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_nails -= 1;
-       }
-       self.sniperrifle_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_sniperrifle_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_SniperRifle_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_sniperrifle_reload_ammo)
-               return;
-
-       if(!W_ReloadCheck(self.ammo_nails, min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_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_sniperrifle_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_sniperrifle_reload_time, W_SniperRifle_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_sniperrifle_reload_ammo;
+       self.reload_time = autocvar_g_balance_sniperrifle_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 void W_SniperRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAddedDamage, float pForce, float pSpeed, float pLifetime, float pAmmo, float deathtype, float pBulletConstant)
index 360c8913345dee4cca9b38adfb9a0b15573ab357..b4d4a75eb080c3815d36604e07cded8aba6279e9 100644 (file)
@@ -18,44 +18,15 @@ void W_UZI_SetAmmoCounter()
        }
 }
 
-void W_UZI_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_uzi_reload_ammo && self.ammo_nails) // make sure we don't add more ammo than we have
-       {
-               self.clip_load += 1;
-               self.ammo_nails -= 1;
-       }
-       self.uzi_load = self.clip_load;
-
-       t = ATTACK_FINISHED(self) - autocvar_g_balance_uzi_reload_time - 1;
-       ATTACK_FINISHED(self) = t;
-       w_ready();
-}
-
 void W_UZI_Reload()
 {
-       // return if reloading is disabled for this weapon
-       if(!autocvar_g_balance_uzi_reload_ammo)
-               return;
-
-       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;
-
-       sound (self, CHAN_WEAPON2, "weapons/reload.wav", VOL_BASE, ATTN_NORM);
-
-       t = max(time, ATTACK_FINISHED(self)) + autocvar_g_balance_uzi_reload_time + 1;
-       ATTACK_FINISHED(self) = t;
-
-       weapon_thinkf(WFRAME_RELOAD, autocvar_g_balance_uzi_reload_time, W_UZI_ReloadedAndReady);
+       self.reload_ammo_player = ammo_fuel;
+       self.reload_ammo_min = min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo);
+       self.reload_ammo_amount = autocvar_g_balance_uzi_reload_ammo;
+       self.reload_time = autocvar_g_balance_uzi_reload_time;
+       self.reload_sound = "weapons/reload.wav";
 
-       self.old_clip_load = self.clip_load;
-       self.clip_load = -1;
+       W_Reload();
 }
 
 // leilei's fancy muzzleflash stuff