]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Attempt to further simplify the reload code, as requested. First part of the first...
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Fri, 11 Feb 2011 15:31:14 +0000 (17:31 +0200)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Fri, 11 Feb 2011 15:31:14 +0000 (17:31 +0200)
17 files changed:
qcsrc/server/cl_weaponsystem.qc
qcsrc/server/defs.qh
qcsrc/server/w_crylink.qc
qcsrc/server/w_electro.qc
qcsrc/server/w_fireball.qc
qcsrc/server/w_grenadelauncher.qc
qcsrc/server/w_hagar.qc
qcsrc/server/w_hlac.qc
qcsrc/server/w_laser.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 90c581f3830e66522f41c96fe00932dfde2138d7..4465c190b7d8d7e6f4675ab1eb5d09fe59a99c50 100644 (file)
@@ -1614,7 +1614,11 @@ void W_SetupProjectileVelocity(entity missile, float pSpeed, float spread)
 
 // weapon reloading code
 
+..float reload_ammo_player;
+.float reload_ammo_amount, reload_ammo_min, reload_time;
 .float reload_complain;
+.string reload_sound;
+
 float W_ReloadCheck(float ammo_amount, float ammo_shot)
 {
        // our weapon is fully loaded, no need to reload
@@ -1651,7 +1655,7 @@ float W_ReloadCheck(float ammo_amount, float ammo_shot)
        return TRUE;
 }
 
-void W_ReloadedAndReady()
+void W_ReloadEnd()
 {
        float t;
 
@@ -1677,7 +1681,7 @@ void W_ReloadedAndReady()
        w_ready();
 }
 
-void W_Reload()
+void W_ReloadStart()
 {
        // return if reloading is disabled for this weapon
        if(!self.reload_ammo_amount)
@@ -1693,8 +1697,19 @@ void W_Reload()
        t = max(time, ATTACK_FINISHED(self)) + self.reload_time + 1;
        ATTACK_FINISHED(self) = t;
 
-       weapon_thinkf(WFRAME_RELOAD, self.reload_time, W_ReloadedAndReady);
+       weapon_thinkf(WFRAME_RELOAD, self.reload_time, W_ReloadEnd);
 
        self.old_clip_load = self.clip_load;
        self.clip_load = -1;
+}
+
+void W_Reload(.float sent_ammo_player, float sent_ammo_min, float sent_ammo_amount, float sent_time, string sent_sound)
+{
+       self.reload_ammo_player = sent_ammo_player;
+       self.reload_ammo_min = sent_ammo_min;
+       self.reload_ammo_amount = sent_ammo_amount;
+       self.reload_time = sent_time;
+       self.reload_sound = sent_sound;
+
+       W_ReloadStart();
 }
\ No newline at end of file
index 9789b8bc1bd3a055f63230c716568e468be8bd04..d7242de9304e7f1985ce1dda7739bd09691561ef 100644 (file)
@@ -620,10 +620,6 @@ float client_cefc_accumulatortime;
 .float old_clip_load;
 .float clip_size;
 
-..float reload_ammo_player;
-.float reload_ammo_amount, reload_ammo_min, reload_time;
-.string reload_sound;
-
 #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_CORPSE; (e).dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE
 // when doing this, hagar can go through clones
 // #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_BBOX
