]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/w_hook.qc
Tabs to spaces (to make merging a little less painful)
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / w_hook.qc
index 695ac381fe55afcaeb750f2890e313addb6ef915..923083387faf12a0ce8846a8ebf33256ddd05d4c 100644 (file)
@@ -1,5 +1,15 @@
 #ifdef REGISTER_WEAPON
-REGISTER_WEAPON(HOOK, w_hook, IT_CELLS|IT_FUEL, 0, WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, 0, "hookgun", "hook", _("Grappling Hook"))
+REGISTER_WEAPON(
+/* WEP_##id  */ HOOK,
+/* function  */ w_hook,
+/* ammotype  */ IT_CELLS|IT_FUEL,
+/* impulse   */ 0,
+/* flags     */ WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH,
+/* rating    */ 0,
+/* model     */ "hookgun",
+/* shortname */ "hook",
+/* fullname  */ _("Grappling Hook")
+);
 #else
 #ifdef SVQC
 .float dmg;
@@ -35,8 +45,8 @@ void W_Hook_ExplodeThink (void)
 
 void W_Hook_Explode2 (void)
 {
-       self.event_damage = SUB_Null;
-       self.touch = SUB_Null;
+       self.event_damage = func_null;
+       self.touch = func_null;
        self.effects |= EF_NODRAW;
 
        self.think = W_Hook_ExplodeThink;
@@ -100,6 +110,7 @@ void W_Hook_Attack2()
        gren.damageforcescale = autocvar_g_balance_hook_secondary_damageforcescale;
        gren.event_damage = W_Hook_Damage;
        gren.damagedbycontents = TRUE;
+       gren.missile_flags = MIF_SPLASH | MIF_ARC;
 
        gren.velocity = '0 0 1' * autocvar_g_balance_hook_secondary_speed;
        if(autocvar_g_projectiles_newton_style)
@@ -210,16 +221,16 @@ float w_hook(float req)
 
                if (self.BUTTON_CROUCH)
                {
-                       self.hook_state &~= HOOK_PULLING;
+                       self.hook_state &= ~HOOK_PULLING;
                        if (self.BUTTON_ATCK || (!(self.items & IT_JETPACK) && self.BUTTON_HOOK))
-                               self.hook_state &~= HOOK_RELEASING;
+                               self.hook_state &= ~HOOK_RELEASING;
                        else
                                self.hook_state |= HOOK_RELEASING;
                }
                else
                {
                        self.hook_state |= HOOK_PULLING;
-                       self.hook_state &~= HOOK_RELEASING;
+                       self.hook_state &= ~HOOK_RELEASING;
 
                        if (self.BUTTON_ATCK || (!(self.items & IT_JETPACK) && self.BUTTON_HOOK))
                        {
@@ -230,7 +241,7 @@ float w_hook(float req)
                        else
                        {
                                self.hook_state |= HOOK_REMOVING;
-                               self.hook_state &~= HOOK_WAITING_FOR_RELEASE;
+                               self.hook_state &= ~HOOK_WAITING_FOR_RELEASE;
                        }
                }
        }
@@ -247,7 +258,7 @@ float w_hook(float req)
        {
                weapon_setup(WEP_HOOK);
                self.current_ammo = ammo_fuel;
-               self.hook_state &~= HOOK_WAITING_FOR_RELEASE;
+               self.hook_state &= ~HOOK_WAITING_FOR_RELEASE;
        }
        else if (req == WR_CHECKAMMO1)
        {
@@ -264,6 +275,14 @@ float w_hook(float req)
        {
                self.hook_refire = time;
        }
+       else if (req == WR_SUICIDEMESSAGE)
+       {
+               return FALSE;
+       }
+       else if (req == WR_KILLMESSAGE)
+       {
+               return WEAPON_HOOK_MURDER;
+       }
        return TRUE;
 }
 #endif
@@ -276,16 +295,12 @@ float w_hook(float req)
                org2 = w_org + w_backoff * 2;
                pointparticles(particleeffectnum("hookbomb_explode"), org2, '0 0 0', 1);
                if(!w_issilent)
-                       sound(self, CH_SHOTS, "weapons/hookbomb_impact.wav", VOL_BASE, ATTN_NORM);
+                       sound(self, CH_SHOTS, "weapons/hookbomb_impact.wav", VOL_BASE, ATTEN_NORM);
        }
        else if(req == WR_PRECACHE)
        {
                precache_sound("weapons/hookbomb_impact.wav");
        }
-       else if (req == WR_SUICIDEMESSAGE)
-               w_deathtypestring = _("%s did the impossible");
-       else if (req == WR_KILLMESSAGE)
-               w_deathtypestring = _("%s was caught in %s's hook gravity bomb");
        return TRUE;
 }
 #endif