From b7be04a9a9968f61a5772a3e0eb4eea7d3a905a4 Mon Sep 17 00:00:00 2001 From: div0 Date: Sun, 21 Sep 2008 12:35:38 +0000 Subject: [PATCH] add a misisng portal side check git-svn-id: svn://svn.icculus.org/nexuiz/trunk@4476 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/portals.qc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/qcsrc/server/portals.qc b/data/qcsrc/server/portals.qc index 156abb3f1..b98bf4173 100644 --- a/data/qcsrc/server/portals.qc +++ b/data/qcsrc/server/portals.qc @@ -422,6 +422,9 @@ void Portal_Think() o = self.owner; self.solid = SOLID_BBOX; self.owner = world; + + fixedmakevectors(self.angles); + FOR_EACH_PLAYER(e) { if(time < self.portal_activatetime) @@ -430,6 +433,9 @@ void Portal_Think() if(e != o) if(IS_INDEPENDENT_PLAYER(e) || IS_INDEPENDENT_PLAYER(o)) continue; // cannot go through someone else's portal + if((e.origin - self.origin) * v_forward < 0) // wrong side of the plane? no teleport + continue; + // if e would hit the portal in a frame... // already teleport him tracebox(e.origin, e.mins, e.maxs, e.origin + e.velocity * 2 * frametime, MOVE_NORMAL, e); -- 2.39.2