Maybe this is a better way to work around the DrawMasked crash...
This commit is contained in:
parent
a4ac2b000f
commit
d2c708ba93
|
@ -651,7 +651,7 @@ void R_DrawMaskedColumn(column_t *column)
|
||||||
|
|
||||||
basetexturemid = dc_texturemid;
|
basetexturemid = dc_texturemid;
|
||||||
|
|
||||||
for (; column && column->topdelta != 0xff ;)
|
for (; column->topdelta != 0xff ;)
|
||||||
{
|
{
|
||||||
// calculate unclipped screen coordinates
|
// calculate unclipped screen coordinates
|
||||||
// for post
|
// for post
|
||||||
|
@ -925,6 +925,13 @@ static void R_DrawVisSprite(vissprite_t *vis)
|
||||||
if (vis->x2 >= vid.width)
|
if (vis->x2 >= vid.width)
|
||||||
vis->x2 = vid.width-1;
|
vis->x2 = vid.width-1;
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
// Something is occasionally setting 1px-wide sprites whose frac is exactly the width of the sprite, causing crashes due to
|
||||||
|
// accessing invalid column info. Until the cause is found, let's try to correct those manually...
|
||||||
|
while (frac + vis->xiscale*(vis->x2-vis->x1) > SHORT(patch->width)<<FRACBITS && vis->x2 >= vis->x1)
|
||||||
|
vis->x2--;
|
||||||
|
#endif
|
||||||
|
|
||||||
for (dc_x = vis->x1; dc_x <= vis->x2; dc_x++, frac += vis->xiscale)
|
for (dc_x = vis->x1; dc_x <= vis->x2; dc_x++, frac += vis->xiscale)
|
||||||
{
|
{
|
||||||
if (vis->scalestep) // currently papersprites only
|
if (vis->scalestep) // currently papersprites only
|
||||||
|
|
Loading…
Reference in New Issue