]> icculus.org git repositories - divverent/nexuiz.git/blob - qcsrc/impulse.qc
*** empty log message ***
[divverent/nexuiz.git] / qcsrc / impulse.qc
1
2 void dummyhurt (vector hitloc, float damage)
3 {
4         te_blood (hitloc, '0 0 20', floor (damage / 2));
5 }
6
7 void dummydie (vector hitloc, float damage)
8 {
9         vector  vel;
10         
11         te_bloodshower (self.origin + self.mins, self.origin + self.maxs, 600, 500);
12         
13         vel = normalize (self.origin - hitloc) * damage * 4;    // blow gibs away from impact point
14         if (vel_z > 0)
15                 vel_z = vel_z * 2;      // more vertical
16         Gib (vel);
17         
18         remove (self);
19 }
20
21 void CreateDummy (vector org)
22 {
23         entity  dummy;
24         
25         dummy = spawn ();
26         dummy.solid = SOLID_SLIDEBOX;
27         dummy.movetype = MOVETYPE_FLY;
28         dummy.classname = "corpse";
29         dummy.takedamage = DAMAGE_YES;
30         dummy.health = 100;
31         setsize (dummy, PL_MIN, PL_MAX);
32         setorigin (dummy, org);
33         setmodel (dummy, "models/player/player.zym");
34         
35         dummy.event_hurt = dummyhurt;
36         dummy.event_die = dummydie;
37 }
38
39 void ImpulseCommands (void)
40 {
41         if (self.impulse >= 1 && self.impulse <= 9)
42                 W_SwitchWeapon (self.impulse);
43                 
44         else if (self.impulse == 10)
45                 W_NextWeapon ();
46         else if (self.impulse == 12)
47                 W_PreviousWeapon ();
48         else if (self.impulse == 13)
49         {
50                 makevectors (self.v_angle);
51                 CreateDummy (self.origin + self.view_ofs + v_forward * 64);
52         }
53                 
54         self.impulse = 0;
55 }