#if 1
FOREACH_CLIENT(!it.viewloc && IS_PLAYER(it),
{
- vector emin = it.absmin;
- vector emax = it.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, it)) // accurate
- it.viewloc = this;
- }
+ if (WarpZoneLib_ExactTrigger_Touch(this, it, false))
+ it.viewloc = this;
});
#else
-
- for(e = findradius((this.absmin + this.absmax) * 0.5, vlen(this.absmax - this.absmin) * 0.5 + 1); e; e = e.chain)
- if(!e.viewloc)
- if(IS_PLAYER(e)) // should we support non-player entities with this?
- //if(!IS_DEAD(e)) // death view is handled separately, we can't override this just yet
- {
- vector emin = e.absmin;
- vector 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
- e.viewloc = this;
- }
+ for(e = findradius((this.absmin + this.absmax) * 0.5, vlen(this.absmax - this.absmin) * 0.5 + 1); e; e = e.chain)
+ if(!e.viewloc)
+ if(IS_PLAYER(e)) // should we support non-player entities with this?
+ //if(!IS_DEAD(e)) // death view is handled separately, we can't override this just yet
+ if (WarpZoneLib_ExactTrigger_Touch(this, it, false))
+ e.viewloc = this;
#endif
this.nextthink = time;
// we won't check target2 here yet, as it may not even need to exist
if(this.target == "") { LOG_INFO("^1FAIL!"); delete(this); return; }
- EXACTTRIGGER_INIT;
+ WarpZoneLib_ExactTrigger_Init(this, false);
InitializeEntity(this, viewloc_init, INITPRIO_FINDTARGET);
}
spawnfunc(target_viewlocation_start)
{
- this.classname = "target_viewlocation_start";
this.cnt = 1;
viewloc_link(this);
}
spawnfunc(target_viewlocation_end)
{
- this.classname = "target_viewlocation_end";
this.cnt = 2;
viewloc_link(this);
}
setthink(this, trigger_viewloc_updatelink);
this.nextthink = time + 1; // we need to delay this or else
- this.classname = "trigger_viewlocation";
this.drawmask = MASK_NORMAL; // not so concerned, but better keep it alive
}