index e901a459ec7b9a5e952971259443d0608b6f603a..8da5a271d2930c726e86d8ad4738823474296586 100644 (file)
@@ -11,13 +11,7 @@ REGISTER_WEAPON(CRYLINK, w_crylink, IT_CELLS, 6, WEP_FLAG_NORMAL | WEP_FLAG_RELO
 
 void W_Crylink_Reload()
 {
-       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";
-
-       W_Reload();
+       W_Reload(ammo_cells, min(autocvar_g_balance_crylink_primary_ammo, autocvar_g_balance_crylink_secondary_ammo), autocvar_g_balance_crylink_reload_ammo, autocvar_g_balance_crylink_reload_time, "weapons/reload.wav");
 }
 
 void W_Crylink_CheckLinks(entity e)
index 92775d210013a8edf6468fe198f8166fef7975cb..4f4329d01277eea4b9814e75a7bb85376cd34599 100644 (file)
@@ -7,13 +7,7 @@ REGISTER_WEAPON(ELECTRO, w_electro, IT_CELLS, 5, WEP_FLAG_NORMAL | WEP_FLAG_RELO
 
 void W_Electro_Reload()
 {
-       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";
-
-       W_Reload();
+       W_Reload(ammo_cells, min(autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_secondary_ammo), autocvar_g_balance_electro_reload_ammo, autocvar_g_balance_electro_reload_time, "weapons/reload.wav");
 }
 
 void W_Plasma_Explode_Combo (void);
index 29fdab1819713b4c775e628ab3c305091b93fa0c..f6bbf36ce30af3f661ac500bdd6239b26c59077c 100644 (file)
@@ -12,13 +12,7 @@ void W_Fireball_Reload()
        if(self.ammo_fuel < 1)
                self.ammo_fuel = 0;
 
-       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";
-
-       W_Reload();
+       W_Reload(ammo_fuel, min(autocvar_g_balance_fireball_primary_ammo, autocvar_g_balance_fireball_secondary_ammo), autocvar_g_balance_fireball_reload_ammo, autocvar_g_balance_fireball_reload_time, "weapons/reload.wav");
 }
 
 void W_Fireball_Explode (void)
index 5ebe530cb34423bbdb8b5f4e24a33bc8834f786c..c508a6095c36c05aeb402beab171350a5c1c415f 100644 (file)
@@ -7,13 +7,7 @@ REGISTER_WEAPON(GRENADE_LAUNCHER, w_glauncher, IT_ROCKETS, 4, WEP_FLAG_NORMAL |
 
 void W_GrenadeLauncher_Reload()
 {
-       self.reload_ammo_player = ammo_rockets;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_rockets, min(autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_secondary_ammo), autocvar_g_balance_grenadelauncher_reload_ammo, autocvar_g_balance_grenadelauncher_reload_time, "weapons/reload.wav");
 }
 
 void W_Grenade_Explode (void)
index 3f57c141e6b9fd8060d771c2bef54c3a26e1c691..e2ec34fffbdf91f1c888e4f059befbe08fa1c21b 100644 (file)
@@ -6,13 +6,7 @@ REGISTER_WEAPON(HAGAR, w_hagar, IT_ROCKETS, 8, WEP_FLAG_NORMAL | WEP_FLAG_RELOAD
 
 void W_Hagar_Reload()
 {
-       self.reload_ammo_player = ammo_rockets;
-       self.reload_ammo_min = min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo);
-       self.reload_ammo_amount = autocvar_g_balance_hagar_reload_ammo;
-       self.reload_time = autocvar_g_balance_hagar_reload_time;
-       self.reload_sound = "weapons/reload.wav";
-
-       W_Reload();
+       W_Reload(ammo_rockets, min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo), autocvar_g_balance_hagar_reload_ammo, autocvar_g_balance_hagar_reload_time, "weapons/reload.wav");
 }
 
 void W_Hagar_Explode (void)
index 212def8af2ae555bc6f1908170bdda84a76e97bb..2b50216e41756de2604900bb425aa31e9627af53 100644 (file)
@@ -5,13 +5,7 @@ REGISTER_WEAPON(HLAC, w_hlac, IT_CELLS, 6, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE
 
 void W_HLAC_Reload()
 {
-       self.reload_ammo_player = ammo_cells;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_cells, min(autocvar_g_balance_hlac_primary_ammo, autocvar_g_balance_hlac_secondary_ammo), autocvar_g_balance_hlac_reload_ammo, autocvar_g_balance_hlac_reload_time, "weapons/reload.wav");
 }
 
 void W_HLAC_Touch (void)
index 1b5dfcb1ca53517b604ff12fbef2272a6de14d34..70cf072fb5fab8e2eea91bc49d0332bf71c1ca25 100644 (file)
@@ -6,13 +6,7 @@ void(float imp) W_SwitchWeapon;
 
 void W_Laser_Reload()
 {
-       self.reload_ammo_player = zero_ammo;
-       self.reload_ammo_min = 0;
-       self.reload_ammo_amount = autocvar_g_balance_laser_reload_ammo;
-       self.reload_time = autocvar_g_balance_laser_reload_time;
-       self.reload_sound = "weapons/reload.wav";
-
-       W_Reload();
+       W_Reload(zero_ammo, 0, autocvar_g_balance_laser_reload_ammo, autocvar_g_balance_laser_reload_time, "weapons/reload.wav");
 }
 
 void W_Laser_Touch (void)
index 77ff668d16d937758431696451dcf4a9897181e4..6d145b037939db621b9b06a9e0723322f6d5354e 100644 (file)
@@ -8,13 +8,7 @@ void W_Mine_Think (void);
 
 void W_MineLayer_Reload()
 {
-       self.reload_ammo_player = ammo_rockets;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_rockets, autocvar_g_balance_minelayer_ammo, autocvar_g_balance_minelayer_reload_ammo, autocvar_g_balance_minelayer_reload_time, "weapons/reload.wav");
 }
 
 void spawnfunc_weapon_minelayer (void)
