Xonotic
delay.qc
Go to the documentation of this file.
1 #include "delay.qh"
2 
3 #ifdef SVQC
4 void delay_delayeduse(entity this)
5 {
6  SUB_UseTargets(this, this.enemy, this.goalentity);
7  this.enemy = this.goalentity = NULL;
8 }
9 
10 void delay_use(entity this, entity actor, entity trigger)
11 {
12  if(this.active != ACTIVE_ACTIVE)
13  return;
14 
15  this.enemy = actor;
16  this.goalentity = trigger;
17  setthink(this, delay_delayeduse);
18  this.nextthink = time + this.wait;
19 }
20 
21 void delay_reset(entity this)
22 {
23  this.enemy = this.goalentity = NULL;
24  setthink(this, func_null);
25  this.nextthink = 0;
26  this.active = ACTIVE_ACTIVE;
27 }
28 
29 spawnfunc(trigger_delay)
30 {
31  if(!this.wait)
32  this.wait = 1;
33 
34  this.use = delay_use;
35  this.reset = delay_reset;
36  this.active = ACTIVE_ACTIVE;
37 }
38 #endif
entity() spawn
void SUB_UseTargets(entity this, entity actor, entity trigger)
Definition: triggers.qc:366
spawnfunc(info_player_attacker)
Definition: sv_assault.qc:283
entity enemy
Definition: sv_ctf.qh:143
entity goalentity
Definition: progsdefs.qc:189
float wait
Definition: subs.qh:39
const int ACTIVE_ACTIVE
Definition: defs.qh:37
#define NULL
Definition: post.qh:17
float nextthink
Definition: csprogsdefs.qc:121
int active
Definition: defs.qh:34
#define setthink(e, f)
#define use
Definition: csprogsdefs.qh:50
float time
Definition: csprogsdefs.qc:16
var void func_null()