Papersprite angle interpolation

Makes the ending signpost smooth
This commit is contained in:
Sally Coolatta 2022-04-25 18:15:59 -04:00 committed by Eidolon
parent 7dd7cccd79
commit f34a61156c
2 changed files with 5 additions and 6 deletions

View file

@ -5069,7 +5069,6 @@ static void HWR_ProjectSprite(mobj_t *thing)
INT32 heightsec, phs; INT32 heightsec, phs;
const boolean splat = R_ThingIsFloorSprite(thing); const boolean splat = R_ThingIsFloorSprite(thing);
const boolean papersprite = (R_ThingIsPaperSprite(thing) && !splat); const boolean papersprite = (R_ThingIsPaperSprite(thing) && !splat);
angle_t mobjangle = (thing->player ? thing->player->drawangle : thing->angle);
float z1, z2; float z1, z2;
fixed_t spr_width, spr_height; fixed_t spr_width, spr_height;
@ -5275,8 +5274,8 @@ static void HWR_ProjectSprite(mobj_t *thing)
if (papersprite) if (papersprite)
{ {
rightsin = FIXED_TO_FLOAT(FINESINE((mobjangle)>>ANGLETOFINESHIFT)); rightsin = FIXED_TO_FLOAT(FINESINE(interp.angle >> ANGLETOFINESHIFT));
rightcos = FIXED_TO_FLOAT(FINECOSINE((mobjangle)>>ANGLETOFINESHIFT)); rightcos = FIXED_TO_FLOAT(FINECOSINE(interp.angle >> ANGLETOFINESHIFT));
} }
else else
{ {

View file

@ -1742,8 +1742,8 @@ static void R_ProjectSprite(mobj_t *thing)
offset2 *= -1; offset2 *= -1;
} }
cosmul = FINECOSINE(thing->angle>>ANGLETOFINESHIFT); cosmul = FINECOSINE(interp.angle >> ANGLETOFINESHIFT);
sinmul = FINESINE(thing->angle>>ANGLETOFINESHIFT); sinmul = FINESINE(interp.angle >> ANGLETOFINESHIFT);
tr_x += FixedMul(offset, cosmul); tr_x += FixedMul(offset, cosmul);
tr_y += FixedMul(offset, sinmul); tr_y += FixedMul(offset, sinmul);
@ -1759,7 +1759,7 @@ static void R_ProjectSprite(mobj_t *thing)
paperoffset = -paperoffset; paperoffset = -paperoffset;
paperdistance = -paperdistance; paperdistance = -paperdistance;
} }
centerangle = viewangle - thing->angle; centerangle = viewangle - interp.angle;
tr_x += FixedMul(offset2, cosmul); tr_x += FixedMul(offset2, cosmul);
tr_y += FixedMul(offset2, sinmul); tr_y += FixedMul(offset2, sinmul);