diff --git a/src/p_mobj.c b/src/p_mobj.c index d4a1fa981e003a134fcdd6d8625825f6d89b16f2..64024b0347b5e1521bf254a6ae8a95bd435bdcab 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1120,11 +1120,14 @@ fixed_t P_MobjFloorZ(sector_t *sector, sector_t *boundsec, fixed_t x, fixed_t y, testy += y; // If the highest point is in the sector, then we have it easy! Just get the Z at that point - if (R_IsPointInSector(boundsec ? boundsec : sector, testx, testy)) +// if (R_IsPointInSector(boundsec ? boundsec : sector, testx, testy)) +// return P_GetSlopeZAt(slope, testx, testy); + + if (R_PointInSubsector(testx, testy)->sector == (boundsec ? boundsec : sector)) // Faster return P_GetSlopeZAt(slope, testx, testy); // If boundsec is set, we're looking for specials. In that case, iterate over every line in this sector to find the TRUE highest/lowest point - if (perfect) { + if (perfect && boundsec) { size_t i; line_t *ld; fixed_t bbox[4]; @@ -1196,11 +1199,14 @@ fixed_t P_MobjCeilingZ(sector_t *sector, sector_t *boundsec, fixed_t x, fixed_t testy += y; // If the highest point is in the sector, then we have it easy! Just get the Z at that point - if (R_IsPointInSector(boundsec ? boundsec : sector, testx, testy)) +// if (R_IsPointInSector(boundsec ? boundsec : sector, testx, testy)) +// return P_GetSlopeZAt(slope, testx, testy); + + if (R_PointInSubsector(testx, testy)->sector == (boundsec ? boundsec : sector)) // Faster return P_GetSlopeZAt(slope, testx, testy); // If boundsec is set, we're looking for specials. In that case, iterate over every line in this sector to find the TRUE highest/lowest point - if (perfect) { + if (perfect && boundsec) { size_t i; line_t *ld; fixed_t bbox[4];