From 2f467259844d8228ef8621d860ce71b7ec7c6f09 Mon Sep 17 00:00:00 2001 From: Sally Coolatta <tehrealsalt@gmail.com> Date: Mon, 25 Apr 2022 14:45:35 -0400 Subject: [PATCH] Fix flickering plane interpolation for OpenGL in the exact same way Funny OpenGL renderer being at least 50% copy-pasted Software code :) --- src/hardware/hw_main.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c index f56856bb4f..cafa9ff50e 100644 --- a/src/hardware/hw_main.c +++ b/src/hardware/hw_main.c @@ -2997,6 +2997,7 @@ static void HWR_Subsector(size_t num) INT32 light = 0; extracolormap_t *floorcolormap; extracolormap_t *ceilingcolormap; + ffloor_t *rover; #ifdef PARANOIA //no risk while developing, enough debugging nights! if (num >= addsubsector) @@ -3054,7 +3055,22 @@ static void HWR_Subsector(size_t num) if (gl_frontsector->ffloors) { - if (gl_frontsector->moved) + boolean anyMoved = gl_frontsector->moved; + + if (anyMoved == false) + { + for (rover = gl_frontsector->ffloors; rover; rover = rover->next) + { + sector_t *controlSec = §ors[rover->secnum]; + if (controlSec->moved == true) + { + anyMoved = true; + break; + } + } + } + + if (anyMoved == true) { gl_frontsector->numlights = sub->sector->numlights = 0; R_Prep3DFloors(gl_frontsector); @@ -3133,7 +3149,6 @@ static void HWR_Subsector(size_t num) if (gl_frontsector->ffloors) { /// \todo fix light, xoffs, yoffs, extracolormap ? - ffloor_t * rover; for (rover = gl_frontsector->ffloors; rover; rover = rover->next) { -- GitLab