diff --git a/src/p_map.cpp b/src/p_map.cpp index 235282434..ef5264f69 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -4760,12 +4760,8 @@ bool P_UseTraverse(AActor *usething, fixed_t startx, fixed_t starty, fixed_t end if (P_PointOnLineSide(xpos.x, xpos.y, in->d.line) == 0) { FLinePortal *port = in->d.line->getPortal(); - if (port->mType != PORTT_LINKED) // other types will cause problems with - { - return true; - } // Also translate the player origin, so that we can use that for checks further below and in P_CheckSwitchRange - it.PortalRealign(in, PT_ADDLINES | PT_ADDTHINGS, &xpos); + it.PortalRelocate(in, PT_ADDLINES | PT_ADDTHINGS, &xpos); } continue; diff --git a/src/p_maputl.cpp b/src/p_maputl.cpp index 64eec19be..75c4e8830 100644 --- a/src/p_maputl.cpp +++ b/src/p_maputl.cpp @@ -1611,11 +1611,11 @@ void FPathTraverse::init (fixed_t x1, fixed_t y1, fixed_t x2, fixed_t y2, int fl //=========================================================================== // -// +// Relocates the trace when going through a line portal // //=========================================================================== -bool FPathTraverse::PortalRealign(intercept_t *in, int flags, fixedvec3 *optpos) +bool FPathTraverse::PortalRelocate(intercept_t *in, int flags, fixedvec3 *optpos) { if (!in->isaline || !in->d.line->isLinePortal()) return false; fixed_t hitx = trace.x; diff --git a/src/p_maputl.h b/src/p_maputl.h index 97c534c0e..b4155995f 100644 --- a/src/p_maputl.h +++ b/src/p_maputl.h @@ -356,7 +356,7 @@ public: init(x1, y1, x2, y2, flags); } void init(fixed_t x1, fixed_t y1, fixed_t x2, fixed_t y2, int flags, fixed_t startfrac = 0); - bool PortalRealign(intercept_t *in, int flags, fixedvec3 *optpos = NULL); + bool PortalRelocate(intercept_t *in, int flags, fixedvec3 *optpos = NULL); virtual ~FPathTraverse(); const divline_t &Trace() const { return trace; } };