From fe20c4903cff7a3031f38142ece732c4a663b3fb Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Mon, 30 Dec 2024 19:24:03 +0100 Subject: [PATCH] do not draw fuzz columns beyond screen boundaries (#2108) Fixes #2099 --- src/r_draw.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/r_draw.c b/src/r_draw.c index efd95e01..647126b7 100644 --- a/src/r_draw.c +++ b/src/r_draw.c @@ -488,6 +488,8 @@ static void DrawFuzzColumnBlocky(void) int lines = fuzzblocksize - (dc_yl % fuzzblocksize); + const int fuzzblockwidth = MIN(fuzzblocksize, linesize - dc_x); + do { count -= lines; @@ -506,7 +508,7 @@ static void DrawFuzzColumnBlocky(void) do { - memset(dest, fuzz, fuzzblocksize); + memset(dest, fuzz, fuzzblockwidth); dest += linesize; } while (--lines); @@ -580,6 +582,8 @@ static void DrawFuzzColumnRefraction(void) int lines = fuzzblocksize - (dc_yl % fuzzblocksize); + const int fuzzblockwidth = MIN(fuzzblocksize, linesize - dc_x); + int dark = FUZZDARK; int offset = 0; @@ -600,7 +604,7 @@ static void DrawFuzzColumnRefraction(void) do { - memset(dest, fuzz, fuzzblocksize); + memset(dest, fuzz, fuzzblockwidth); dest += linesize; } while (--lines);