‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
trigger_shared.csc
Go to the documentation of this file.
1 #insert scripts\shared\shared.gsh;
2 
3 #namespace trigger;
4 
5 //trigger_thread
6 function ‪function_thread( ent, on_enter_payload, on_exit_payload )
7 {
8  ent endon( "entityshutdown" );
9 
10  if ( ent ‪ent_already_in( self ) )
11  {
12  return;
13  }
14 
15  ‪add_to_ent( ent, self );
16 
17 // iprintlnbold("Trigger " + self.targetname + " hit by ent " + ent getentitynumber());
18 
19  if ( isdefined( on_enter_payload ) )
20  {
21  [[on_enter_payload]]( ent );
22  }
23 
24  while ( isdefined( ent ) && ent istouching( self ) )
25  {
27  }
28 
29 // iprintlnbold(ent getentitynumber() + " leaves trigger " + self.targetname + ".");
30 
31  if ( isdefined( ent ) && isdefined( on_exit_payload ) )
32  {
33  [[on_exit_payload]]( ent );
34  }
35 
36  if ( isdefined( ent ) )
37  {
38  ‪remove_from_ent( ent, self );
39  }
40 }
41 
42 function ‪ent_already_in( trig )
43 {
44  if ( !isdefined( self._triggers ) )
45  {
46  return false;
47  }
48 
49  if ( !isdefined( self._triggers[trig getentitynumber()] ) )
50  {
51  return false;
52  }
53 
54  if ( !self._triggers[trig getentitynumber()] )
55  {
56  return false;
57  }
58 
59  return true; // We're already in this trigger volume.
60 }
61 
62 function ‪add_to_ent( ent, trig )
63 {
64  if ( !isdefined( ent._triggers ) )
65  {
66  ent._triggers = [];
67  }
68 
69  ent._triggers[trig getentitynumber()] = 1;
70 }
71 
72 function ‪remove_from_ent( ent, trig )
73 {
74  if ( !isdefined( ent._triggers ) )
75  {
76  return;
77  }
78 
79  if ( !isdefined( ent._triggers[trig getentitynumber()] ) )
80  {
81  return;
82  }
83 
84  ent._triggers[trig getentitynumber()] = 0;
85 }
86 
87 function ‪death_monitor( ent, ender )
88 {
89  ent waittill( "death" );
90  self endon( ender );
91  self ‪remove_from_ent( ent );
92 }
‪add_to_ent
‪function add_to_ent(ent, trig)
Definition: trigger_shared.csc:62
‪ent_already_in
‪function ent_already_in(trig)
Definition: trigger_shared.csc:42
‪remove_from_ent
‪function remove_from_ent(ent, trig)
Definition: trigger_shared.csc:72
‪function_thread
‪function function_thread(ent, on_enter_payload, on_exit_payload)
Definition: trigger_shared.csc:6
‪WAIT_CLIENT_FRAME
‪#define WAIT_CLIENT_FRAME
Definition: shared.gsh:266
‪death_monitor
‪function death_monitor(ent, ender)
Definition: trigger_shared.csc:87