From e0d97e4b1a3bc3e5c17f4538237b47754f1c0478 Mon Sep 17 00:00:00 2001 From: RedEnchilada <redenchilada@derpymail.com> Date: Sat, 23 May 2015 16:27:15 -0500 Subject: [PATCH] Slope planes should now not turn into static in 99% of cases --- src/r_plane.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/r_plane.c b/src/r_plane.c index 0cd1583550..6aae1e250b 100644 --- a/src/r_plane.c +++ b/src/r_plane.c @@ -952,6 +952,15 @@ void R_DrawSinglePlane(visplane_t *pl) xoffs &= ((1 << (32-nflatshiftup))-1); yoffs &= ((1 << (32-nflatshiftup))-1); + xoffs -= (pl->slope->o.x + (1 << (31-nflatshiftup))) & ~((1 << (32-nflatshiftup))-1); + yoffs += (pl->slope->o.y + (1 << (31-nflatshiftup))) & ~((1 << (32-nflatshiftup))-1); + + // Okay, look, don't ask me why this works, but without this setup there's a disgusting-looking misalignment with the textures. -Red + fudge = ((1<<nflatshiftup)+1.0f)/(1<<nflatshiftup); + + xoffs *= fudge; + yoffs /= fudge; + vx = FIXED_TO_FLOAT(viewx+xoffs); vy = FIXED_TO_FLOAT(viewy-yoffs); vz = FIXED_TO_FLOAT(viewz); @@ -981,9 +990,6 @@ void R_DrawSinglePlane(visplane_t *pl) m.y = FIXED_TO_FLOAT(P_GetZAt(pl->slope, viewx + FLOAT_TO_FIXED(sin(ang)), viewy + FLOAT_TO_FIXED(cos(ang)))) - zeroheight; n.y = FIXED_TO_FLOAT(P_GetZAt(pl->slope, viewx + FLOAT_TO_FIXED(cos(ang)), viewy - FLOAT_TO_FIXED(sin(ang)))) - zeroheight; - // Okay, look, don't ask me why this works, but without this setup there's a disgusting-looking misalignment with the textures. -Red - fudge = ((1<<nflatshiftup)+1.0f)/(1<<nflatshiftup); - m.x /= fudge; m.y /= fudge; m.z /= fudge; -- GitLab