Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
impulse.qc File Reference
Include dependency graph for impulse.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _IMPULSE(id)
#define IMPULSE(id)
#define X(i)
#define X(i)
#define X(i, dir)
#define X(id)

Functions

 for (int slot=0;slot< MAX_WEAPONSLOTS;++slot)
 if (IS_DEAD(this))
 IMPULSE (use)
 IMPULSE (waypoint_clear)
 IMPULSE (waypoint_clear_personal)
 IMPULSE (waypoint_danger_crosshair)
 IMPULSE (waypoint_danger_death)
 IMPULSE (waypoint_danger_here)
 IMPULSE (waypoint_here_crosshair)
 IMPULSE (waypoint_here_death)
 IMPULSE (waypoint_here_follow)
 IMPULSE (waypoint_here_here)
 IMPULSE (waypoint_personal_crosshair)
 IMPULSE (waypoint_personal_death)
 IMPULSE (waypoint_personal_here)
 IMPULSE (weapon_best)
 IMPULSE (weapon_drop)
 IMPULSE (weapon_last)
 IMPULSE (weapon_next_bygroup)
 IMPULSE (weapon_next_bypriority)
 IMPULSE (weapon_prev_bygroup)
 IMPULSE (weapon_prev_byid)
 IMPULSE (weapon_prev_bypriority)
 IMPULSE (weapon_reload)
void ImpulseCommands (entity this)
prev prev prev prev prev best best best best best next next next next next void weapon_byid_handle (entity this, int number, int imp)
void weapon_group_handle (entity this, int number, int imp)
 Impulse map:
 X (0) X(1) X(2) X(3) X(4) X(5) X(6) X(7) X(8) X(9) X(10) X(11) X(12) X(13) X(14) X(15) X(16) X(17) X(18) X(19) X(20) X(21) X(22) X(23) IMPULSE(weapon_next_byid)