index 267bc2547fd4c955b9be022e904e0a24eadec280..30212b4f17eaa7ffbd126982afa368e05cce6e4b 100644 (file)
@@ -6,16 +6,10 @@ REGISTER_WEAPON(MINSTANEX, w_minstanex, IT_CELLS, 7, WEP_FLAG_HIDDEN | WEP_FLAG_
 
 void W_Minstanex_Reload()
 {
-       self.reload_ammo_player = ammo_cells;
        if(autocvar_g_balance_minstanex_laser_ammo)
-               self.reload_ammo_min = min(autocvar_g_balance_minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo);
+               W_Reload(ammo_cells, min(autocvar_g_balance_minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo), autocvar_g_balance_minstanex_reload_ammo, autocvar_g_balance_minstanex_reload_time, "weapons/reload.wav");
        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";
-
-       W_Reload();
+               W_Reload(ammo_cells, autocvar_g_balance_minstanex_ammo, autocvar_g_balance_minstanex_reload_ammo, autocvar_g_balance_minstanex_reload_time, "weapons/reload.wav");
 }
 
 void W_MinstaNex_Attack (void)
index e4870cac83bddfc99c67cecf7657f6906d6cf937..ef6548cd9878a1f9a1a9cfc4bb9a8016708285c3 100644 (file)
@@ -5,13 +5,7 @@ REGISTER_WEAPON(NEX, w_nex, IT_CELLS, 7, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE |
 
 void W_Nex_Reload()
 {
-       self.reload_ammo_player = ammo_cells;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_cells, min(autocvar_g_balance_nex_primary_ammo, autocvar_g_balance_nex_secondary_ammo), autocvar_g_balance_nex_reload_ammo, autocvar_g_balance_nex_reload_time, "weapons/reload.wav");
 }
 
 void SendCSQCNexBeamParticle(float charge) {
index 6abe83b930fd2e8da63dc8b7a506e93d1f5d1773..6c148924990243f561364f4390054be7f5bdd852 100644 (file)
@@ -7,13 +7,7 @@ REGISTER_WEAPON(ROCKET_LAUNCHER, w_rlauncher, IT_ROCKETS, 9, WEP_FLAG_NORMAL | W
 
 void W_RocketLauncher_Reload()
 {
-       self.reload_ammo_player = ammo_rockets;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_rockets, autocvar_g_balance_rocketlauncher_ammo, autocvar_g_balance_rocketlauncher_reload_ammo, autocvar_g_balance_rocketlauncher_reload_time, "weapons/reload.wav");
 }
 
 void W_Rocket_Unregister()
index 45bfd240d0100dd41f35f12c16405c4dcf218ed0..978bbcd9c7e69d33a39eda4ef3d342a11dbfb732 100644 (file)
@@ -7,13 +7,7 @@ REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 8, WEP_FLAG_NORMAL | WEP_FLAG_RELO
 
 void W_Seeker_Reload()
 {
-       self.reload_ammo_player = ammo_rockets;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_rockets, min(autocvar_g_balance_seeker_missile_ammo, autocvar_g_balance_seeker_tag_ammo), autocvar_g_balance_seeker_reload_ammo, autocvar_g_balance_seeker_reload_time, "weapons/reload.wav");
 }
 
 void Seeker_Missile_Explode ()
index ff07f82b2f1e2c28eb6dfd068d466a1c87731af8..22abbd36bfc879f6691180a6b32f2367d3f15f5d 100644 (file)
@@ -5,13 +5,7 @@ REGISTER_WEAPON(SHOTGUN, w_shotgun, IT_SHELLS, 2, WEP_FLAG_NORMAL | WEP_FLAG_REL
 
 void W_Shotgun_Reload()
 {
-       self.reload_ammo_player = ammo_shells;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_shells, autocvar_g_balance_shotgun_primary_ammo, autocvar_g_balance_shotgun_reload_ammo, autocvar_g_balance_shotgun_reload_time, "weapons/reload.wav");
 }
 
 void W_Shotgun_Attack (void)
index 57d21b36a084994e160ec61b762e5e54e0ef4e70..f099cc63704f2e609788e4a9fc52a100ce20ed6d 100644 (file)
@@ -10,13 +10,7 @@ REGISTER_WEAPON(SNIPERRIFLE, w_sniperrifle, IT_NAILS, 7, WEP_FLAG_NORMAL | WEP_F
 
 void W_SniperRifle_Reload()
 {
-       self.reload_ammo_player = ammo_nails;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_nails, min(autocvar_g_balance_sniperrifle_primary_ammo, autocvar_g_balance_sniperrifle_secondary_ammo), autocvar_g_balance_sniperrifle_reload_ammo, autocvar_g_balance_sniperrifle_reload_time, "weapons/reload.wav");
 }
 
 void W_SniperRifle_FireBullet(float pSpread, float pDamage, float pHeadshotAddedDamage, float pForce, float pSpeed, float pLifetime, float pAmmo, float deathtype, float pBulletConstant)
index b30cf2dd19559c91c3bf4c5f611b8e4e64be5e7c..42929c1474f842cbd2236a9bed6c5de6dc96546e 100644 (file)
@@ -5,13 +5,7 @@ REGISTER_WEAPON(UZI, w_uzi, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE |
 
 void W_UZI_Reload()
 {
-       self.reload_ammo_player = ammo_nails;
-       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";
-
-       W_Reload();
+       W_Reload(ammo_nails, min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo), autocvar_g_balance_uzi_reload_ammo, autocvar_g_balance_uzi_reload_time, "weapons/reload.wav");
 }
 
 // leilei's fancy muzzleflash stuff