]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/w_devastator.qc
More descriptive stuff, better naming
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / w_devastator.qc
index 3744ff81a877f3c592b4cc1eb3e6b77fa6918a3f..ac2ec9cfed6ee72df9a7b8996be272955b1b8667 100644 (file)
@@ -1,41 +1,43 @@
 #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) \
@@ -81,7 +83,7 @@ void W_Devastator_Explode()
 
        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;
@@ -102,7 +104,7 @@ void W_Devastator_DoRemoteExplode()
 
        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;
@@ -262,7 +264,7 @@ void W_Devastator_Attack (void)
        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);
@@ -291,7 +293,7 @@ void W_Devastator_Attack (void)
        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;
@@ -403,7 +405,6 @@ float W_Devastator(float req)
                }
                case WR_SETUP:
                {
-                       self.current_ammo = ammo_rockets;
                        self.rl_release = 1;
                        return TRUE;
                }
@@ -415,10 +416,10 @@ float W_Devastator(float req)
                                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;
                        }
@@ -479,6 +480,11 @@ float W_Devastator(float req)
                        precache_sound("weapons/rocket_impact.wav");
                        return TRUE;
                }
+               case WR_ZOOMRETICLE:
+               {
+                       // no weapon specific image for this weapon
+                       return FALSE;
+               }
        }
        return TRUE;
 }