void SUB_UseTargets(entity this, entity actor, entity trigger);
-void DelayThink()
-{SELFPARAM();
+void DelayThink(entity this)
+{
SUB_UseTargets (this, this.enemy, NULL);
remove(this);
}
void trigger_init(entity this)
{
string m = this.model;
- WITHSELF(this, WarpZoneLib_ExactTrigger_Init());
+ EXACTTRIGGER_INIT;
if(m != "")
{
precache_model(m);
void trigger_link(entity this, bool(entity this, entity to, int sendflags) sendfunc)
{
- this.SendEntity = SendEntity_self;
- this.SendEntity3 = sendfunc;
+ setSendEntity(this, sendfunc);
this.SendFlags = 0xFFFFFF;
}
#elif defined(CSQC)
-void trigger_common_read(bool withtarget)
-{SELFPARAM();
+void trigger_common_read(entity this, bool withtarget)
+{
int f = ReadByte();
this.warpzone_isboxy = (f & 1);
the global "activator" should be set to the entity that initiated the firing.
-If self.delay is set, a DelayedUse entity will be created that will actually
+If this.delay is set, a DelayedUse entity will be created that will actually
do the SUB_UseTargets after that many seconds have passed.
-Centerprints any self.message to the activator.
+Centerprints any this.message to the activator.
-Removes all entities with a targetname that match self.killtarget,
+Removes all entities with a targetname that match this.killtarget,
and removes them, so some events can remove other triggers.
Search for (string)targetname in all entities that
-match (string)self.target and call their .use function
+match (string)this.target and call their .use function
==============================
*/
// create a temp object to fire at a later time
entity t = new(DelayedUse);
t.nextthink = time + this.delay;
- t.think = DelayThink;
+ setthink(t, DelayThink);
t.enemy = actor;
t.message = this.message;
t.killtarget = this.killtarget;
int aw_flag = this.antiwall_flag;
for(entity t = world; (t = find(t, targetname, s)); )
{
- if(t.use1)
+ if(t.use)
{
if(this.target_random)
{
if (t.classname == "func_clientwall" || t.classname == "func_clientillusionary")
t.antiwall_flag = aw_flag;
- t.use1(t, actor, this);
+ t.use(t, actor, this);
}
}
}
}
if(this.target_random && RandomSelection_chosen_ent)
- RandomSelection_chosen_ent.use1(RandomSelection_chosen_ent, actor, this);
-}
-
-void SUB_UseTargets_self()
-{SELFPARAM();
- SUB_UseTargets(this, NULL, NULL);
+ RandomSelection_chosen_ent.use(RandomSelection_chosen_ent, actor, this);
}
-#ifdef CSQC
-void trigger_touch_generic(entity this, void() touchfunc)
-{
- entity e;
- for(e = findradius((this.absmin + this.absmax) * 0.5, vlen(this.absmax - this.absmin) * 0.5 + 1); e; e = e.chain)
- if(e.classname == "csqcprojectile")
- {
- vector emin = e.absmin, emax = e.absmax;
- if(this.solid == SOLID_BSP)
- {
- emin -= '1 1 1';
- emax += '1 1 1';
- }
- if(boxesoverlap(emin, emax, this.absmin, this.absmax)) // quick
- if(WarpZoneLib_BoxTouchesBrush(emin, emax, this, e)) // accurate
- {
- other = e;
- WITHSELF(this, touchfunc());
- }
- }
-}
-void trigger_draw_generic(entity this)
+void SUB_UseTargets_self(entity this)
{
- float dt = time - this.move_time;
- this.move_time = time;
- if(dt <= 0) { return; }
-
- if(this.trigger_touch) { trigger_touch_generic(this, this.trigger_touch); }
+ SUB_UseTargets(this, NULL, NULL);
}
-#endif