]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/w_nex.qc
Further cleanup of laser, plus remove useless mode declarations
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / w_nex.qc
index 3cc9abc11e256d8a6fb2aaa0c5659dcc3905e61d..3ebafdc54f9a80484f85ec2cb45b0c9a3d7dc16f 100644 (file)
@@ -1,53 +1,53 @@
 #ifdef REGISTER_WEAPON
 REGISTER_WEAPON(
-/* WEP_##id  */ NEX,
-/* function  */ w_nex,
-/* ammotype  */ IT_CELLS,
-/* impulse   */ 7,
-/* flags     */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN,
-/* rating    */ BOT_PICKUP_RATING_HIGH,
-/* model     */ "nex",
-/* shortname */ "nex",
-/* fullname  */ _("Nex")
+/* WEP_##id */ NEX,
+/* function */ w_nex,
+/* ammotype */ IT_CELLS,
+/* impulse  */ 7,
+/* flags    */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN,
+/* rating   */ BOT_PICKUP_RATING_HIGH,
+/* model    */ "nex",
+/* netname  */ "nex",
+/* fullname */ _("Nex")
 );
 
-#define NEX_SETTINGS(weapon) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, ammo) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, animtime) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damage) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, force) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_mindist) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_maxdist) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_halflife) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_forcehalflife) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, ammo) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, refire) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_mindmg) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_shot_multiplier) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_animlimit) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_limit) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_rate) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_rot_rate) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_rot_pause) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_start) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_minspeed) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_maxspeed) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_velocity_rate) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  chargepool) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  chargepool_regen) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  chargepool_pause_regen) \
-       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 NEX_SETTINGS(w_cvar,w_prop) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, ammo) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, animtime) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, damage) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, force) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, damagefalloff_mindist) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, damagefalloff_maxdist) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, damagefalloff_halflife) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, damagefalloff_forcehalflife) \
+       w_cvar(WEP_NEX, nex, MO_BOTH, refire) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_mindmg) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_shot_multiplier) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_animlimit) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_limit) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_rate) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_rot_rate) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_rot_pause) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_start) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_minspeed) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_maxspeed) \
+       w_cvar(WEP_NEX, nex, MO_NONE, charge_velocity_rate) \
+       w_cvar(WEP_NEX, nex, MO_NONE, secondary) \
+       w_cvar(WEP_NEX, nex, MO_SEC,  chargepool) \
+       w_cvar(WEP_NEX, nex, MO_SEC,  chargepool_regen) \
+       w_cvar(WEP_NEX, nex, MO_SEC,  chargepool_pause_regen) \
+       w_prop(WEP_NEX, nex, reloading_ammo, reload_ammo) \
+       w_prop(WEP_NEX, nex, reloading_time, reload_time) \
+       w_prop(WEP_NEX, nex, switchdelay_raise, switchdelay_raise) \
+       w_prop(WEP_NEX, nex, switchdelay_drop, switchdelay_drop)
 
 #ifdef SVQC
-NEX_SETTINGS(nex)
-void spawnfunc_weapon_nex (void) { weapon_defaultspawnfunc(WEP_NEX); }
+NEX_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP)
 #endif
 #else
 #ifdef SVQC
+void spawnfunc_weapon_nex (void) { weapon_defaultspawnfunc(WEP_NEX); }
 
 void SendCSQCNexBeamParticle(float charge) {
        vector v;
@@ -141,7 +141,7 @@ float w_nex(float req)
                                        self.pauseregen_finished = max(self.pauseregen_finished, time + WEP_CVAR_SEC(nex, chargepool_pause_regen));
                                }
 
-                       if(autocvar_g_balance_nex_reload_ammo && self.clip_load < min(autocvar_g_balance_nex_primary_ammo, autocvar_g_balance_nex_secondary_ammo)) // forced reload
+                       if(autocvar_g_balance_nex_reload_ammo && self.clip_load < min(WEP_CVAR_PRI(nex, ammo), WEP_CVAR_SEC(nex, ammo))) // forced reload
                                WEP_ACTION(self.weapon, WR_RELOAD);
                        else
                        {
@@ -153,7 +153,7 @@ float w_nex(float req)
                                                weapon_thinkf(WFRAME_FIRE1, WEP_CVAR_PRI(nex, animtime), w_ready);
                                        }
                                }
-                               if ((WEP_CVAR(nex, charge) && !autocvar_g_balance_nex_secondary) ? (self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) : self.BUTTON_ATCK2)
+                               if ((WEP_CVAR(nex, charge) && !WEP_CVAR(nex, secondary)) ? (self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) : self.BUTTON_ATCK2)
                                {
                                        if(WEP_CVAR(nex, charge))
                                        {
@@ -217,7 +217,7 @@ float w_nex(float req)
                                                        }
                                                }
                                        }
-                                       else if(autocvar_g_balance_nex_secondary)
+                                       else if(WEP_CVAR(nex, secondary))
                                        {
                                                if (weapon_prepareattack(0, WEP_CVAR_SEC(nex, refire)))
                                                {
@@ -241,16 +241,11 @@ float w_nex(float req)
                        precache_sound ("weapons/nexwhoosh1.wav");
                        precache_sound ("weapons/nexwhoosh2.wav");
                        precache_sound ("weapons/nexwhoosh3.wav");
-                       #define WEP_ADD_CVAR(weapon,mode,name) /*nothing*/
-                       #define WEP_ADD_PROP(weapon,prop,name) WEP_SET_PROP(WEP_NEX,weapon,prop,name)
-                       NEX_SETTINGS(nex)
-                       #undef WEP_ADD_CVAR
-                       #undef WEP_ADD_PROP
+                       NEX_SETTINGS(WEP_SKIPCVAR, WEP_SET_PROP)
                        return TRUE;
                }
                case WR_SETUP:
                {
-                       weapon_setup(WEP_NEX);
                        self.current_ammo = ammo_cells;
                        return TRUE;
                }
@@ -262,7 +257,7 @@ float w_nex(float req)
                }
                case WR_CHECKAMMO2:
                {
-                       if(autocvar_g_balance_nex_secondary)
+                       if(WEP_CVAR(nex, secondary))
                        {
                                // don't allow charging if we don't have enough ammo
                                ammo_amount = self.ammo_cells >= WEP_CVAR_SEC(nex, ammo);
@@ -276,16 +271,12 @@ float w_nex(float req)
                }
                case WR_CONFIG:
                {
-                       #define WEP_ADD_CVAR(weapon,mode,name) WEP_CONFIG_WRITE_CVARS(weapon,mode,name)
-                       #define WEP_ADD_PROP(weapon,prop,name) WEP_CONFIG_WRITE_PROPS(weapon,prop,name)
-                       NEX_SETTINGS(nex)
-                       #undef WEP_ADD_CVAR
-                       #undef WEP_ADD_PROP
+                       NEX_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS)
                        return TRUE;
                }
                case WR_RELOAD:
                {
-                       W_Reload(min(WEP_CVAR_PRI(nex, ammo), WEP_CVAR_SEC(nex, ammo)), autocvar_g_balance_nex_reload_ammo, autocvar_g_balance_nex_reload_time, "weapons/reload.wav");
+                       W_Reload(min(WEP_CVAR_PRI(nex, ammo), WEP_CVAR_SEC(nex, ammo)), "weapons/reload.wav");
                        return TRUE;
                }
                case WR_SUICIDEMESSAGE: