#ifdef REGISTER_WEAPON
REGISTER_WEAPON(
-/* WEP_##id */ ELECTRO,
-/* function */ W_Electro,
-/* ammotype */ ammo_cells,
-/* impulse */ 5,
-/* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH,
-/* rating */ BOT_PICKUP_RATING_MID,
-/* color */ '0 0.5 1',
-/* model */ "electro",
-/* netname */ "electro",
-/* fullname */ _("Electro")
+/* WEP_##id */ ELECTRO,
+/* function */ W_Electro,
+/* ammotype */ ammo_cells,
+/* impulse */ 5,
+/* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH,
+/* rating */ BOT_PICKUP_RATING_MID,
+/* color */ '0 0.5 1',
+/* modelname */ "electro",
+/* simplemdl */ "foobar",
+/* crosshair */ "gfx/crosshairelectro 0.5",
+/* wepimg */ "weaponelectro",
+/* refname */ "electro",
+/* wepname */ _("Electro")
);
#define ELECTRO_SETTINGS(w_cvar,w_prop) ELECTRO_SETTINGS_LIST(w_cvar, w_prop, ELECTRO, electro)
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)
+ w_prop(id, sn, float, weaponstartoverride, weaponstartoverride) \
+ w_prop(id, sn, float, weaponthrowable, weaponthrowable)
#ifdef SVQC
ELECTRO_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP)
#endif
#else
#ifdef SVQC
-void spawnfunc_weapon_electro() { weapon_defaultspawnfunc(WEP_ELECTRO); }
+void spawnfunc_weapon_electro(void) { weapon_defaultspawnfunc(WEP_ELECTRO); }
void W_Electro_TriggerCombo(vector org, float rad, entity own)
{
W_Electro_Explode();
}
-void W_Electro_Bolt_Think()
+void W_Electro_Bolt_Think(void)
{
if(time >= self.ltime)
{
W_DecreaseAmmo(WEP_CVAR_PRI(electro, ammo));
- W_SetupShot_ProjectileSize(self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire.wav", CH_WEAPON_A, WEP_CVAR_PRI(electro, damage));
+ W_SetupShot_ProjectileSize(
+ self,
+ '0 0 -3',
+ '0 0 -3',
+ FALSE,
+ 2,
+ "weapons/electro_fire.wav",
+ CH_WEAPON_A,
+ WEP_CVAR_PRI(electro, damage)
+ );
pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
- proj = spawn ();
+ proj = spawn();
proj.classname = "electro_bolt";
proj.owner = proj.realowner = self;
proj.bot_dodge = TRUE;
setorigin(proj, w_shotorg);
proj.movetype = MOVETYPE_FLY;
- W_SetupVelocity_PRI(proj, electro);
+ W_SetupProjVelocity_PRI(proj, electro);
proj.angles = vectoangles(proj.velocity);
proj.touch = W_Electro_TouchExplode;
setsize(proj, '0 0 -3', '0 0 -3');
{
W_DecreaseAmmo(WEP_CVAR_SEC(electro, ammo));
- W_SetupShot_ProjectileSize(self, '0 0 -4', '0 0 -4', FALSE, 2, "weapons/electro_fire2.wav", CH_WEAPON_A, WEP_CVAR_SEC(electro, damage));
+ W_SetupShot_ProjectileSize(
+ self,
+ '0 0 -4',
+ '0 0 -4',
+ FALSE,
+ 2,
+ "weapons/electro_fire2.wav",
+ CH_WEAPON_A,
+ WEP_CVAR_SEC(electro, damage)
+ );
w_shotdir = v_forward; // no TrueAim for grenades please
//proj.glow_size = 50;
//proj.glow_color = 45;
proj.movetype = MOVETYPE_BOUNCE;
- W_SetupVelocity_UP_SEC(proj, electro);
+ W_SetupProjVelocity_UP_SEC(proj, electro);
proj.touch = W_Electro_Orb_Touch;
setsize(proj, '0 0 -4', '0 0 -4');
proj.takedamage = DAMAGE_YES;
other = proj; MUTATOR_CALLHOOK(EditProjectile);
}
-void W_Electro_CheckAttack()
+void W_Electro_CheckAttack(void)
{
if(self.electro_count > 1)
if(self.BUTTON_ATCK2)
precache_sound("weapons/electro_fire2.wav");
precache_sound("weapons/electro_impact.wav");
precache_sound("weapons/electro_impact_combo.wav");
- ELECTRO_SETTINGS(WEP_SKIPCVAR, WEP_SET_PROP)
+ ELECTRO_SETTINGS(WEP_SKIP_CVAR, WEP_SET_PROP)
return TRUE;
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.AMMO_VAL(WEP_ELECTRO) >= WEP_CVAR_PRI(electro, ammo);
+ ammo_amount = self.WEP_AMMO(ELECTRO) >= WEP_CVAR_PRI(electro, ammo);
ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_PRI(electro, ammo);
return ammo_amount;
}
{
if(WEP_CVAR(electro, combo_safeammocheck)) // true if you can fire at least one secondary blob AND one primary shot after it, otherwise false.
{
- ammo_amount = self.AMMO_VAL(WEP_ELECTRO) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
+ ammo_amount = self.WEP_AMMO(ELECTRO) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
}
else
{
- ammo_amount = self.AMMO_VAL(WEP_ELECTRO) >= WEP_CVAR_SEC(electro, ammo);
+ ammo_amount = self.WEP_AMMO(ELECTRO) >= WEP_CVAR_SEC(electro, ammo);
ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_SEC(electro, ammo);
}
return ammo_amount;
}
}
}
- return TRUE;
+ return FALSE;
}
#endif
#ifdef CSQC
precache_sound("weapons/electro_impact_combo.wav");
return TRUE;
}
+ case WR_ZOOMRETICLE:
+ {
+ // no weapon specific image for this weapon
+ return FALSE;
+ }
}
- return TRUE;
+ return FALSE;
}
#endif
#endif