Merge branch 'polyobject-plane-stability' into 'next'

Use floating-point math for polyobject planes as well.

Closes #581

See merge request STJr/SRB2!1533
This commit is contained in:
sphere 2021-07-12 12:47:35 -04:00
commit 113cedd4b6

View file

@ -380,9 +380,11 @@ visplane_t *R_FindPlane(fixed_t height, INT32 picnum, INT32 lightlevel,
{ {
if (polyobj->angle != 0) if (polyobj->angle != 0)
{ {
angle_t fineshift = polyobj->angle >> ANGLETOFINESHIFT; float ang = ANG2RAD(polyobj->angle);
xoff -= FixedMul(FINECOSINE(fineshift), polyobj->centerPt.x)+FixedMul(FINESINE(fineshift), polyobj->centerPt.y); float x = FixedToFloat(polyobj->centerPt.x);
yoff -= FixedMul(FINESINE(fineshift), polyobj->centerPt.x)-FixedMul(FINECOSINE(fineshift), polyobj->centerPt.y); float y = FixedToFloat(polyobj->centerPt.y);
xoff -= FloatToFixed(x * cos(ang) + y * sin(ang));
yoff -= FloatToFixed(x * sin(ang) - y * cos(ang));
} }
else else
{ {