From ce09be596eb467fcbe95381ab604adee65fe3ac0 Mon Sep 17 00:00:00 2001 From: "Ben Russell (300178622)" Date: Sat, 3 Oct 2015 12:31:31 +1300 Subject: [PATCH] now with 20% less epilepsy --- pkg/gm/portalgun/hook_map.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/gm/portalgun/hook_map.lua b/pkg/gm/portalgun/hook_map.lua index c486925..ce812e6 100644 --- a/pkg/gm/portalgun/hook_map.lua +++ b/pkg/gm/portalgun/hook_map.lua @@ -81,17 +81,19 @@ function trace_portal_transform(tf, cx, cy, cz, vx, vy, vz) --print("HORIZ", hx1, hy1, hz1, hx2, hy2, hz2, ho1) -- Get source offsets - local noP = (nx1*cx + ny1*cy + nz1*cz - no1) + local noP = -math.abs(nx1*cx + ny1*cy + nz1*cz - no1) local soP = (sx1*cx + sy1*cy + sz1*cz - so1) local hoP = -(hx1*cx + hy1*cy + hz1*cz - ho1) + if ny2 < 0 then noP = noP - 0.1 end + -- Update position cx = (nx2*noP + sx2*soP + hx2*hoP) + no2*nx2 + so2*sx2 + ho2*hx2 cy = (ny2*noP + sy2*soP + hy2*hoP) + no2*ny2 + so2*sy2 + ho2*hy2 cz = (nz2*noP + sz2*soP + hz2*hoP) + no2*nz2 + so2*sz2 + ho2*hz2 -- Get direction offsets - local noV = (nx1*vx + ny1*vy + nz1*vz) + local noV = math.max(0.1,math.abs(nx1*vx + ny1*vy + nz1*vz)) local soV = -(sx1*vx + sy1*vy + sz1*vz) local hoV = (hx1*vx + hy1*vy + hz1*vz)