prev prev prev prev prev X (0, best) X(1
prev prev prev prev prev best best best best best X (0, next) X(1
 X (0, prev) X(1
 X (1) X(2) X(3) X(4) X(5) X(6) X(7) X(8) X(9) X(0) void weapon_priority_handle(entity this
prev prev prev prev prev best X (2, best) X(3
prev prev prev prev prev best best best best best next X (2, next) X(3
prev X (2, prev) X(3
prev prev prev prev prev best best X (4, best) X(5
prev prev prev prev prev best best best best best next next X (4, next) X(5
prev prev X (4, prev) X(5
prev prev prev prev prev best best best X (6, best) X(7
prev prev prev prev prev best best best best best next next next X (6, next) X(7
prev prev prev X (6, prev) X(7
prev prev prev prev prev best best best best X (8, best) X(9
prev prev prev prev prev best best best best best next next next next X (8, next) X(9
prev prev prev prev X (8, prev) X(9

Variables

int dir
int int int imp
int int number
entity vehicle

Macro Definition Documentation

◆ _IMPULSE

#define _IMPULSE ( id)
Value:
void id##_handle(entity this); \
STATIC_INIT_LATE(id) \
{ \
id.impulse_handle = id##_handle; \
} \
void id##_handle(entity this)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback

Definition at line 24 of file impulse.qc.

24#define _IMPULSE(id) \
25 void id##_handle(entity this); \
26 STATIC_INIT_LATE(id) \
27 { \
28 id.impulse_handle = id##_handle; \
29 } \
30 void id##_handle(entity this)

◆ IMPULSE

#define IMPULSE ( id)
Value:
_IMPULSE(IMP_##id)
#define _IMPULSE(id)
Definition impulse.qc:24

Definition at line 23 of file impulse.qc.

◆ X [1/4]

#define X ( i)
Value:
IMPULSE(weapon_group_##i) \
{ \
weapon_group_handle(this, i, IMP_weapon_group_##i.impulse); \
}
#define IMPULSE(id)
Definition impulse.qc:23

Definition at line 70 of file impulse.qc.

70#define X(i) \
71 IMPULSE(weapon_group_##i) \
72 { \
73 weapon_group_handle(this, i, IMP_weapon_group_##i.impulse); \
74 }

Referenced by ImpulseCommands().

◆ X [2/4]

#define X ( i)
Value:
IMPULSE(weapon_byid_##i) \
{ \
weapon_byid_handle(this, i, IMP_weapon_byid_##i.impulse); \
}

Definition at line 70 of file impulse.qc.

70#define X(i) \
71 IMPULSE(weapon_group_##i) \
72 { \
73 weapon_group_handle(this, i, IMP_weapon_group_##i.impulse); \
74 }

◆ X [3/4]

#define X ( i,
dir )
Value:
IMPULSE(weapon_priority_##i##_##dir) \
{ \
noref int prev = -1; \
noref int best = 0; \
noref int next = +1; \
weapon_priority_handle(this, dir, i, IMP_weapon_priority_##i##_##dir.impulse); \
}
best
Definition all.qh:82
prev
Definition all.qh:71
next
Definition all.qh:93
int dir
Definition impulse.qc:89

Definition at line 70 of file impulse.qc.

70#define X(i) \
71 IMPULSE(weapon_group_##i) \
72 { \
73 weapon_group_handle(this, i, IMP_weapon_group_##i.impulse); \
74 }

◆ X [4/4]

#define X ( id)
Value:
case IMP_##id.impulse:

Definition at line 70 of file impulse.qc.

70#define X(i) \
71 IMPULSE(weapon_group_##i) \
72 { \
73 weapon_group_handle(this, i, IMP_weapon_group_##i.impulse); \
74 }

Function Documentation

◆ for()

for ( )

Definition at line 97 of file impulse.qc.

98 {
99 .entity weaponentity = weaponentities[slot];
100 W_CycleWeapon(this, CS_CVAR(this).cvar_cl_weaponpriorities[number], dir, weaponentity);
102 break;
103 }
void W_CycleWeapon(entity this, string weaponorder, float dir,.entity weaponentity)
Definition selection.qc:305
bool autocvar_g_weaponswitch_debug
Definition selection.qh:7
int int number
Definition impulse.qc:89
#define CS_CVAR(this)
Definition state.qh:51
entity weaponentities[MAX_WEAPONSLOTS]
Definition weapon.qh:17

References autocvar_g_weaponswitch_debug, CS_CVAR, dir, MAX_WEAPONSLOTS, number, W_CycleWeapon(), and weaponentities.

◆ if()

if ( IS_DEAD(this) )

Definition at line 92 of file impulse.qc.

93 {
94 this.impulse = imp;
95 return;
96 }
float impulse
Definition progsdefs.qc:158
int int int imp
Definition impulse.qc:90

References imp, and impulse.

◆ IMPULSE() [1/22]

IMPULSE ( use )

Definition at line 409 of file impulse.qc.

410{
411 PlayerUseKey(this);
412}
void PlayerUseKey(entity this)
Definition client.qc:2584

References PlayerUseKey(), and use.

◆ IMPULSE() [2/22]

IMPULSE ( waypoint_clear )

Definition at line 510 of file impulse.qc.

511{
513 if (this.personal)
514 {
515 delete(this.personal);
516 this.personal = NULL;
518 ClientKill(this);
519 }
520 sprint(this, "all waypoints cleared\n");
521}
entity personal
Definition cheats.qh:24
#define g_race
Definition race.qh:48
#define g_cts
Definition cts.qh:36
#define ClientKill
Definition _all.inc:250
void sprint(float clientnum, string text,...)
#define NULL
Definition post.qh:14
bool autocvar_g_allow_checkpoints
Definition race.qh:3
void WaypointSprite_ClearOwned(entity this)

References autocvar_g_allow_checkpoints, ClientKill, g_cts, g_race, NULL, personal, sprint(), and WaypointSprite_ClearOwned().

◆ IMPULSE() [3/22]

IMPULSE ( waypoint_clear_personal )

Definition at line 496 of file impulse.qc.

497{
499 if (this.personal)
500 {
501 delete(this.personal);
502 this.personal = NULL;
503
505 ClientKill(this);
506 }
507 sprint(this, "personal waypoint cleared\n");
508}
void WaypointSprite_ClearPersonal(entity this)

References autocvar_g_allow_checkpoints, ClientKill, g_cts, g_race, NULL, personal, sprint(), and WaypointSprite_ClearPersonal().

◆ IMPULSE() [4/22]

IMPULSE ( waypoint_danger_crosshair )

Definition at line 480 of file impulse.qc.

481{
483 entity wp = WaypointSprite_DeployFixed(WP_Danger, false, this, trace_endpos, RADARICON_DANGER);
484 if (wp) WaypointSprite_Ping(wp);
485 sprint(this, "DANGER spawned at crosshair\n");
486}
vector trace_endpos
void WarpZone_crosshair_trace(entity pl)
Definition tracing.qc:585
entity WaypointSprite_DeployFixed(entity spr, bool limited_range, entity player, vector ofs, entity icon)
void WaypointSprite_Ping(entity e)

References entity(), sprint(), trace_endpos, WarpZone_crosshair_trace(), WaypointSprite_DeployFixed(), and WaypointSprite_Ping().

◆ IMPULSE() [5/22]

IMPULSE ( waypoint_danger_death )

Definition at line 488 of file impulse.qc.

489{
490 if (!this.death_origin) return;
491 entity wp = WaypointSprite_DeployFixed(WP_Danger, false, this, this.death_origin, RADARICON_DANGER);
492 if (wp) WaypointSprite_Ping(wp);
493 sprint(this, "DANGER spawned at death location\n");
494}
vector death_origin
Definition damage.qh:67

References death_origin, entity(), sprint(), WaypointSprite_DeployFixed(), and WaypointSprite_Ping().

◆ IMPULSE() [6/22]

IMPULSE ( waypoint_danger_here )

Definition at line 473 of file impulse.qc.

474{
475 entity wp = WaypointSprite_DeployFixed(WP_Danger, false, this, this.origin, RADARICON_DANGER);
476 if (wp) WaypointSprite_Ping(wp);
477 sprint(this, "DANGER spawned at location\n");
478}
vector origin

References entity(), origin, sprint(), WaypointSprite_DeployFixed(), and WaypointSprite_Ping().

◆ IMPULSE() [7/22]

IMPULSE ( waypoint_here_crosshair )

Definition at line 457 of file impulse.qc.

458{
460 entity wp = WaypointSprite_DeployFixed(WP_Here, false, this, trace_endpos, RADARICON_HERE);
461 if (wp) WaypointSprite_Ping(wp);
462 sprint(this, "HERE spawned at crosshair\n");
463}
void WarpZone_crosshair_trace_plusvisibletriggers(entity pl)
Definition tracing.qc:559

References entity(), sprint(), trace_endpos, WarpZone_crosshair_trace_plusvisibletriggers(), WaypointSprite_DeployFixed(), and WaypointSprite_Ping().

◆ IMPULSE() [8/22]

IMPULSE ( waypoint_here_death )

Definition at line 465 of file impulse.qc.

466{
467 if (!this.death_origin) return;
468 entity wp = WaypointSprite_DeployFixed(WP_Here, false, this, this.death_origin, RADARICON_HERE);
469 if (wp) WaypointSprite_Ping(wp);
470 sprint(this, "HERE spawned at death location\n");
471}

References death_origin, entity(), sprint(), WaypointSprite_DeployFixed(), and WaypointSprite_Ping().

◆ IMPULSE() [9/22]

IMPULSE ( waypoint_here_follow )

Definition at line 437 of file impulse.qc.

438{
439 if (!teamplay) return;
440 if (IS_DEAD(this)) return;
441 if (!MUTATOR_CALLHOOK(HelpMePing, this))
442 {
443 entity wp = WaypointSprite_Attach(WP_Helpme, this, true, RADARICON_HELPME);
445 else WaypointSprite_Ping(wp);
446 }
447 sprint(this, "HELP ME attached\n");
448}
#define MUTATOR_CALLHOOK(id,...)
Definition base.qh:143
#define IS_DEAD(s)
Definition player.qh:245
bool teamplay
Definition teams.qh:59
void WaypointSprite_HelpMePing(entity e)
entity WaypointSprite_Attach(entity spr, entity player, bool limited_range, entity icon)
entity waypointsprite_attachedforcarrier

References entity(), IS_DEAD, MUTATOR_CALLHOOK, sprint(), teamplay, WaypointSprite_Attach(), waypointsprite_attachedforcarrier, WaypointSprite_HelpMePing(), and WaypointSprite_Ping().

◆ IMPULSE() [10/22]

IMPULSE ( waypoint_here_here )

Definition at line 450 of file impulse.qc.

451{
452 entity wp = WaypointSprite_DeployFixed(WP_Here, false, this, this.origin, RADARICON_HERE);
453 if (wp) WaypointSprite_Ping(wp);
454 sprint(this, "HERE spawned at location\n");
455}

References entity(), origin, sprint(), WaypointSprite_DeployFixed(), and WaypointSprite_Ping().

◆ IMPULSE() [11/22]

IMPULSE ( waypoint_personal_crosshair )

Definition at line 421 of file impulse.qc.

422{
424 entity wp = WaypointSprite_DeployPersonal(WP_Waypoint, this, trace_endpos, RADARICON_WAYPOINT);
425 if (wp) WaypointSprite_Ping(wp);
426 sprint(this, "personal waypoint spawned at crosshair\n");
427}
entity WaypointSprite_DeployPersonal(entity spr, entity player, vector ofs, entity icon)

References entity(), sprint(), trace_endpos, WarpZone_crosshair_trace(), WaypointSprite_DeployPersonal(), and WaypointSprite_Ping().

◆ IMPULSE() [12/22]

IMPULSE ( waypoint_personal_death )

Definition at line 429 of file impulse.qc.

430{
431 if (!this.death_origin) return;
432 entity wp = WaypointSprite_DeployPersonal(WP_Waypoint, this, this.death_origin, RADARICON_WAYPOINT);
433 if (wp) WaypointSprite_Ping(wp);
434 sprint(this, "personal waypoint spawned at death location\n");
435}

References death_origin, entity(), sprint(), WaypointSprite_DeployPersonal(), and WaypointSprite_Ping().

◆ IMPULSE() [13/22]

IMPULSE ( waypoint_personal_here )

Definition at line 414 of file impulse.qc.

415{
416 entity wp = WaypointSprite_DeployPersonal(WP_Waypoint, this, this.origin, RADARICON_WAYPOINT);
417 if (wp) WaypointSprite_Ping(wp);
418 sprint(this, "personal waypoint spawned at location\n");
419}

References entity(), origin, sprint(), WaypointSprite_DeployPersonal(), and WaypointSprite_Ping().

◆ IMPULSE() [14/22]

IMPULSE ( weapon_best )

Definition at line 320 of file impulse.qc.

321{
322 if (this.vehicle) return;
323 if (IS_DEAD(this)) return;
324 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
325 {
326 .entity weaponentity = weaponentities[slot];
327 W_SwitchWeapon(this, w_getbestweapon(this, weaponentity), weaponentity);
328
330 break;
331 }
332}
bool W_SwitchWeapon(entity this, Weapon w,.entity weaponentity)
Definition selection.qc:275
#define w_getbestweapon(ent, wepent)
Definition selection.qh:23
entity vehicle
Entity to disply the shild effect on damage.
const int MAX_WEAPONSLOTS
Definition weapon.qh:16

References autocvar_g_weaponswitch_debug, IS_DEAD, MAX_WEAPONSLOTS, vehicle, w_getbestweapon, W_SwitchWeapon(), and weaponentities.

◆ IMPULSE() [15/22]

IMPULSE ( weapon_drop )

Definition at line 334 of file impulse.qc.

335{
336 if (this.vehicle) return;
337 if (IS_DEAD(this)) return;
338 bool is_dualwielding = W_DualWielding(this);
339 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
340 {
341 .entity weaponentity = weaponentities[slot];
342 vector md = this.(weaponentity).movedir;
343 vector dv = v_right * -md.y;
344 if(!is_dualwielding)
345 dv = '0 0 0'; // don't override!
346 W_ThrowWeapon(this, weaponentity, W_CalculateProjectileVelocity(this, this.velocity, v_forward * 750, false), dv, true);
347
349 break; // in this mode, the off-hand weapon is selected based on the primary weapon, don't drop it twice!
350 }
351}
vector velocity
vector v_right
vector v_forward
vector movedir
Definition viewloc.qh:18
vector
Definition self.qh:92
bool W_DualWielding(entity player)
Definition common.qc:20
void W_ThrowWeapon(entity this,.entity weaponentity, vector velo, vector delta, float doreduce)
Definition throwing.qc:133
vector W_CalculateProjectileVelocity(entity actor, vector pvelocity, vector mvelocity, float forceAbsolute)
Definition tracing.qc:176

References autocvar_g_weaponswitch_debug, IS_DEAD, MAX_WEAPONSLOTS, movedir, v_forward, v_right, vector, vehicle, velocity, W_CalculateProjectileVelocity(), W_DualWielding(), W_ThrowWeapon(), and weaponentities.

◆ IMPULSE() [16/22]

IMPULSE ( weapon_last )

Definition at line 306 of file impulse.qc.

307{
308 if (this.vehicle) return;
309 if (IS_DEAD(this)) return;
310 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
311 {
312 .entity weaponentity = weaponentities[slot];
313 W_LastWeapon(this, weaponentity);
314
316 break;
317 }
318}
void W_LastWeapon(entity this,.entity weaponentity)
Definition selection.qc:344

References autocvar_g_weaponswitch_debug, IS_DEAD, MAX_WEAPONSLOTS, vehicle, W_LastWeapon(), and weaponentities.

◆ IMPULSE() [17/22]

IMPULSE ( weapon_next_bygroup )

Definition at line 234 of file impulse.qc.

235{
236 if (this.vehicle) return;
237 if (IS_DEAD(this))
238 {
239 this.impulse = IMP_weapon_next_bygroup.impulse;
240 return;
241 }
242 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
243 {
244 .entity weaponentity = weaponentities[slot];
245 W_NextWeapon(this, 1, weaponentity);
246
248 break;
249 }
250}
void W_NextWeapon(entity this, int list,.entity weaponentity)
Definition selection.qc:322

References autocvar_g_weaponswitch_debug, impulse, IS_DEAD, MAX_WEAPONSLOTS, vehicle, W_NextWeapon(), and weaponentities.

◆ IMPULSE() [18/22]

IMPULSE ( weapon_next_bypriority )

Definition at line 270 of file impulse.qc.

271{
272 if (this.vehicle) return;
273 if (IS_DEAD(this))
274 {
275 this.impulse = IMP_weapon_next_bypriority.impulse;
276 return;
277 }
278 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
279 {
280 .entity weaponentity = weaponentities[slot];
281 W_NextWeapon(this, 2, weaponentity);
282
284 break;
285 }
286}

References autocvar_g_weaponswitch_debug, impulse, IS_DEAD, MAX_WEAPONSLOTS, vehicle, W_NextWeapon(), and weaponentities.

◆ IMPULSE() [19/22]

IMPULSE ( weapon_prev_bygroup )

Definition at line 252 of file impulse.qc.

253{
254 if (this.vehicle) return;
255 if (IS_DEAD(this))
256 {
257 this.impulse = IMP_weapon_prev_bygroup.impulse;
258 return;
259 }
260 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
261 {
262 .entity weaponentity = weaponentities[slot];
263 W_PreviousWeapon(this, 1, weaponentity);
264
266 break;
267 }
268}
void W_PreviousWeapon(entity this, float list,.entity weaponentity)
Definition selection.qc:333

References autocvar_g_weaponswitch_debug, impulse, IS_DEAD, MAX_WEAPONSLOTS, vehicle, W_PreviousWeapon(), and weaponentities.

◆ IMPULSE() [20/22]

IMPULSE ( weapon_prev_byid )

Definition at line 216 of file impulse.qc.

217{
218 if (this.vehicle) return;
219 if (IS_DEAD(this))
220 {
221 this.impulse = IMP_weapon_prev_byid.impulse;
222 return;
223 }
224 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
225 {
226 .entity weaponentity = weaponentities[slot];
227 W_PreviousWeapon(this, 0, weaponentity);
228
230 break;
231 }
232}

References autocvar_g_weaponswitch_debug, impulse, IS_DEAD, MAX_WEAPONSLOTS, vehicle, W_PreviousWeapon(), and weaponentities.

◆ IMPULSE() [21/22]

IMPULSE ( weapon_prev_bypriority )

Definition at line 288 of file impulse.qc.

289{
290 if (this.vehicle) return;
291 if (IS_DEAD(this))
292 {
293 this.impulse = IMP_weapon_prev_bypriority.impulse;
294 return;
295 }
296 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
297 {
298 .entity weaponentity = weaponentities[slot];
299 W_PreviousWeapon(this, 2, weaponentity);
300
302 break;
303 }
304}

References autocvar_g_weaponswitch_debug, impulse, IS_DEAD, MAX_WEAPONSLOTS, vehicle, W_PreviousWeapon(), and weaponentities.

◆ IMPULSE() [22/22]

IMPULSE ( weapon_reload )

Definition at line 353 of file impulse.qc.

354{
355 if (this.vehicle) return;
356 if (IS_DEAD(this)) return;
357 if (weaponLocked(this)) return;
358 entity actor = this;
359 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
360 {
361 .entity weaponentity = weaponentities[slot];
362 Weapon w = this.(weaponentity).m_weapon;
363 w.wr_reload(w, actor, weaponentity);
364
365 // allow reloading all active slots?
366 //if(autocvar_g_weaponswitch_debug != 1)
367 //break;
368 }
369}
fields which are explicitly/manually set are marked with "M", fields set automatically are marked wit...
Definition weapon.qh:44
virtual void wr_reload()
(SERVER) handles reloading for weapon
Definition weapon.qh:104
bool weaponLocked(entity player)
Weapon m_weapon
Definition wepent.qh:26

References entity(), IS_DEAD, m_weapon, MAX_WEAPONSLOTS, vehicle, weaponentities, weaponLocked(), and Weapon::wr_reload().

◆ ImpulseCommands()

void ImpulseCommands ( entity this)

Definition at line 371 of file impulse.qc.

372{
373 if (game_stopped) return;
374
375 int imp = CS(this).impulse;
376 if (!imp) return;
377 CS(this).impulse = 0;
378
379 if (MinigameImpulse(this, imp)) return;
380
381 if (timeout_status == TIMEOUT_ACTIVE) return; // don't allow any impulses while the game is paused
382
384 {
385 // impulses forbidden while waiting for the start of a round
386 #define X(id) case IMP_##id.impulse:
387 switch (imp)
388 {
389 X(weapon_drop)
390 X(weapon_reload)
391 X(use)
392 return;
393 }
394#undef X
395 }
396
397 if (vehicle_impulse(this, imp)) return;
398
399 if (CheatImpulse(this, imp)) return;
400
401 FOREACH(IMPULSES, it.impulse == imp, {
402 void(entity) f = it.impulse_handle;
403 if (!f) continue;
404 f(this);
405 return;
406 });
407}
float CheatImpulse(entity this, int imp)
Definition cheats.qc:138
int timeout_status
Definition stats.qh:87
float game_stopped
Definition stats.qh:81
#define use
#define FOREACH(list, cond, body)
Definition iter.qh:19
#define round_handler_IsActive()
#define round_handler_IsRoundStarted()
const float TIMEOUT_ACTIVE
Definition common.qh:49
#define X(i)
Definition impulse.qc:70
ClientState CS(Client this)
Definition state.qh:47
bool MinigameImpulse(entity this, int imp)
bool vehicle_impulse(entity this, int imp)

References CheatImpulse(), CS(), entity(), FOREACH, game_stopped, imp, MinigameImpulse(), round_handler_IsActive, round_handler_IsRoundStarted, TIMEOUT_ACTIVE, timeout_status, use, vehicle_impulse(), and X.

Referenced by ctf_FlagThink(), PlayerPostThink(), and PutPlayerInServer().

◆ weapon_byid_handle()

prev prev prev prev prev best best best best best next next next next next void weapon_byid_handle ( entity this,
int number,
int imp )

Definition at line 150 of file impulse.qc.

151{
152 if (this.vehicle) return;
153 if (IS_DEAD(this))
154 {
155 this.impulse = imp;
156 return;
157 }
158 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
159 {
160 .entity weaponentity = weaponentities[slot];
163 break;
164 }
165}
void W_SwitchWeapon_TryOthers(entity this, Weapon w,.entity weaponentity)
Definition selection.qc:299
Weapon Weapon_from_impulse(int imp)
Definition all.qh:150

References autocvar_g_weaponswitch_debug, entity(), imp, impulse, IS_DEAD, MAX_WEAPONSLOTS, number, vehicle, W_SwitchWeapon_TryOthers(), Weapon_from_impulse(), and weaponentities.

◆ weapon_group_handle()

void weapon_group_handle ( entity this,
int number,
int imp )

Impulse map:

0 reserved (no input)

99: loaded

140: moving clone 141: ctf speedrun 142: fixed clone 143: emergency teleport 148: unfairly eliminate

TODO: 200 to 209: prev weapon shortcuts 210 to 219: best weapon shortcuts 220 to 229: next weapon shortcuts 230 to 253: individual weapons (up to 24)

Definition at line 54 of file impulse.qc.

55{
56 if (IS_DEAD(this))
57 {
58 this.impulse = imp;
59 return;
60 }
61 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
62 {
63 .entity weaponentity = weaponentities[slot];
64 W_NextWeaponOnImpulse(this, number, weaponentity);
66 break;
67 }
68}
void W_NextWeaponOnImpulse(entity this, float imp,.entity weaponentity)
Definition selection.qc:313

References autocvar_g_weaponswitch_debug, entity(), imp, impulse, IS_DEAD, MAX_WEAPONSLOTS, number, W_NextWeaponOnImpulse(), and weaponentities.

◆ X() [1/17]

X ( 0 )

Definition at line 172 of file impulse.qc.

199{
200 if (this.vehicle) return;
201 if (IS_DEAD(this))
202 {
203 this.impulse = IMP_weapon_next_byid.impulse;
204 return;
205 }
206 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
207 {
208 .entity weaponentity = weaponentities[slot];
209 W_NextWeapon(this, 0, weaponentity);
210
212 break;
213 }
214}

References autocvar_g_weaponswitch_debug, impulse, IS_DEAD, MAX_WEAPONSLOTS, vehicle, W_NextWeapon(), weaponentities, and X.

◆ X() [2/17]

prev prev prev prev prev X ( 0 ,
best  )

References best, and X.

◆ X() [3/17]

References next, and X.

◆ X() [4/17]

X ( 0 ,
prev  )

References prev.

◆ X() [5/17]

X ( 1 )

References X.

◆ X() [6/17]

prev prev prev prev prev best X ( 2 ,
best  )

References best, and X.

◆ X() [7/17]

References next, and X.

◆ X() [8/17]

prev X ( 2 ,
prev  )

References prev, and X.

◆ X() [9/17]

References best, and X.

◆ X() [10/17]

References next, and X.

◆ X() [11/17]

prev prev X ( 4 ,
prev  )

References prev, and X.

◆ X() [12/17]

References best, and X.

◆ X() [13/17]

References next, and X.

◆ X() [14/17]

prev prev prev X ( 6 ,
prev  )

References prev, and X.

◆ X() [15/17]

References best, and X.

◆ X() [16/17]

References next, and X.

◆ X() [17/17]

prev prev prev prev X ( 8 ,
prev  )

References prev, and X.

Variable Documentation

◆ dir

◆ imp

◆ number

◆ vehicle

entity vehicle

Definition at line 21 of file impulse.qc.