Skip to content
Snippets Groups Projects

Fix 3D floor sides not rendering properly if a light list was involved

Merged Lactozilla requested to merge fix-1207 into next

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).

Edited by Lactozilla

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading