From 685d72b6d7329c19e842586ea4a17e056eb40729 Mon Sep 17 00:00:00 2001 From: NepDisk <16447892+NepDisk@users.noreply.github.com> Date: Wed, 11 Sep 2024 08:30:20 -0400 Subject: [PATCH] Clamp rover->alpha-1 to prevent overflow Thanks Alug! --- src/hardware/hw_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c index 72e31e1b5..f35b80cd5 100644 --- a/src/hardware/hw_main.c +++ b/src/hardware/hw_main.c @@ -1820,7 +1820,7 @@ static void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom if (rover->alpha < 256 || rover->blend) { blendmode = HWR_GetBlendModeFlag(rover->blend); - Surf.PolyColor.s.alpha = (UINT8)(rover->alpha-1); + Surf.PolyColor.s.alpha = (UINT8)(max(0, min(rover->alpha, 255))); } } @@ -1946,7 +1946,7 @@ static void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom if (rover->alpha < 256 || rover->blend) { blendmode = HWR_GetBlendModeFlag(rover->blend); - Surf.PolyColor.s.alpha = (UINT8)(rover->alpha-1); + Surf.PolyColor.s.alpha = (UINT8)(max(0, min(rover->alpha, 255))); } } @@ -3262,7 +3262,7 @@ static void HWR_Subsector(size_t num) false, *rover->bottomheight, *gl_frontsector->lightlist[light].lightlevel, - rover->alpha-1, rover->master->frontsector, blendmode, + max(0, min(rover->alpha, 255)), rover->master->frontsector, blendmode, false, *gl_frontsector->lightlist[light].extra_colormap); } else @@ -3310,7 +3310,7 @@ static void HWR_Subsector(size_t num) true, *rover->topheight, *gl_frontsector->lightlist[light].lightlevel, - rover->alpha-1, rover->master->frontsector, blendmode, + max(0, min(rover->alpha, 255)), rover->master->frontsector, blendmode, false, *gl_frontsector->lightlist[light].extra_colormap); } else