]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/w_hagar.qc
No need for that extra prefix
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / w_hagar.qc
index 1916b569761c2b7ac23e3797fc0ba7873ce7e8e1..8f1b4204a9b83a317111119776c3dde1a9006ed5 100644 (file)
@@ -2,7 +2,7 @@
 REGISTER_WEAPON(
 /* WEP_##id */ HAGAR,
 /* function */ w_hagar,
-/* ammotype */ IT_ROCKETS,
+/* ammotype */ ammo_rockets,
 /* impulse  */ 8,
 /* flags    */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH,
 /* rating   */ BOT_PICKUP_RATING_MID,
@@ -11,38 +11,42 @@ REGISTER_WEAPON(
 /* fullname */ _("Hagar")
 );
 
-#define HAGAR_SETTINGS(weapon) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, ammo) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damage) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, edgedamage) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, force) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, radius) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, refire) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, speed) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damageforcescale) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, health) \
-       WEP_ADD_CVAR(weapon, MO_PRI,  lifetime) \
-       WEP_ADD_CVAR(weapon, MO_NONE, secondary) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  spread) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_max) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_abort) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_animtime) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_hold) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_speed) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_releasedeath) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_spread) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_spread_bias) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  load_linkexplode) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  lifetime_min) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  lifetime_rand) \
-       WEP_ADD_PROP(weapon, reloading_ammo, reload_ammo) \
-       WEP_ADD_PROP(weapon, reloading_time, reload_time) \
-       WEP_ADD_PROP(weapon, switchdelay_raise, switchdelay_raise) \
-       WEP_ADD_PROP(weapon, switchdelay_drop, switchdelay_drop)
+#define HAGAR_SETTINGS(w_cvar,w_prop) HAGAR_SETTINGS_LIST(w_cvar, w_prop, HAGAR, hagar)
+#define HAGAR_SETTINGS_LIST(w_cvar,w_prop,id,sn) \
+       w_cvar(id, sn, BOTH, ammo) \
+       w_cvar(id, sn, BOTH, damage) \
+       w_cvar(id, sn, BOTH, edgedamage) \
+       w_cvar(id, sn, BOTH, force) \
+       w_cvar(id, sn, BOTH, radius) \
+       w_cvar(id, sn, BOTH, refire) \
+       w_cvar(id, sn, BOTH, speed) \
+       w_cvar(id, sn, BOTH, spread) \
+       w_cvar(id, sn, BOTH, damageforcescale) \
+       w_cvar(id, sn, BOTH, health) \
+       w_cvar(id, sn, PRI,  lifetime) \
+       w_cvar(id, sn, SEC,  load) \
+       w_cvar(id, sn, SEC,  load_max) \
+       w_cvar(id, sn, SEC,  load_abort) \
+       w_cvar(id, sn, SEC,  load_animtime) \
+       w_cvar(id, sn, SEC,  load_hold) \
+       w_cvar(id, sn, SEC,  load_speed) \
+       w_cvar(id, sn, SEC,  load_releasedeath) \
+       w_cvar(id, sn, SEC,  load_spread) \
+       w_cvar(id, sn, SEC,  load_spread_bias) \
+       w_cvar(id, sn, SEC,  load_linkexplode) \
+       w_cvar(id, sn, SEC,  lifetime_min) \
+       w_cvar(id, sn, SEC,  lifetime_rand) \
+       w_cvar(id, sn, NONE, secondary) \
+       w_prop(id, sn, float,  reloading_ammo, reload_ammo) \
+       w_prop(id, sn, float,  reloading_time, reload_time) \
+       w_prop(id, sn, float,  switchdelay_raise, switchdelay_raise) \
+       w_prop(id, sn, float,  switchdelay_drop, switchdelay_drop) \
+       w_prop(id, sn, string, weaponreplace, weaponreplace) \
+       w_prop(id, sn, float,  weaponstart, weaponstart) \
+       w_prop(id, sn, float,  weaponstartoverride, weaponstartoverride)
 
 #ifdef SVQC
-HAGAR_SETTINGS(hagar)
+HAGAR_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP)
 #endif
 #else
 #ifdef SVQC
