From e3a6b6e15c14649b56c73a55d25d94b4e86d6b0f Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Fri, 16 Sep 2022 06:04:33 -0400 Subject: [PATCH] Implement overlay speed --- src/k_terrain.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/k_terrain.c b/src/k_terrain.c index 65a49f640..09b4958e3 100644 --- a/src/k_terrain.c +++ b/src/k_terrain.c @@ -1074,6 +1074,16 @@ void K_UpdateTerrainOverlay(mobj_t *mo) mo->terrainOverlay->movefactor = o->scale; K_SetTerrainOverlayState(mo, act, st); + + if (mo->state->tics > 1 && o->speed > 0) + { + const fixed_t maxSpeed = 60 * mapobjectscale; + fixed_t speed = P_AproxDistance(mo->momx, mo->momy); + fixed_t speedDiv = FRACUNIT + FixedMul(FixedDiv(speed, maxSpeed), o->speed); + tic_t animSpeed = max(FixedDiv(mo->state->tics, speedDiv), 1); + + mo->tics = min(mo->tics, animSpeed); + } } /*--------------------------------------------------