]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into Mario/nade_drop
authorMario <mario.mario@y7mail.com>
Sun, 24 Nov 2013 04:13:06 +0000 (15:13 +1100)
committerMario <mario.mario@y7mail.com>
Sun, 24 Nov 2013 04:13:06 +0000 (15:13 +1100)
1  2 
qcsrc/server/mutators/mutator_nades.qc

index 025c481990819913c89d7a80215d6254097aac1a,5ab6df75dc720e2d6b385ed665d1cf0ccf9fcfc3..2fad6022673c855e4fae529dfe8dc6158bba0954
@@@ -4,13 -4,13 +4,13 @@@ void nade_timer_think(
        self.nextthink = time;
        if(!self.owner || wasfreed(self.owner))
                remove(self);
-       
  }
  
  void nade_burn_spawn(entity _nade)
  {
        float p;
-       
        switch(_nade.realowner.team)
        {
                case NUM_TEAM_1: p = PROJECTILE_NADE_RED_BURN; break;
@@@ -19,7 -19,7 +19,7 @@@
                case NUM_TEAM_4: p = PROJECTILE_NADE_PINK_BURN; break;
                default:                 p = PROJECTILE_NADE_BURN; break;
        }
-       
        CSQCProjectile(_nade, TRUE, p, TRUE);
  }
  
