]> icculus.org git repositories - divverent/nexuiz.git/blob - TeamNexuiz/game/gamec/cl_impulse.c
- Fixed item_backpack
[divverent/nexuiz.git] / TeamNexuiz / game / gamec / cl_impulse.c
1 void CopyBody(float keepvelocity);\r
2 void () DropFlag;\r
3 \r
4 // changes by LordHavoc on 03/30/04\r
5 // cleaned up dummy code\r
6 // dummies are now removed eventually after being gibbed (norespawn = TRUE)\r
7 // dummy impulse now checks sv_cheats to prevent players from overwhelming server with dummies\r
8 // dummies now use player code where possible\r
9 \r
10 void player_anim (void);\r
11 void DummyThink(void)\r
12 {\r
13         self.think = DummyThink;\r
14         self.nextthink = time;\r
15         SV_PlayerPhysics();\r
16         PlayerPreThink();\r
17         //player_anim();\r
18         PlayerPostThink();\r
19 }\r
20 \r
21 void CopyBody2(float keepvelocity, float testbody);\r
22 void ImpulseCommands (void)\r
23 {\r
24         local float swpn;       // returns self.weapon amount -- the slot that weapon is in (WEP1, WEP2 etc)\r
25         local float awpn;       // returns self.wpn amount (WEP_PISTOL, WEP_NEX etc.)\r
26 \r
27         if (self.impulse_wait > time)   // So the GUI menus doesnt flicker\r
28                 return;\r
29 \r
30         if (self.playerclass < 1)               // Bring up menu if no team/class\r
31         {\r
32                 if (self.team_no < 1)\r
33                 {\r
34                         stuffcmd(self, "set scmenu_directmenu TeamSelect; togglemenu\n");\r
35                 }\r
36                 else \r
37                 {\r
38                         stuffcmd(self, "set scmenu_directmenu ClassSelect; togglemenu\n");\r
39                 }\r
40                 self.impulse = 0;\r
41                 self.impulse_wait = time + .5;  \r
42                 return;\r
43         }\r
44         if (self.impulse == DROP_FLAG_IMPULSE)\r
45         {\r
46                 DropFlag();\r
47         }\r
48 \r
49         if (self.impulse == 71)\r
50         {\r
51                 local string whee;\r
52                 whee = ftos (self.maxammo_rockets);\r
53                 sprint(self, whee);\r
54                 sprint(self, "\n");\r
55         }\r
56 \r
57         if (self.impulse == 73)\r
58         {\r
59                 stuffcmd(self, "cmd changeclass\n");\r
60                 self.impulse = 0;\r
61                 return;\r
62         }\r
63         if (self.impulse == 70) {               // reload impulse\r
64                 swpn = self.weapon;\r
65                 awpn = self.wpn;\r
66 \r
67                         if (awpn == WEP_PISTOL)\r
68                                 DoReload (1, (CLIP_MAX_PISTOL - self.clip_pistol));\r
69 \r
70                         if(self.class == CLASS_SOLDIER)\r
71                         {\r
72                                 if (swpn == WEP4)\r
73                                         DoReload (3, (CLIP_MAX_ROCKETS - self.clip_rockets));   // weapon type 3 is RL, and reload X rockets.\r
74                         }\r
75                         else if(self.class == CLASS_PYRO)\r
76                         {\r
77                                 if (swpn == WEP1)\r
78                                         DoReload (4, (CLIP_MAX_PIPEGRENADES - self.clip_pipegrenades));\r
79                         }\r
80                         else if(self.class == CLASS_SCOUT || self.class == CLASS_ENGINEER)\r
81                         {\r
82                                 if (swpn == WEP4)\r
83                                         DoReload (2, (CLIP_MAX_CRYLINK - self.clip_crylink));\r
84                         }\r
85         }\r
86         if (self.impulse == 68) {\r
87                         local entity barrel;\r
88                         barrel = spawn();\r
89                         barrel.mdl = "models/sentry/turr1_barrel.md3";\r
90                         barrel.yaw_speed = 10;\r
91                         setmodel(barrel, barrel.mdl);\r
92                         setorigin(barrel, self.origin + '8 0 8');\r
93                         barrel.angles_y = barrel.angles_y;\r
94 \r
95                         local entity barrel2;\r
96                         barrel2 = spawn();\r
97                         barrel2.mdl = "models/sentry/turr1_barrel.md3";\r
98                         barrel2.yaw_speed = 10;\r
99                         barrel2.angles_y = barrel2.angles_z + 90;\r
100                         setmodel(barrel2, barrel.mdl);\r
101                         setorigin(barrel2, '0 0 0');\r
102 \r
103                         setattachment(barrel2, barrel, "tag_barrel_bullet1");\r
104                         \r
105                         local float barrel_tag;\r
106                         local vector fire_from;\r
107                         barrel_tag = gettagindex (barrel2, "tag_barrel_bullet1");\r
108                         fire_from = gettaginfo (barrel2, barrel_tag);\r
109                         bprint(vtos(fire_from));\r
110                         bprint("\n");\r
111 \r
112                         local entity e;\r
113                         e = spawn();\r
114                         e.scale = 4;\r
115                         setmodel(e, "models/plasmatrail.mdl");\r
116                         setorigin (e, fire_from);\r
117                         bprint(vtos(e.origin));\r
118                         bprint("\n");\r
119 \r
120         }\r
121         if (self.impulse == 67) {\r
122                 TeamFortress_Build (6);\r
123                 //self.current_menu = 18;\r
124         }\r
125         if (self.impulse == 69) {\r
126 /*              local entity isneardoor;\r
127                 local string st;\r
128                 isneardoor = findradius (self.origin, 200);\r
129                 while (isneardoor)\r
130                 {\r
131                         if ((isneardoor.classname == "door"))\r
132                         {\r
133 //                              st = stos(isneardoor.model);\r
134                                 sprint (self, isneardoor.model);\r
135                                 sprint (self, "\n");\r
136                                 dremove(newmis);\r
137                                 return;\r
138                         }\r
139                         isneardoor = isneardoor.chain;\r
140                 }*/\r
141                 TeamFortress_Build (2);\r
142         }\r
143         if (self.impulse == 8) {\r
144         TeamFortress_ThrowGrenade(); }\r
145         if ((self.impulse == 150))              // GREN TYPE 1\r
146         {\r
147                 TeamFortress_PrimeGrenade();\r
148         }\r
149         if ((self.impulse == 151))              // GREN TYPE 2\r
150         {\r
151                 TeamFortress_PrimeGrenade();\r
152         }\r
153         if ((self.impulse == 152))\r
154         {\r
155                 TeamFortress_ThrowGrenade();\r
156         }\r
157 \r
158         if (self.impulse == FEIGN_IMPULSE)\r
159         {\r
160                 TeamNexuiz_Feign();\r
161         }\r
162         if (self.impulse == 153)\r
163                 TeamNexuiz_HUD_ShowGrenadeOne();\r
164         if (self.impulse >= 1 && self.impulse <= 5)\r
165         {\r
166                 if(self.buttonuse)\r
167                 {\r
168                         if(self.impulse == 5 && self.wpn5.weapon)\r
169                         {\r
170                                 weapon_action(self.weapon, WR_DROP);\r
171                                 SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.wpn5.weapon);\r
172                                 self.weapon = 0;\r
173                                 ResetExtraWeapon();\r
174                                 self.switchweapon = w_getbestweapon(self);\r
175                                 if(self.switchweapon == WEP5)\r
176                                         self.switchweapon = WEP1;\r
177                         }\r
178                 }\r
179                 else if (self.reload_time < time) { \r
180                                 W_SwitchWeapon (self.impulse); }\r
181         }\r
182         else if (self.impulse == 10) {\r
183                 if (self.reload_time < time) { \r
184                         W_NextWeapon (); }\r
185         }\r
186         else if (self.impulse == 12) {\r
187                 if (self.reload_time < time) { \r
188                         W_PreviousWeapon (); }\r
189         }\r
190                 \r
191         if (self.impulse == 13 && cvar("sv_cheats"))\r
192         {\r
193                 makevectors (self.v_angle);\r
194                 self.velocity = self.velocity + v_forward * 300;\r
195                 CopyBody2(1, TRUE);\r
196                 self.velocity = self.velocity - v_forward * 300;\r
197         }\r
198         else if (self.impulse == 14 && cvar("sv_cheats"))\r
199                 CopyBody2(0, TRUE);\r
200         else if (self.impulse == 99 && cvar("sv_cheats"))\r
201         {\r
202                 self.items = IT_WEP1 | IT_WEP2 | IT_WEP3 | IT_WEP4 | IT_WEP5;\r
203                 self.ammo_shells = 999;\r
204                 self.ammo_nails = 999;\r
205                 self.ammo_rockets = 999;\r
206                 self.ammo_cells = 999;\r
207         }\r
208 \r
209         if(self.impulse == 20)\r
210         {\r
211                 ClassSpecial();\r
212         }\r
213 \r
214         if(self.impulse == 30)\r
215         {\r
216                 ClassGrenade(WR_GRENADE1);\r
217         }\r
218         if(self.impulse == 31)\r
219         {\r
220                 ClassGrenade(WR_GRENADE2);\r
221         }\r
222         if (self.impulse == TELL_POSITION_IMPULSE)\r
223         {\r
224                 sprint(self,vtos(self.origin));\r
225                 sprint(self, "\n");\r
226         }\r
227 \r
228         // model/class test\r
229         if(self.impulse == 57)\r
230         {\r
231                 //self.class = GetPlayerClass();\r
232                 sprint(self, "Current class: ");\r
233                 sprint(self, NameOfClass(self.class));\r
234                 sprint(self, ", model: ");\r
235                 sprint(self, self.playermodel);\r
236                 sprint(self, "\n");\r
237         }\r
238         if(self.impulse == 211)         // XavioR test impulse\r
239         {\r
240                 local string woottest;\r
241                 woottest = ftos(self.team_no);\r
242                 sprint (self, woottest);\r
243                 sprint (self, "\n");\r
244         }\r
245         //TetrisImpulses();\r
246         self.impulse = 0;\r
247 }