bool WarpZoneLib_ExactTrigger_Touch(entity this, entity toucher, bool touchfunc)
{
vector emin = toucher.absmin, emax = toucher.absmax;
- if (!Q3COMPAT_COMMON)
+ if(STAT(Q3COMPAT))
{
- // Xonotic and Nexuiz maps assume triggers will be activated by adjacent players
- // prior to sv_legacy_bbox_expand 0 DP always did this for SVQC and never for CSQC
- emin -= '1 1 1';
- emax += '1 1 1';
+ // DP's tracebox enlarges absolute bounding boxes by a single quake unit
+ // we must undo that here to allow accurate touching
+ emin += '1 1 1';
+ emax -= '1 1 1';
}
// if called from a touch func, we can assume the boxes do overlap
return WarpZoneLib_BoxTouchesBrush(emin, emax, this, toucher); // accurate
}
+
void WarpZoneLib_MoveOutOfSolid_Expand(entity e, vector by)
{
const float eps = 0.0625;