Fix 3D floor sides not rendering properly if a light list was involved
Normally, when rendering a "masked column", the variables sprtopscreen
(and sometimes sprbotscreen
) are used to define the screen space bounds of the column. R_DrawMaskedColumn
and R_DrawFlippedMaskedColumn
use these variables to determine where to start rendering the column's posts.
Rendering a 3D floor side when a light list is involved requires cutting it vertically. Part of this process involves setting windowtop
and windowbottom
, which are what R_DrawMaskedColumn
and R_DrawFlippedMaskedColumn
use instead to define the bounds in screen space of the column. To draw the columns between the 3D floor's vertical boundaries, the functions R_DrawRepeatMaskedColumn
or R_DrawRepeatFlippedMaskedColumn
are used to repeatedly call R_DrawMaskedColumn
or R_DrawFlippedMaskedColumn
respectively.
The problem is that R_DrawRepeatMaskedColumn
and R_DrawRepeatFlippedMaskedColumn
assume that sprtopscreen
and sprbotscreen
are what define the vertical positions of the column, and the consequence is, after the first time R_DrawRepeatMaskedColumn
or R_DrawRepeatFlippedMaskedColumn
are called for a column, no more columns are rendered, since sprtopscreen
is not reset.
This issue was fixed by making R_RenderThickSideRange
set sprtopscreen
and sprbotscreen
.
Resolves #1204 (closed) and #1207 (closed).