From 50668e45dd919fd52817e48524acb6d5955506d7 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 2 Oct 2022 22:30:27 +0200 Subject: [PATCH] - had to partially revert the math for panning to integers. The higher precision causes panning speed differences that are visible. --- source/games/sw/src/sector.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/games/sw/src/sector.cpp b/source/games/sw/src/sector.cpp index c7bb808ab..d409c8b24 100644 --- a/source/games/sw/src/sector.cpp +++ b/source/games/sw/src/sector.cpp @@ -2860,7 +2860,7 @@ short AnimSetVelAdj(short anim_ndx, double vel_adj) void DoPanning(void) { - double nx, ny; + int nx, ny; int i; sectortype* sectp; walltype* wallp; @@ -2870,8 +2870,8 @@ void DoPanning(void) { sectp = actor->sector(); - nx = actor->vel.X * actor->spr.angle.Cos(); - ny = actor->vel.X * actor->spr.angle.Sin(); + nx = xs_CRoundToInt(actor->vel.X * actor->spr.angle.Cos() * 0.25); + ny = xs_CRoundToInt(actor->vel.X * actor->spr.angle.Sin() * 0.25); sectp->addfloorxpan((float)nx); sectp->addfloorypan((float)ny); @@ -2882,8 +2882,8 @@ void DoPanning(void) { sectp = actor->sector(); - nx = actor->vel.X * actor->spr.angle.Cos(); - ny = actor->vel.X * actor->spr.angle.Sin(); + nx = xs_CRoundToInt(actor->vel.X * actor->spr.angle.Cos() * 0.25); + ny = xs_CRoundToInt(actor->vel.X * actor->spr.angle.Sin() * 0.25); sectp->addceilingxpan((float)nx); sectp->addceilingypan((float)ny); @@ -2894,8 +2894,8 @@ void DoPanning(void) { wallp = actor->tempwall; - nx = actor->vel.X * actor->spr.angle.Cos(); - ny = actor->vel.X * actor->spr.angle.Sin(); + nx = xs_CRoundToInt(actor->vel.X * actor->spr.angle.Cos() * 0.25); + ny = xs_CRoundToInt(actor->vel.X * actor->spr.angle.Sin() * 0.25); wallp->addxpan((float)nx); wallp->addypan((float)ny);