@@ -115,7 +119,7 @@ void W_Hagar_Attack (void)
 {
        entity missile;
 
-       W_DecreaseAmmo(ammo_rockets, WEP_CVAR_PRI(hagar, ammo), autocvar_g_balance_hagar_reload_ammo);
+       W_DecreaseAmmo(WEP_CVAR_PRI(hagar, ammo));
 
        W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", CH_WEAPON_A, WEP_CVAR_PRI(hagar, damage));
 
@@ -143,7 +147,7 @@ void W_Hagar_Attack (void)
        setsize(missile, '0 0 0', '0 0 0');
 
        missile.movetype = MOVETYPE_FLY;
-       W_SETUPPROJECTILEVELOCITY(missile, g_balance_hagar_primary);
+       WEP_SETUPPROJVELOCITY_PRI(missile, hagar);
 
        missile.angles = vectoangles (missile.velocity);
        missile.flags = FL_PROJECTILE;
@@ -158,7 +162,7 @@ void W_Hagar_Attack2 (void)
 {
        entity missile;
 
-       W_DecreaseAmmo(ammo_rockets, WEP_CVAR_SEC(hagar, ammo), autocvar_g_balance_hagar_reload_ammo);
+       W_DecreaseAmmo(WEP_CVAR_SEC(hagar, ammo));
 
        W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", CH_WEAPON_A, WEP_CVAR_SEC(hagar, damage));
 
@@ -187,7 +191,7 @@ void W_Hagar_Attack2 (void)
        setsize(missile, '0 0 0', '0 0 0');
 
        missile.movetype = MOVETYPE_BOUNCEMISSILE;
-       W_SETUPPROJECTILEVELOCITY(missile, g_balance_hagar_secondary);
+       WEP_SETUPPROJVELOCITY_SEC(missile, hagar);
 
        missile.angles = vectoangles (missile.velocity);
        missile.flags = FL_PROJECTILE;
@@ -303,7 +307,7 @@ void W_Hagar_Attack2_Load (void)
                        {
                                // if we pressed primary fire while loading, unload all rockets and abort
                                self.weaponentity.state = WS_READY;
-                               W_DecreaseAmmo(ammo_rockets, WEP_CVAR_SEC(hagar, ammo) * self.hagar_load * -1, autocvar_g_balance_hagar_reload_ammo); // give back ammo
+                               W_DecreaseAmmo(WEP_CVAR_SEC(hagar, ammo) * self.hagar_load * -1); // give back ammo
                                self.hagar_load = 0;
                                sound(self, CH_WEAPON_A, "weapons/hagar_beep.wav", VOL_BASE, ATTN_NORM);
 
@@ -321,7 +325,7 @@ void W_Hagar_Attack2_Load (void)
                        {
                                if(!self.hagar_loadblock && self.hagar_loadstep < time)
                                {
-                                       W_DecreaseAmmo(ammo_rockets, WEP_CVAR_SEC(hagar, ammo), autocvar_g_balance_hagar_reload_ammo);
+                                       W_DecreaseAmmo(WEP_CVAR_SEC(hagar, ammo));
                                        self.weaponentity.state = WS_INUSE;
                                        self.hagar_load += 1;
                                        sound(self, CH_WEAPON_B, "weapons/hagar_load.wav", VOL_BASE * 0.8, ATTN_NORM); // sound is too loud according to most
@@ -373,7 +377,7 @@ void W_Hagar_Attack2_Load (void)
        }
 
        // we aren't checking ammo during an attack, so we must do it here
-       if not(WEP_ACTION(self.weapon, WR_CHECKAMMO1) + WEP_ACTION(self.weapon, WR_CHECKAMMO2))
+       if(!(WEP_ACTION(self.weapon, WR_CHECKAMMO1) + WEP_ACTION(self.weapon, WR_CHECKAMMO2)))
        {
                // note: this doesn't force the switch
                W_SwitchToOtherWeapon(self);
@@ -442,7 +446,7 @@ float w_hagar(float req)
                        precache_sound ("weapons/hagar_fire.wav");
                        precache_sound ("weapons/hagar_load.wav");
                        precache_sound ("weapons/hagar_beep.wav");
-                       WEP_SET_PROPS(HAGAR_SETTINGS(hagar), WEP_HAGAR)
+                       HAGAR_SETTINGS(WEP_SKIPCVAR, WEP_SET_PROP)
                        return TRUE;
                }
                case WR_SETUP:
@@ -452,7 +456,7 @@ float w_hagar(float req)
 
                        if(self.hagar_load)
                        {
-                               W_DecreaseAmmo(ammo_rockets, WEP_CVAR_SEC(hagar, ammo) * self.hagar_load * -1, autocvar_g_balance_hagar_reload_ammo); // give back ammo if necessary
+                               W_DecreaseAmmo(WEP_CVAR_SEC(hagar, ammo) * self.hagar_load * -1); // give back ammo if necessary
                                self.hagar_load = 0;
                        }
                        
@@ -472,7 +476,7 @@ float w_hagar(float req)
                }
                case WR_CONFIG:
                {
-                       WEP_CONFIG_SETTINGS(HAGAR_SETTINGS(hagar))
+                       HAGAR_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS)
                        return TRUE;
                }
                case WR_RESETPLAYER:
@@ -490,8 +494,8 @@ float w_hagar(float req)
                }
                case WR_RELOAD:
                {
-                       if not(self.hagar_load) // require releasing loaded rockets first
-                               W_Reload(min(WEP_CVAR_PRI(hagar, ammo), WEP_CVAR_SEC(hagar, ammo)), autocvar_g_balance_hagar_reload_ammo, autocvar_g_balance_hagar_reload_time, "weapons/reload.wav");
+                       if(!self.hagar_load) // require releasing loaded rockets first
+                               W_Reload(min(WEP_CVAR_PRI(hagar, ammo), WEP_CVAR_SEC(hagar, ammo)), "weapons/reload.wav");
                                
                        return TRUE;
                }