#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;
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
{
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))
{
}
}
}
- else if(autocvar_g_balance_nex_secondary)
+ else if(WEP_CVAR(nex, secondary))
{
if (weapon_prepareattack(0, WEP_CVAR_SEC(nex, refire)))
{
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;
}
}
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);
}
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: