diff --git a/src/r_things.c b/src/r_things.c index f8456fa11885c8ed0dc427b3fdf9c2c29dc4298b..385cbaaa5c4887b2e72e66f30f691a0dd4960f76 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -3194,9 +3194,11 @@ static boolean R_CheckSpriteVisible(vissprite_t *spr, INT32 x1, INT32 x2) INT16 szt = spr->szt; fixed_t texturemid, yscale, scalestep = spr->scalestep; + INT32 height; if (scalestep) { + height = spr->patch->height; yscale = spr->scale; scalestep = FixedMul(scalestep, spr->spriteyscale); @@ -3210,8 +3212,10 @@ static boolean R_CheckSpriteVisible(vissprite_t *spr, INT32 x1, INT32 x2) { if (scalestep) { - szt = (INT16)((centeryfrac - FixedMul(texturemid, yscale))>>FRACBITS); - sz = (INT16)((centeryfrac - FixedMul(texturemid, yscale))>>FRACBITS); + fixed_t top = centeryfrac - FixedMul(texturemid, yscale); + fixed_t bottom = top + (height * yscale); + szt = (INT16)(top >> FRACBITS); + sz = (INT16)(bottom >> FRACBITS); yscale += scalestep; }