From 33c1289a4657ed103adfdd926dcc97c0938e4488 Mon Sep 17 00:00:00 2001 From: Eidolon <furyhunter600@gmail.com> Date: Mon, 10 Mar 2025 13:22:19 -0500 Subject: [PATCH] Fix write Y range for splat drawing Fixes a silent memory error during splat drawing when splats cross the bottom of the screen. --- src/r_splats.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/r_splats.c b/src/r_splats.c index ce35a35b4c..4b4de82751 100644 --- a/src/r_splats.c +++ b/src/r_splats.c @@ -53,7 +53,7 @@ static void rasterize_segment_tex(INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT32 if (dir == 0) { - for (;;) + for (; count > 0; count--) { rastertab[y1].maxx = xs; rastertab[y1].tx2 = xe; @@ -62,13 +62,11 @@ static void rasterize_segment_tex(INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT32 xs += dx0; xe += dx1; y1++; - - if (count-- < 1) break; } } else { - for (;;) + for (; count > 0; count--) { rastertab[y1].maxx = xs; rastertab[y1].tx2 = tc; @@ -77,8 +75,6 @@ static void rasterize_segment_tex(INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT32 xs += dx0; xe += dx1; y1++; - - if (count-- < 1) break; } } } @@ -95,7 +91,7 @@ static void rasterize_segment_tex(INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT32 if (dir == 0) { - for (;;) + for (; count > 0; count--) { rastertab[y2].minx = xs; rastertab[y2].tx1 = xe; @@ -104,13 +100,11 @@ static void rasterize_segment_tex(INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT32 xs += dx0; xe += dx1; y2++; - - if (count-- < 1) break; } } else { - for (;;) + for (; count > 0; count--) { rastertab[y2].minx = xs; rastertab[y2].tx1 = tc; @@ -119,8 +113,6 @@ static void rasterize_segment_tex(INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT32 xs += dx0; xe += dx1; y2++; - - if (count-- < 1) break; } } } -- GitLab