Don't apply wall light offsets on brightness 255 or 0

Makes skyboxes look better
This commit is contained in:
Sally Coolatta 2022-05-24 19:17:33 -04:00
parent 8b9adb1b4c
commit b777b3f96a
3 changed files with 13 additions and 6 deletions

View file

@ -2337,6 +2337,11 @@ void P_UpdateSegLightOffset(seg_t *li)
#endif
}
boolean P_ApplySegLightOffset(UINT8 baselightlevel)
{
return (baselightlevel < 255 && baselightlevel > 0);
}
static void P_InitializeSeg(seg_t *seg)
{
if (seg->linedef)

View file

@ -113,6 +113,7 @@ void P_LoadSoundsRange(UINT16 wadnum, UINT16 first, UINT16 num);
void P_LoadMusicsRange(UINT16 wadnum, UINT16 first, UINT16 num);
void P_WriteThings(void);
void P_UpdateSegLightOffset(seg_t *li);
boolean P_ApplySegLightOffset(UINT8 baselightlevel);
size_t P_PrecacheLevelFlats(void);
void P_AllocMapHeader(INT16 i);

View file

@ -286,7 +286,7 @@ void R_RenderMaskedSegRange(drawseg_t *ds, INT32 x1, INT32 x2)
if (rlight->extra_colormap && (rlight->extra_colormap->flags & CMF_FOG))
;
else
else if (P_ApplySegLightOffset(lightnum))
lightnum += curline->lightOffset;
rlight->lightnum = lightnum;
@ -303,7 +303,7 @@ void R_RenderMaskedSegRange(drawseg_t *ds, INT32 x1, INT32 x2)
if ((R_CheckColumnFunc(COLDRAWFUNC_FOG) == true)
|| (frontsector->extra_colormap && (frontsector->extra_colormap->flags & CMF_FOG)))
;
else
else if (P_ApplySegLightOffset(lightnum))
lightnum += curline->lightOffset;
if (lightnum < 0)
@ -770,7 +770,7 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor)
if (pfloor->flags & FF_FOG || rlight->flags & FF_FOG || (rlight->extra_colormap && (rlight->extra_colormap->flags & CMF_FOG)))
;
else
else if (P_ApplySegLightOffset(rlight->lightnum))
rlight->lightnum += curline->lightOffset;
p++;
@ -793,7 +793,7 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor)
if (pfloor->flags & FF_FOG || (frontsector->extra_colormap && (frontsector->extra_colormap->flags & CMF_FOG)))
;
else
else if (P_ApplySegLightOffset(lightnum))
lightnum += curline->lightOffset;
if (lightnum < 0)
@ -1383,7 +1383,7 @@ static void R_RenderSegLoop (void)
if (dc_lightlist[i].extra_colormap)
;
else
else if (P_ApplySegLightOffset(lightnum))
lightnum += curline->lightOffset;
if (lightnum < 0)
@ -2436,7 +2436,8 @@ void R_StoreWallRange(INT32 start, INT32 stop)
// OPTIMIZE: get rid of LIGHTSEGSHIFT globally
lightnum = (frontsector->lightlevel >> LIGHTSEGSHIFT);
lightnum += curline->lightOffset;
if (P_ApplySegLightOffset(lightnum))
lightnum += curline->lightOffset;
if (lightnum < 0)
walllights = scalelight[0];