From 7e13cb8b471e25358b9db126bde91d4e6cd1836d Mon Sep 17 00:00:00 2001 From: RedEnchilada Date: Mon, 4 May 2015 16:40:02 -0500 Subject: [PATCH] Fix various issues/crashes with texture alignments --- src/r_segs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/r_segs.c b/src/r_segs.c index b96731c95..425cc4a3c 100644 --- a/src/r_segs.c +++ b/src/r_segs.c @@ -1378,7 +1378,7 @@ static void R_RenderSegLoop (void) maskedtexturecol[rw_x] = (INT16)texturecolumn; #ifdef ESLOPE - if (maskedtexture) { + if (maskedtextureheight != NULL) { maskedtextureheight[rw_x] = (curline->linedef->flags & ML_DONTPEGBOTTOM ? max(rw_midtexturemid, rw_midtextureback) : min(rw_midtexturemid, rw_midtextureback)); @@ -1447,6 +1447,8 @@ void R_StoreWallRange(INT32 start, INT32 stop) #endif static size_t maxdrawsegs = 0; + maskedtextureheight = NULL; + if (ds_p == drawsegs+maxdrawsegs) { size_t pos = ds_p - drawsegs; @@ -1969,7 +1971,7 @@ void R_StoreWallRange(INT32 start, INT32 stop) { // bottom of texture at bottom // top of texture at top - rw_bottomtexturemid = worldtop; + rw_bottomtexturemid = worldbottom; #ifdef ESLOPE rw_bottomtextureslide = floorfrontslide; #endif @@ -2159,6 +2161,8 @@ void R_StoreWallRange(INT32 start, INT32 stop) rw_midtextureback = worldhigh; rw_midtexturebackslide = ceilingbackslide; } + rw_midtexturemid += sidedef->rowoffset; + rw_midtextureback += sidedef->rowoffset; #endif maskedtexture = true;