#ifdef REGISTER_WEAPON
REGISTER_WEAPON(
-/* WEP_##id */ DEVASTATOR,
-/* function */ W_Devastator,
-/* ammotype */ ammo_rockets,
-/* impulse */ 9,
-/* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH,
-/* rating */ BOT_PICKUP_RATING_HIGH,
-/* model */ "rl",
-/* netname */ "devastator",
-/* fullname */ _("Devastator")
+/* WEP_##id */ DEVASTATOR,
+/* function */ W_Devastator,
+/* ammotype */ ammo_rockets,
+/* impulse */ 9,
+/* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH,
+/* rating */ BOT_PICKUP_RATING_HIGH,
+/* color */ '1 1 0',
+/* model */ "rl",
+/* crosshair */ "gfx/crosshairrocketlauncher 0.5875",
+/* refname */ "devastator",
+/* wepname */ _("Devastator")
);
#define DEVASTATOR_SETTINGS(w_cvar,w_prop) DEVASTATOR_SETTINGS_LIST(w_cvar, w_prop, DEVASTATOR, devastator)
#define DEVASTATOR_SETTINGS_LIST(w_cvar,w_prop,id,sn) \
- w_cvar(id, sn, MO_NONE, ammo) \
- w_cvar(id, sn, MO_NONE, animtime) \
- w_cvar(id, sn, MO_NONE, damage) \
- w_cvar(id, sn, MO_NONE, damageforcescale) \
- w_cvar(id, sn, MO_NONE, detonatedelay) \
- w_cvar(id, sn, MO_NONE, edgedamage) \
- w_cvar(id, sn, MO_NONE, force) \
- w_cvar(id, sn, MO_NONE, guidedelay) \
- w_cvar(id, sn, MO_NONE, guidegoal) \
- w_cvar(id, sn, MO_NONE, guiderate) \
- w_cvar(id, sn, MO_NONE, guideratedelay) \
- w_cvar(id, sn, MO_NONE, guidestop) \
- w_cvar(id, sn, MO_NONE, health) \
- w_cvar(id, sn, MO_NONE, lifetime) \
- w_cvar(id, sn, MO_NONE, radius) \
- w_cvar(id, sn, MO_NONE, refire) \
- w_cvar(id, sn, MO_NONE, remote_damage) \
- w_cvar(id, sn, MO_NONE, remote_edgedamage) \
- w_cvar(id, sn, MO_NONE, remote_force) \
- w_cvar(id, sn, MO_NONE, remote_radius) \
- w_cvar(id, sn, MO_NONE, speed) \
- w_cvar(id, sn, MO_NONE, speedaccel) \
- w_cvar(id, sn, MO_NONE, speedstart) \
+ w_cvar(id, sn, NONE, ammo) \
+ w_cvar(id, sn, NONE, animtime) \
+ w_cvar(id, sn, NONE, damage) \
+ w_cvar(id, sn, NONE, damageforcescale) \
+ w_cvar(id, sn, NONE, detonatedelay) \
+ w_cvar(id, sn, NONE, edgedamage) \
+ w_cvar(id, sn, NONE, force) \
+ w_cvar(id, sn, NONE, guidedelay) \
+ w_cvar(id, sn, NONE, guidegoal) \
+ w_cvar(id, sn, NONE, guiderate) \
+ w_cvar(id, sn, NONE, guideratedelay) \
+ w_cvar(id, sn, NONE, guidestop) \
+ w_cvar(id, sn, NONE, health) \
+ w_cvar(id, sn, NONE, lifetime) \
+ w_cvar(id, sn, NONE, radius) \
+ w_cvar(id, sn, NONE, refire) \
+ w_cvar(id, sn, NONE, remote_damage) \
+ w_cvar(id, sn, NONE, remote_edgedamage) \
+ w_cvar(id, sn, NONE, remote_force) \
+ w_cvar(id, sn, NONE, remote_radius) \
+ w_cvar(id, sn, NONE, speed) \
+ w_cvar(id, sn, NONE, speedaccel) \
+ w_cvar(id, sn, NONE, speedstart) \
w_prop(id, sn, float, reloading_ammo, reload_ammo) \
w_prop(id, sn, float, reloading_time, reload_time) \
w_prop(id, sn, float, switchdelay_raise, switchdelay_raise) \
if (self.realowner.weapon == WEP_DEVASTATOR)
{
- if(self.realowner.ammo_rockets < WEP_CVAR(devastator, ammo))
+ if(self.realowner.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo))
{
self.realowner.cnt = WEP_DEVASTATOR;
ATTACK_FINISHED(self.realowner) = time;
if (self.realowner.weapon == WEP_DEVASTATOR)
{
- if(self.realowner.ammo_rockets < WEP_CVAR(devastator, ammo))
+ if(self.realowner.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo))
{
self.realowner.cnt = WEP_DEVASTATOR;
ATTACK_FINISHED(self.realowner) = time;
entity missile;
entity flash;
- W_DecreaseAmmo(ammo_rockets, WEP_CVAR(devastator, ammo), WEP_CVAR(devastator, reload_ammo));
+ W_DecreaseAmmo(WEP_CVAR(devastator, ammo));
W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav", CH_WEAPON_A, WEP_CVAR(devastator, damage));
pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
setsize (missile, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
setorigin (missile, w_shotorg - v_forward * 3); // move it back so it hits the wall at the right point
- W_SetupProjectileVelocity(missile, WEP_CVAR(devastator, speedstart), 0);
+ W_SetupProjVelocity_Basic(missile, WEP_CVAR(devastator, speedstart), 0);
missile.angles = vectoangles (missile.velocity);
missile.touch = W_Devastator_Touch;
}
case WR_SETUP:
{
- self.current_ammo = ammo_rockets;
self.rl_release = 1;
return TRUE;
}
ammo_amount = FALSE;
if(WEP_CVAR(devastator, reload_ammo))
{
- if(self.ammo_rockets < WEP_CVAR(devastator, ammo) && self.(weapon_load[WEP_DEVASTATOR]) < WEP_CVAR(devastator, ammo))
+ if(self.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo) && self.(weapon_load[WEP_DEVASTATOR]) < WEP_CVAR(devastator, ammo))
ammo_amount = TRUE;
}
- else if(self.ammo_rockets < WEP_CVAR(devastator, ammo))
+ else if(self.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo))
ammo_amount = TRUE;
return !ammo_amount;
}
precache_sound("weapons/rocket_impact.wav");
return TRUE;
}
+ case WR_ZOOMRETICLE:
+ {
+ // no weapon specific image for this weapon
+ return FALSE;
+ }
}
return TRUE;
}