From c3bb2c85397bc7586595585595b584e320c1e9f9 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Tue, 31 May 2022 07:28:30 -0400 Subject: [PATCH] Add bouncing followers Set `BobAmp` on a ground follower to set its bouncing velocity. --- src/k_follower.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/k_follower.c b/src/k_follower.c index 76a2d9dd7..af43b80f2 100644 --- a/src/k_follower.c +++ b/src/k_follower.c @@ -430,16 +430,30 @@ void K_HandleFollower(player_t *player) if (player->follower->z <= fh) { player->follower->z = fh; - if (player->follower->momz < 0) + + if (!(player->mo->eflags & MFE_VERTICALFLIP) && player->follower->momz <= 0) { + // Ground bounce + player->follower->momz = P_GetMobjZMovement(player->mo) + FixedMul(fl.bobamp, player->follower->scale); + } + else if (player->follower->momz < 0) + { + // Ceiling clip player->follower->momz = 0; } } else if (player->follower->z >= ch) { player->follower->z = ch; - if (player->follower->momz > 0) + + if ((player->mo->eflags & MFE_VERTICALFLIP) && player->follower->momz >= 0) { + // Ground bounce + player->follower->momz = P_GetMobjZMovement(player->mo) - FixedMul(fl.bobamp, player->follower->scale); + } + else if (player->follower->momz > 0) + { + // Ceiling clip player->follower->momz = 0; } }