MSG_INFO_NOTIF(1, INFO_WEAPON_SEEKER_MURDER_SPRAY, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponseeker", _("^BG%s%s^K1 was pummeled by ^BG%s^K1's Seeker rockets%s%s"), "") \
MSG_INFO_NOTIF(1, INFO_WEAPON_SEEKER_MURDER_TAG, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponseeker", _("^BG%s%s^K1 was tagged by ^BG%s^K1's Seeker%s%s"), "") \
MSG_INFO_NOTIF(1, INFO_WEAPON_SEEKER_SUICIDE, 2, 1, "s1 s2loc spree_lost", "s1", "weaponseeker", _("^BG%s^K1 played with tiny Seeker rockets%s%s"), "") \
- MSG_INFO_NOTIF(1, INFO_WEAPON_SHOTGUN_MURDER, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponshotgun", _("^BG%s%s^K1 was gunned down by ^BG%s^K1's Shotgun%s%s"), "") \
- MSG_INFO_NOTIF(1, INFO_WEAPON_SHOTGUN_MURDER_SLAP, 3, 2, "spree_inf s2 s1 s3loc spree_end", "s2 s1", "notify_melee_shotgun", _("^BG%s%s^K1 slapped ^BG%s^K1 around a bit with a large Shotgun%s%s"), "") \
+ MSG_INFO_NOTIF(1, INFO_WEAPON_SHOCKWAVE_MURDER, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponshotgun", _("^BG%s%s^K1 was gunned down by ^BG%s^K1's Shockwave%s%s"), "") \
+ MSG_INFO_NOTIF(1, INFO_WEAPON_SHOCKWAVE_MURDER_SLAP, 3, 2, "spree_inf s2 s1 s3loc spree_end", "s2 s1", "notify_melee_shotgun", _("^BG%s%s^K1 slapped ^BG%s^K1 around a bit with a large Shockwave%s%s"), "") \
MSG_INFO_NOTIF(1, INFO_WEAPON_THINKING_WITH_PORTALS, 2, 1, "s1 s2loc spree_lost", "s1", "notify_selfkill", _("^BG%s^K1 is now thinking with portals%s%s"), "") \
MSG_INFO_NOTIF(1, INFO_WEAPON_TUBA_MURDER, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weapontuba", _("^BG%s%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Tuba%s%s"), "") \
MSG_INFO_NOTIF(1, INFO_WEAPON_TUBA_SUICIDE, 2, 1, "s1 s2loc spree_lost", "s1", "weapontuba", _("^BG%s^K1 hurt their own ears with the @!#%%'n Tuba%s%s"), "") \
MSG_MULTI_NOTIF(1, WEAPON_SEEKER_MURDER_SPRAY, NO_MSG, INFO_WEAPON_SEEKER_MURDER_SPRAY, NO_MSG) \
MSG_MULTI_NOTIF(1, WEAPON_SEEKER_MURDER_TAG, NO_MSG, INFO_WEAPON_SEEKER_MURDER_TAG, NO_MSG) \
MSG_MULTI_NOTIF(1, WEAPON_SEEKER_SUICIDE, NO_MSG, INFO_WEAPON_SEEKER_SUICIDE, CENTER_DEATH_SELF_GENERIC) \
- MSG_MULTI_NOTIF(1, WEAPON_SHOTGUN_MURDER, NO_MSG, INFO_WEAPON_SHOTGUN_MURDER, NO_MSG) \
- MSG_MULTI_NOTIF(1, WEAPON_SHOTGUN_MURDER_SLAP, NO_MSG, INFO_WEAPON_SHOTGUN_MURDER_SLAP, NO_MSG) \
+ MSG_MULTI_NOTIF(1, WEAPON_SHOCKWAVE_MURDER, NO_MSG, INFO_WEAPON_SHOCKWAVE_MURDER, NO_MSG) \
+ MSG_MULTI_NOTIF(1, WEAPON_SHOCKWAVE_MURDER_SLAP, NO_MSG, INFO_WEAPON_SHOCKWAVE_MURDER_SLAP, NO_MSG) \
MSG_MULTI_NOTIF(1, WEAPON_THINKING_WITH_PORTALS, NO_MSG, INFO_WEAPON_THINKING_WITH_PORTALS, CENTER_DEATH_SELF_GENERIC) \
MSG_MULTI_NOTIF(1, WEAPON_TUBA_MURDER, NO_MSG, INFO_WEAPON_TUBA_MURDER, NO_MSG) \
MSG_MULTI_NOTIF(1, WEAPON_TUBA_SUICIDE, NO_MSG, INFO_WEAPON_TUBA_SUICIDE, CENTER_DEATH_SELF_GENERIC) \
fputs(wep_config_file, a); \
if(wep_config_alsoprint) { print(a); } }
-#define WEP_CONFIG_WRITE_CVARS(weapon,mode,name) \
- #if mode == MO_PRI \
- { WEP_CONFIG_QUEUE( \
- sprintf("set g_balance_%s_primary_%s %g\n", #weapon, #name, \
- cvar(sprintf("g_balance_%s_primary_%s", #weapon, #name)))) } \
- #endif \
- #if mode == MO_SEC \
- { WEP_CONFIG_QUEUE( \
- sprintf("set g_balance_%s_secondary_%s %g\n", #weapon, #name, \
- cvar(sprintf("g_balance_%s_secondary_%s", #weapon, #name)))) } \
- #endif \
- #if mode == MO_BOTH \
- { WEP_CONFIG_QUEUE( \
- sprintf("set g_balance_%s_primary_%s %g\n", #weapon, #name, \
- cvar(sprintf("g_balance_%s_primary_%s", #weapon, #name)))) } \
- { WEP_CONFIG_QUEUE( \
- sprintf("set g_balance_%s_secondary_%s %g\n", #weapon, #name, \
- cvar(sprintf("g_balance_%s_secondary_%s", #weapon, #name)))) } \
- #endif \
- #if mode == MO_NONE \
- { WEP_CONFIG_QUEUE( \
- sprintf("set g_balance_%s_%s %g\n", #weapon, #name, \
- cvar(sprintf("g_balance_%s_%s", #weapon, #name)))) } \
- #endif
+#define WEP_CONFIG_WRITE_CVARS_MO_PRI(weapon,name) \
+ { WEP_CONFIG_QUEUE( \
+ sprintf("set g_balance_%s_primary_%s %g\n", #weapon, #name, \
+ cvar(sprintf("g_balance_%s_primary_%s", #weapon, #name)))) }
+
+#define WEP_CONFIG_WRITE_CVARS_MO_SEC(weapon,name) \
+ { WEP_CONFIG_QUEUE( \
+ sprintf("set g_balance_%s_secondary_%s %g\n", #weapon, #name, \
+ cvar(sprintf("g_balance_%s_secondary_%s", #weapon, #name)))) }
+
+#define WEP_CONFIG_WRITE_CVARS_MO_BOTH(weapon,name) \
+ { WEP_CONFIG_QUEUE( \
+ sprintf("set g_balance_%s_primary_%s %g\n", #weapon, #name, \
+ cvar(sprintf("g_balance_%s_primary_%s", #weapon, #name)))) } \
+ { WEP_CONFIG_QUEUE( \
+ sprintf("set g_balance_%s_secondary_%s %g\n", #weapon, #name, \
+ cvar(sprintf("g_balance_%s_secondary_%s", #weapon, #name)))) }
+
+#define WEP_CONFIG_WRITE_CVARS_MO_NONE(weapon,name) \
+ { WEP_CONFIG_QUEUE( \
+ sprintf("set g_balance_%s_%s %g\n", #weapon, #name, \
+ cvar(sprintf("g_balance_%s_%s", #weapon, #name)))) }
+
+#define WEP_CONFIG_WRITE_CVARS(weapon,mode,name) WEP_CONFIG_WRITE_CVARS_##mode(weapon, name)
// WEAPONTODO: remove prop
#define WEP_CONFIG_WRITE_PROPS(weapon,name) \
sprintf("set g_balance_%s_%s %g\n", #weapon, #name, \
cvar(sprintf("g_balance_%s_%s", #weapon, #name)))) }
-#define WEP_CONFIG_SETTINGS(wepsettings) \
+#define WEP_CONFIG_SETTINGS(wepsettings) /*\
#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,name) \
wepsettings \
#undef WEP_ADD_CVAR \
#undef WEP_ADD_PROP
+*/
self = oldself;
}
}
-
+void W_Laser_Shockwave(void);
+void W_Laser_Melee(void);
float W_Laser(float request)
{
switch(request)
if(autocvar_sv_q3acompat_machineshotgunswap)
if(self.classname != "droppedweapon")
{
- weapon_defaultspawnfunc(WEP_SHOTGUN);
+ weapon_defaultspawnfunc(WEP_SHOCKWAVE);
return;
}
weapon_defaultspawnfunc(WEP_UZI);
#ifdef SVQC
void spawnfunc_weapon_shockwave()
{
- if(autocvar_sv_q3acompat_machineshockwaveswap)
+ //if(autocvar_sv_q3acompat_machineshockwaveswap)
+ if(autocvar_sv_q3acompat_machineshotgunswap)
if(self.classname != "droppedweapon")
{
weapon_defaultspawnfunc(WEP_UZI);
}
weapon_defaultspawnfunc(WEP_SHOCKWAVE);
}
+/*
.float swing_prev;
.entity swing_alreadyhit;
.float shockwave_pelletstime;
}
//print("queue was ", ftos(queue), ".\n\n");
}
-
+*/
float W_Shockwave(float req)
{
float ammo_amount;
switch(req)
{
+ /*
case WR_AIM:
{
if(vlen(self.origin-self.enemy.origin) <= autocvar_g_balance_shockwave_secondary_melee_range)
return TRUE;
}
+ */
case WR_INIT:
{
precache_model ("models/uziflash.md3");
}
case WR_CHECKAMMO1:
{
+ /*
ammo_amount = self.ammo_shells >= autocvar_g_balance_shockwave_pellets_ammo;
- ammo_amount += self.(weapon_load[WEP_SHOCKWAVE]) >= autocvar_g_balance_shockwave_pellets_ammo;
+ ammo_amount += self.(weapon_load[WEP_SHOCKWAVE]) >= autocvar_g_balance_shockwave_pellets_ammo;*/
return ammo_amount;
}
case WR_CHECKAMMO2:
}
case WR_RELOAD:
{
- W_Reload(autocvar_g_balance_shockwave_pellets_ammo, "weapons/reload.wav");
+ //W_Reload(autocvar_g_balance_shockwave_pellets_ammo, "weapons/reload.wav");
return TRUE;
}
case WR_SUICIDEMESSAGE:
REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname)
#endif
-#define MO_NONE 0
+/*#define MO_NONE 0
#define MO_PRI 1
#define MO_SEC 2
#define MO_BOTH 3
+*/
+#define WEP_DUPECHECK(dupecheck,cvar) float cvar;
-#define WEP_DUPECHECK(dupecheck,cvar) \
+/*#define WEP_DUPECHECK(dupecheck,cvar) \
#ifndef dupecheck \
#define dupecheck \
float cvar; \
#else \
#error DUPLICATE WEAPON CVAR: cvar \
#endif
-
+*/
/*
#define WEP_CLEAN_DUPECHECK(dupecheck) \
#ifdef WEP_CVAR_##weapon##_##name \
#endif
*/
-#define WEP_ADD_CVAR(weapon,mode,name) \
- #if mode == MO_PRI \
- WEP_DUPECHECK(WEP_CVAR_P_##weapon##_##name, autocvar_g_balance_##weapon##_primary_##name) \
- #endif \
- #if mode == MO_SEC \
- WEP_DUPECHECK(WEP_CVAR_S_##weapon##_##name, autocvar_g_balance_##weapon##_secondary_##name) \
- #endif \
- #if mode == MO_BOTH \
- WEP_DUPECHECK(WEP_CVAR_P_##weapon##_##name, autocvar_g_balance_##weapon##_primary_##name) \
- WEP_DUPECHECK(WEP_CVAR_S_##weapon##_##name, autocvar_g_balance_##weapon##_secondary_##name) \
- #endif \
- #if mode == MO_NONE \
- WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_##name) \
- #endif
+#define WEP_ADD_CVAR_MO_PRI(weapon,name) \
+ WEP_DUPECHECK(WEP_CVAR_P_##weapon##_##name, autocvar_g_balance_##weapon##_primary_##name)
+
+#define WEP_ADD_CVAR_MO_SEC(weapon,name) \
+ WEP_DUPECHECK(WEP_CVAR_S_##weapon##_##name, autocvar_g_balance_##weapon##_secondary_##name)
+
+#define WEP_ADD_CVAR_MO_BOTH(weapon,name) \
+ WEP_DUPECHECK(WEP_CVAR_P_##weapon##_##name, autocvar_g_balance_##weapon##_primary_##name) \
+ WEP_DUPECHECK(WEP_CVAR_S_##weapon##_##name, autocvar_g_balance_##weapon##_secondary_##name)
+
+#define WEP_ADD_CVAR_MO_NONE(weapon,name) \
+ WEP_DUPECHECK(WEP_CVAR_##weapon##_##name, autocvar_g_balance_##weapon##_##name)
+
+#define WEP_ADD_CVAR(weapon,mode,name) WEP_ADD_CVAR_##mode(weapon, name)
+
#define WEP_CVAR(weapon,name) autocvar_g_balance_##weapon##_##name
#define WEP_CVAR_PRI(weapon,name) WEP_CVAR(weapon, primary_##name)
#define WEP_SET_PROP(wepid,weapon,prop,name) get_weaponinfo(##wepid).##prop = autocvar_g_balance_##weapon##_##name;
-#define WEP_SET_PROPS(wepsettings,wepid) \
+/*#define WEP_SET_PROPS(wepsettings,wepid) \
#define WEP_ADD_CVAR(weapon,mode,name) \
#define WEP_ADD_PROP(weapon,prop,name) WEP_SET_PROP(wepid,weapon,prop,name) \
wepsettings \
#undef WEP_ADD_CVAR \
#undef WEP_ADD_PROP
-
+*/
#include "all.qh"
#undef WEP_ADD_CVAR
entity get_weaponinfo(float w);
-float want_weapon(string cvarprefix, entity weaponinfo, float allguns)
+float want_weapon(string cvarprefix, entity weaponinfo, float allguns) // WEAPONTODO
{
var float i = weaponinfo.weapon;
var float d = 0;
d = FALSE;
}
else if (g_cts)
- d = (i == WEP_SHOTGUN); // todo: how to handle shotgun in CTS mode? we're removing it.. so....
+ d = (i == WEP_SHOCKWAVE); // todo: how to handle shotgun in CTS mode? we're removing it.. so....
else if (g_nexball)
d = 0; // weapon is set a few lines later
else
- d = (i == WEP_LASER || i == WEP_SHOTGUN);
+ d = (i == WEP_LASER || i == WEP_SHOCKWAVE);
if(g_grappling_hook) // if possible, redirect off-hand hook to on-hand hook
d |= (i == WEP_HOOK);
float fireBallisticBullet_trace_callback_eff;
void fireBallisticBullet_trace_callback(vector start, vector hit, vector end);
-void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, float lifetime, float damage, float force, float dtype, float tracereffects, float gravityfactor, float bulletconstant);
+void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, float lifetime, float damage, float force, float dtype, float tracereffects, float bulletconstant);
void fireBullet (vector start, vector dir, float spread, float damage, float force, float dtype, float tracer);
if((fr == WFRAME_FIRE1 || fr == WFRAME_FIRE2) && t)
{
- if(self.weapon == WEP_SHOTGUN && fr == WFRAME_FIRE2)
+ if(self.weapon == WEP_SHOCKWAVE && fr == WFRAME_FIRE2)
animdecide_setaction(self, ANIMACTION_MELEE, restartanim);
else
animdecide_setaction(self, ANIMACTION_SHOOT, restartanim);