@@@ -35,9 -35,9 +35,9 @@@ void nade_spawn(entity _nade
        timer.think = nade_timer_think;
        timer.nextthink = time;
        timer.wait = _nade.wait;
-       timer.owner = _nade;    
+       timer.owner = _nade;
        timer.skin = 10;
-       
        switch(_nade.realowner.team)
        {
                case NUM_TEAM_1: p = PROJECTILE_NADE_RED; break;
                case NUM_TEAM_4: p = PROJECTILE_NADE_PINK; break;
                default:                 p = PROJECTILE_NADE; break;
        }
-       
        CSQCProjectile(_nade, TRUE, p, TRUE);
-       
  }
  
  void nade_boom()
  {
        string expef;
-       
        switch(self.realowner.team)
        {
                case NUM_TEAM_1: expef = "nade_red_explode"; break;
                case NUM_TEAM_4: expef = "nade_pink_explode"; break;
                default:                 expef = "nade_explode"; break;
        }
-       
        sound(self, CH_SHOTS_SINGLE, "misc/null.wav", VOL_BASE, ATTEN_NORM);
        sound(self, CH_SHOTS, "weapons/rocket_impact.wav", VOL_BASE, ATTEN_NORM);
        pointparticles(particleeffectnum(expef), self.origin + '0 0 1', '0 0 0', 1);
-       
        Damage_DamageInfo(self.origin, autocvar_g_nades_nade_damage, autocvar_g_nades_nade_edgedamage, autocvar_g_nades_nade_radius, '1 1 1' * autocvar_g_nades_nade_force, self.projectiledeathtype, 0, self);
  
        self.takedamage = DAMAGE_NO;
@@@ -115,13 -115,13 +115,13 @@@ void nade_damage(entity inflictor, enti
  
        if(DEATH_ISWEAPON(deathtype, WEP_SHOTGUN) && !(deathtype & HITTYPE_SECONDARY))
                damage = self.max_health * 1.1;
-               
        if(DEATH_ISWEAPON(deathtype, WEP_SHOTGUN) && (deathtype & HITTYPE_SECONDARY))
        {
                damage = self.max_health * 0.1;
                force *= 15;
        }
-       
        self.velocity += force;
  
        if(!damage || (self.flags & FL_ONGROUND && IS_PLAYER(attacker)))
@@@ -147,16 -147,16 +147,16 @@@ void toss_nade(entity e, vector _veloci
  {
        entity _nade = e.nade;
        e.nade = world;
-       
        remove(e.fake_nade);
        e.fake_nade = world;
-       
        makevectors(e.v_angle);
-       
        W_SetupShot(e, FALSE, FALSE, "", CH_WEAPON_A, 0);
-       
        Kill_Notification(NOTIF_ONE_ONLY, e, MSG_CENTER_CPID, CPID_NADES);
-       
        //setorigin(_nade, CENTER_OR_VIEWOFS(e) + (v_right * 10) * -1);
        setorigin(_nade, w_shotorg + (v_right * 25) * -1);
        setmodel(_nade, "models/weapons/v_ok_grenade.md3");
        PROJECTILE_MAKETRIGGER(_nade);
        setsize(_nade, '-16 -16 -16', '16 16 16');
        _nade.movetype = MOVETYPE_BOUNCE;
-       
        tracebox(_nade.origin, _nade.mins, _nade.maxs, _nade.origin, FALSE, _nade);
        if (trace_startsolid)
                setorigin(_nade, e.origin);
-       
 -      if(e.crouch)
 -              _nade.velocity = '0 0 -10';
 +      if(self.v_angle_x >= 70 && self.v_angle_x <= 110)
 +              _nade.velocity = '0 0 100';
        else if(autocvar_g_nades_nade_newton_style == 1)
                _nade.velocity = e.velocity + _velocity;
        else if(autocvar_g_nades_nade_newton_style == 2)
                _nade.velocity = _velocity;
        else
                _nade.velocity = W_CalculateProjectileVelocity(e.velocity, _velocity, TRUE);
 -
 -      //_nade.solid = SOLID_BBOX; // TODO: remember why this was needed
 +              
        _nade.touch = nade_touch;
        _nade.health = autocvar_g_nades_nade_health;
        _nade.max_health = _nade.health;
@@@ -206,10 -207,10 +206,10 @@@ void nade_prime(
  {
        if(self.nade)
                remove(self.nade);
-               
        if(self.fake_nade)
                remove(self.fake_nade);
-       
        self.nade = spawn();
        setmodel(self.nade, "null");
        setattachment(self.nade, self, "bip01 l hand");
@@@ -239,22 -240,22 +239,22 @@@ float CanThrowNade(
  {
        if(self.vehicle)
                return FALSE;
-               
        if(gameover)
                return FALSE;
-               
        if(self.deadflag != DEAD_NO)
                return FALSE;
-       
-       if not(autocvar_g_nades)
+       if (!autocvar_g_nades)
                return FALSE; // allow turning them off mid match
-               
        if(forbidWeaponUse())
                return FALSE;
-               
-       if not(IS_PLAYER(self))
+       if (!IS_PLAYER(self))
                return FALSE;
-               
        return TRUE;
  }
  
@@@ -262,7 -263,7 +262,7 @@@ void nades_CheckThrow(
  {
        if(!CanThrowNade())
                return;
-               
        if(!self.nade)
        {
                if(self.nade_refire < time)
@@@ -289,18 -290,18 +289,18 @@@ MUTATOR_HOOKFUNCTION(nades_VehicleEnter
  {
        if(other.nade)
                toss_nade(other, '0 0 100', max(other.nade.wait, time + 0.05));
-       
        return FALSE;
  }
  
  MUTATOR_HOOKFUNCTION(nades_PlayerPreThink)
  {
        float key_pressed = ((g_grappling_hook || client_hasweapon(self, WEP_HOOK, FALSE, FALSE) || (weaponsInMap & WEPSET_HOOK)) ? self.button16 : self.BUTTON_HOOK);
-       
        if(self.nade)
                if(self.nade.wait - 0.1 <= time)
                        toss_nade(self, '0 0 0', time + 0.05);
-                       
        if(CanThrowNade())
        if(self.nade_refire < time)
        {
                                makevectors(self.v_angle);
                                float _force = time - self.nade.lifetime;
                                _force /= autocvar_g_nades_nade_lifetime;
-                               _force = autocvar_g_nades_nade_minforce + (_force * (autocvar_g_nades_nade_maxforce - autocvar_g_nades_nade_minforce));                         
+                               _force = autocvar_g_nades_nade_minforce + (_force * (autocvar_g_nades_nade_maxforce - autocvar_g_nades_nade_minforce));
                                toss_nade(self, (v_forward * 0.7 + v_up * 0.2 + v_right * 0.1) * _force, 0);
                        }
                }
@@@ -339,7 -340,7 +339,7 @@@ MUTATOR_HOOKFUNCTION(nades_PlayerDies
  {
        if(self.nade)
                toss_nade(self, '0 0 100', max(self.nade.wait, time + 0.05));
-               
        return FALSE;
  }
  
@@@ -350,7 -351,7 +350,7 @@@ MUTATOR_HOOKFUNCTION(nades_RemovePlayer
  
        if(self.fake_nade)
                remove(self.fake_nade);
-               
        return FALSE;
  }
  
@@@ -376,11 -377,11 +376,11 @@@ MUTATOR_DEFINITION(mutator_nades
        MUTATOR_HOOK(ClientDisconnect, nades_RemovePlayer, CBC_ORDER_ANY);
        MUTATOR_HOOK(BuildMutatorsString, nades_BuildMutatorsString, CBC_ORDER_ANY);
        MUTATOR_HOOK(BuildMutatorsPrettyString, nades_BuildMutatorsPrettyString, CBC_ORDER_ANY);
-       
        MUTATOR_ONADD
        {
                precache_model("models/ok_nade_counter/ok_nade_counter.md3");
-               
                precache_model("models/weapons/h_ok_grenade.iqm");
                precache_model("models/weapons/v_ok_grenade.md3");
                precache_sound("weapons/rocket_impact.wav");