w_cvar(WEP_FIREBALL, fireball, MO_BOTH, damage) \
w_cvar(WEP_FIREBALL, fireball, MO_BOTH, damageforcescale) \
w_cvar(WEP_FIREBALL, fireball, MO_BOTH, speed) \
+ w_cvar(WEP_FIREBALL, fireball, MO_BOTH, spread) \
w_cvar(WEP_FIREBALL, fireball, MO_BOTH, lifetime) \
w_cvar(WEP_FIREBALL, fireball, MO_BOTH, laserburntime) \
w_cvar(WEP_FIREBALL, fireball, MO_BOTH, laserdamage) \
w_cvar(WEP_FIREBALL, fireball, MO_PRI, bfgradius) \
w_cvar(WEP_FIREBALL, fireball, MO_SEC, damagetime) \
w_cvar(WEP_FIREBALL, fireball, MO_SEC, speed_up) \
+ w_cvar(WEP_FIREBALL, fireball, MO_SEC, speed_z) \
w_prop(WEP_FIREBALL, fireball, reloading_ammo, reload_ammo) \
w_prop(WEP_FIREBALL, fireball, reloading_time, reload_time) \
w_prop(WEP_FIREBALL, fireball, switchdelay_raise, switchdelay_raise) \
setorigin(proj, w_shotorg);
proj.movetype = MOVETYPE_FLY;
- W_SETUPPROJECTILEVELOCITY(proj, g_balance_fireball_primary);
+ WEP_SETUPPROJVELOCITY_PRI(proj, fireball);
proj.angles = vectoangles(proj.velocity);
proj.touch = W_Fireball_TouchExplode;
setsize(proj, '-16 -16 -16', '16 16 16');
proj.nextthink = time;
proj.damageforcescale = WEP_CVAR_SEC(fireball, damageforcescale);
proj.pushltime = time + WEP_CVAR_SEC(fireball, lifetime);
- W_SETUPPROJECTILEVELOCITY_UP(proj, g_balance_fireball_secondary);
+ WEP_SETUPPROJVELOCITY_UP_SEC(proj, fireball);
proj.angles = vectoangles(proj.velocity);
proj.flags = FL_PROJECTILE;
w_cvar(WEP_HAGAR, hagar, MO_BOTH, radius) \
w_cvar(WEP_HAGAR, hagar, MO_BOTH, refire) \
w_cvar(WEP_HAGAR, hagar, MO_BOTH, speed) \
+ w_cvar(WEP_HAGAR, hagar, MO_BOTH, spread) \
w_cvar(WEP_HAGAR, hagar, MO_BOTH, damageforcescale) \
w_cvar(WEP_HAGAR, hagar, MO_BOTH, health) \
w_cvar(WEP_HAGAR, hagar, MO_PRI, lifetime) \
- w_cvar(WEP_HAGAR, hagar, MO_SEC, spread) \
w_cvar(WEP_HAGAR, hagar, MO_SEC, load) \
w_cvar(WEP_HAGAR, hagar, MO_SEC, load_max) \
w_cvar(WEP_HAGAR, hagar, MO_SEC, load_abort) \
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;
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;
w_cvar(WEP_MORTAR, mortar, MO_PRI, remote_minbouncecnt) \
w_cvar(WEP_MORTAR, mortar, MO_BOTH, speed) \
w_cvar(WEP_MORTAR, mortar, MO_BOTH, speed_up) \
+ w_cvar(WEP_MORTAR, mortar, MO_BOTH, speed_z) \
+ w_cvar(WEP_MORTAR, mortar, MO_BOTH, spread) \
w_cvar(WEP_MORTAR, mortar, MO_BOTH, type) \
w_prop(WEP_MORTAR, mortar, reloading_ammo, reload_ammo) \
w_prop(WEP_MORTAR, mortar, reloading_time, reload_time) \
gren.event_damage = W_Grenade_Damage;
gren.damagedbycontents = TRUE;
gren.missile_flags = MIF_SPLASH | MIF_ARC;
- W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_mortar_primary); // WEAPONTODO
+ WEP_SETUPPROJVELOCITY_UP_PRI(gren, mortar);
gren.angles = vectoangles (gren.velocity);
gren.flags = FL_PROJECTILE;
gren.event_damage = W_Grenade_Damage;
gren.damagedbycontents = TRUE;
gren.missile_flags = MIF_SPLASH | MIF_ARC;
- W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_mortar_secondary); // WEAPONTODO
+ WEP_SETUPPROJVELOCITY_UP_SEC(gren, mortar); // WEAPONTODO
gren.angles = vectoangles (gren.velocity);
gren.flags = FL_PROJECTILE;
w_cvar(WEP_SEEKER, seeker, MO_NONE, flac_lifetime_rand) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, flac_radius) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, flac_refire) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, flac_speed) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, flac_speed_up) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, flac_speed_z) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, flac_spread) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_accel) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_ammo) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_animtime) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_smart_mindist) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_smart_trace_max) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_smart_trace_min) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_speed) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_speed_max) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_speed_up) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_speed_z) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_spread) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, missile_turnrate) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, tag_ammo) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, tag_animtime) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, tag_lifetime) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, tag_refire) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, tag_speed) \
+ w_cvar(WEP_SEEKER, seeker, MO_NONE, tag_spread) \
w_cvar(WEP_SEEKER, seeker, MO_NONE, tag_tracker_lifetime) \
w_prop(WEP_SEEKER, seeker, reloading_ammo, reload_ammo) \
w_prop(WEP_SEEKER, seeker, reloading_time, reload_time) \
missile.flags = FL_PROJECTILE;
missile.missile_flags = MIF_SPLASH | MIF_GUIDED_TAG;
- W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_missile);
+ WEP_SETUPPROJVELOCITY_UP_NONE(missile, seeker, missile_);
missile.angles = vectoangles (missile.velocity);
setorigin (missile, w_shotorg);
setsize (missile, '-2 -2 -2', '2 2 2');
- W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_flac);
+ WEP_SETUPPROJVELOCITY_UP_NONE(missile, seeker, flac_);
CSQCProjectile(missile, TRUE, PROJECTILE_FLAC, TRUE);
other = missile; MUTATOR_CALLHOOK(EditProjectile);
//missile.missile_flags = MIF_..?;
missile.movetype = MOVETYPE_FLY;
- W_SETUPPROJECTILEVELOCITY(missile, g_balance_seeker_tag);
+ WEP_SETUPPROJVELOCITY_NONE(missile, seeker, tag_);
missile.angles = vectoangles (missile.velocity);
CSQCProjectile(missile, TRUE, PROJECTILE_TAG, FALSE); // has sound
float autocvar_g_balance_keyhunt_throwvelocity;
float autocvar_g_balance_kill_delay;
float autocvar_g_balance_kill_antispam;
-//float autocvar_g_balance_laser_melee_animtime;
-//float autocvar_g_balance_laser_melee_damage; // WEAPONTODO
-//float autocvar_g_balance_laser_melee_delay;
-//float autocvar_g_balance_laser_melee_force;
-//float autocvar_g_balance_laser_melee_multihit;
-//float autocvar_g_balance_laser_melee_no_doubleslap;
-//float autocvar_g_balance_laser_melee_nonplayerdamage;
-//float autocvar_g_balance_laser_melee_range;
-//float autocvar_g_balance_laser_melee_refire;
-//float autocvar_g_balance_laser_melee_swing_side;
-//float autocvar_g_balance_laser_melee_swing_up;
-//float autocvar_g_balance_laser_melee_time;
-//float autocvar_g_balance_laser_melee_traces;
-//float autocvar_g_balance_laser_primary;
-//float autocvar_g_balance_laser_primary_force_other_scale;
-//float autocvar_g_balance_laser_primary_force_velocitybias;
-//float autocvar_g_balance_laser_primary_force_zscale;
-//float autocvar_g_balance_laser_primary_spread;
-//float autocvar_g_balance_laser_secondary_force_other_scale;
-//float autocvar_g_balance_laser_secondary_force_velocitybias;
-//float autocvar_g_balance_laser_secondary_force_zscale;
-//float autocvar_g_balance_laser_shockwave_damage;
-//float autocvar_g_balance_laser_shockwave_distance;
-//float autocvar_g_balance_laser_shockwave_edgedamage;
-//float autocvar_g_balance_laser_shockwave_force;
-//float autocvar_g_balance_laser_shockwave_force_forwardbias;
-//float autocvar_g_balance_laser_shockwave_force_zscale;
-//float autocvar_g_balance_laser_shockwave_jump_damage;
-//float autocvar_g_balance_laser_shockwave_jump_edgedamage;
-//float autocvar_g_balance_laser_shockwave_jump_force;
-//float autocvar_g_balance_laser_shockwave_jump_force_velocitybias;
-//float autocvar_g_balance_laser_shockwave_jump_force_zscale;
-//float autocvar_g_balance_laser_shockwave_jump_multiplier_accuracy;
-//float autocvar_g_balance_laser_shockwave_jump_multiplier_distance;
-//float autocvar_g_balance_laser_shockwave_jump_multiplier_min;
-//float autocvar_g_balance_laser_shockwave_jump_radius;
-//float autocvar_g_balance_laser_shockwave_multiplier_accuracy;
-//float autocvar_g_balance_laser_shockwave_multiplier_distance;
-//float autocvar_g_balance_laser_shockwave_multiplier_min;
-//float autocvar_g_balance_laser_shockwave_splash_damage;
-//float autocvar_g_balance_laser_shockwave_splash_edgedamage;
-//float autocvar_g_balance_laser_shockwave_splash_force;
-//float autocvar_g_balance_laser_shockwave_splash_force_forwardbias;
-//float autocvar_g_balance_laser_shockwave_splash_multiplier_accuracy;
-//float autocvar_g_balance_laser_shockwave_splash_multiplier_distance;
-//float autocvar_g_balance_laser_shockwave_splash_multiplier_min;
-//float autocvar_g_balance_laser_shockwave_splash_radius;
-//float autocvar_g_balance_laser_shockwave_spread_max;
-//float autocvar_g_balance_laser_shockwave_spread_min;
-//float autocvar_g_balance_minelayer_reload_ammo;
-//float autocvar_g_balance_nex_reload_ammo;
float autocvar_g_balance_nexball_primary_animtime;
float autocvar_g_balance_nexball_primary_refire;
float autocvar_g_balance_nexball_primary_speed;
float autocvar_g_balance_powerup_strength_selfforce;
float autocvar_g_balance_powerup_strength_time;
float autocvar_g_balance_superweapons_time;
-//float autocvar_g_balance_seeker_reload_ammo;
float autocvar_g_balance_selfdamagepercent;
-//float autocvar_g_balance_shotgun_primary_ammo; // WEAPONTODO
-//float autocvar_g_balance_shotgun_primary_animtime;
-//float autocvar_g_balance_shotgun_primary_bulletconstant;
-//float autocvar_g_balance_shotgun_primary_bullets;
-//float autocvar_g_balance_shotgun_primary_damage;
-//float autocvar_g_balance_shotgun_primary_force;
-//float autocvar_g_balance_shotgun_primary_refire;
-//float autocvar_g_balance_shotgun_primary_speed;
-//float autocvar_g_balance_shotgun_primary_spread;
-//float autocvar_g_balance_shotgun_secondary;
-//float autocvar_g_balance_shotgun_secondary_animtime;
-//float autocvar_g_balance_shotgun_secondary_damage;
-//float autocvar_g_balance_shotgun_secondary_force;
-//float autocvar_g_balance_shotgun_secondary_melee_delay;
-//float autocvar_g_balance_shotgun_secondary_melee_range;
-//float autocvar_g_balance_shotgun_secondary_melee_swing_side;
-//float autocvar_g_balance_shotgun_secondary_melee_swing_up;
-//float autocvar_g_balance_shotgun_secondary_melee_time;
-//float autocvar_g_balance_shotgun_secondary_melee_traces;
-//float autocvar_g_balance_shotgun_secondary_melee_no_doubleslap;
-//float autocvar_g_balance_shotgun_secondary_melee_nonplayerdamage;
-//float autocvar_g_balance_shotgun_secondary_melee_multihit;
-//float autocvar_g_balance_shotgun_secondary_refire;
-//float autocvar_g_balance_shotgun_reload_ammo;
float autocvar_g_balance_teams;
float autocvar_g_balance_teams_prevent_imbalance;
float autocvar_g_balance_teams_scorefactor;
#endif
void W_SetupProjectileVelocityEx(entity missile, vector dir, vector upDir, float pSpeed, float pUpSpeed, float pZSpeed, float spread, float forceAbsolute);
-void W_SetupProjectileVelocity(entity missile, float pSpeed, float spread); /* WEAPONTODO
-{
- W_SetupProjectileVelocityEx(missile, w_shotdir, v_up, pSpeed, 0, 0, spread, FALSE);
-}*/
-
-#define W_SETUPPROJECTILEVELOCITY_UP(m,s) W_SetupProjectileVelocityEx(m, w_shotdir, v_up, cvar(#s "_speed"), cvar(#s "_speed_up"), cvar(#s "_speed_z"), cvar(#s "_spread"), FALSE)
-#define W_SETUPPROJECTILEVELOCITY(m,s) W_SetupProjectileVelocityEx(m, w_shotdir, v_up, cvar(#s "_speed"), 0, 0, cvar(#s "_spread"), FALSE)
-
-#define WEP_SETUPPROJVELOCITY_UP_NONE(ent,wepname) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR(wepname, speed), WEP_CVAR(wepname, speed_up), WEP_CVAR(wepname, speed_z), WEP_CVAR(wepname, spread), FALSE)
+#define WEP_SETUPPROJVELOCITY_UP_NONE(ent,wepname,prefix) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR(wepname, prefix##speed), WEP_CVAR(wepname, prefix##speed_up), WEP_CVAR(wepname, prefix##speed_z), WEP_CVAR(wepname, prefix##spread), FALSE)
#define WEP_SETUPPROJVELOCITY_UP_PRI(ent,wepname) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR_PRI(wepname, speed), WEP_CVAR_PRI(wepname, speed_up), WEP_CVAR_PRI(wepname, speed_z), WEP_CVAR_PRI(wepname, spread), FALSE)
#define WEP_SETUPPROJVELOCITY_UP_SEC(ent,wepname) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR_SEC(wepname, speed), WEP_CVAR_SEC(wepname, speed_up), WEP_CVAR_SEC(wepname, speed_z), WEP_CVAR_SEC(wepname, spread), FALSE)
#define WEP_SETUPPROJVELOCITY_UP_BOTH(ent,wepname,isprimary) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR_BOTH(wepname, isprimary, speed), WEP_CVAR_BOTH(wepname, isprimary, speed_up), WEP_CVAR_BOTH(wepname, isprimary, speed_z), WEP_CVAR_BOTH(wepname, isprimary, spread), FALSE)
-#define WEP_SETUPPROJVELOCITY_NONE(ent,wepname) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR(wepname, speed), 0, 0, WEP_CVAR(wepname, spread), FALSE)
+#define WEP_SETUPPROJVELOCITY_NONE(ent,wepname,prefix) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR(wepname, prefix##speed), 0, 0, WEP_CVAR(wepname, prefix##spread), FALSE)
#define WEP_SETUPPROJVELOCITY_PRI(ent,wepname) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR_PRI(wepname, speed), 0, 0, WEP_CVAR_PRI(wepname, spread), FALSE)
#define WEP_SETUPPROJVELOCITY_SEC(ent,wepname) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR_SEC(wepname, speed), 0, 0, WEP_CVAR_SEC(wepname, spread), FALSE)
#define WEP_SETUPPROJVELOCITY_BOTH(ent,wepname,isprimary) W_SetupProjectileVelocityEx(ent, w_shotdir, v_up, WEP_CVAR_BOTH(wepname, isprimary, speed), 0, 0, WEP_CVAR_BOTH(wepname, isprimary, spread), FALSE)