diff --git a/src/r_things.cpp b/src/r_things.cpp index eb7d311c0..73cea1693 100644 --- a/src/r_things.cpp +++ b/src/r_things.cpp @@ -1012,10 +1012,6 @@ static void R_DrawVisSprite(vissprite_t *vis) frac = vis->startfrac; windowtop = windowbottom = sprbotscreen = INT32_MAX; - skin_t *myskin = ((skin_t *)vis->mobj->skin); - if (!(vis->cut & SC_PRECIP) && (vis->mobj->skin) && myskin->highresscale != FRACUNIT) - this_scale = FixedMul(this_scale, myskin->highresscale); - if (this_scale <= 0) this_scale = 1; @@ -1506,8 +1502,6 @@ static void R_ProjectDropShadow( shadow->gzt = groundz + patch->height * shadowyscale / 2; shadow->gz = shadow->gzt - patch->height * shadowyscale; shadow->texturemid = FixedMul(interp.scale, FixedDiv(shadow->gzt - viewz, shadowyscale)); - if (thing->skin && ((skin_t *)thing->skin)->highresscale != FRACUNIT) - shadow->texturemid = FixedMul(shadow->texturemid, ((skin_t *)thing->skin)->highresscale); shadow->scalestep = 0; shadow->shear.tan = shadowskew; // repurposed variable @@ -1756,6 +1750,8 @@ static void R_ProjectSprite(mobj_t *thing) R_InterpolateMobjState(interptarg, R_GetTimeFrac(RTF_LEVEL), &interp); this_scale = interp.scale; + if (thing->skin && ((skin_t *)thing->skin)->highresscale != FRACUNIT) + this_scale = FixedMul(this_scale, ((skin_t *)thing->skin)->highresscale); // sprite offset interp.x += thing->sprxoff; @@ -1877,9 +1873,6 @@ static void R_ProjectSprite(mobj_t *thing) I_Assert(lump < max_spritelumps); - if (thing->skin && ((skin_t *)thing->skin)->highresscale != FRACUNIT) - this_scale = FixedMul(this_scale, ((skin_t *)thing->skin)->highresscale); - spr_width = spritecachedinfo[lump].width; spr_height = spritecachedinfo[lump].height; spr_offset = spritecachedinfo[lump].offset; @@ -2373,7 +2366,7 @@ static void R_ProjectSprite(mobj_t *thing) vis->xscale = FixedMul(spritexscale, xscale); //SoM: 4/17/2000 vis->scale = FixedMul(spriteyscale, yscale); //<thingscale = interp.scale; + vis->thingscale = this_scale; vis->spritexscale = spritexscale; vis->spriteyscale = spriteyscale;