From 71a25eef9279eae67cbe7d8d7978536bc0fc3485 Mon Sep 17 00:00:00 2001 From: MascaraSnake <jonassauer27@gmail.com> Date: Sat, 15 Jun 2019 21:58:58 +0200 Subject: [PATCH] Don't jump repeatedly when holding jump --- src/p_inter.c | 1 + src/p_user.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/p_inter.c b/src/p_inter.c index 956a13c2eb..5695673794 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1718,6 +1718,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) mcart->friction = FRACUNIT; P_ResetPlayer(player); + player->pflags |= PF_JUMPDOWN; player->powers[pw_carry] = CR_MINECART; toucher->player->pflags &= ~PF_APPLYAUTOBRAKE; P_SetTarget(&toucher->tracer, mcart); diff --git a/src/p_user.c b/src/p_user.c index b44a6f1182..5e33d55a40 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -9990,9 +9990,7 @@ static void P_MinecartThink(player_t *player) //P_ResetPlayer(player); // Player holding jump? - if (player->cmd.buttons & BT_JUMP) - player->pflags |= PF_JUMPDOWN; - else + if (!(player->cmd.buttons & BT_JUMP)) player->pflags &= ~PF_JUMPDOWN; // Handle segments. @@ -10103,8 +10101,10 @@ static void P_MinecartThink(player_t *player) // currentSpeed -= FRACUNIT/8; // Jumping - if (player->cmd.buttons & BT_JUMP) + if ((player->cmd.buttons & BT_JUMP) && !(player->pflags & PF_JUMPDOWN)) { + player->pflags |= PF_JUMPDOWN; + if (minecart->eflags & MFE_ONGROUND) minecart->eflags &= ~MFE_ONGROUND; minecart->z += P_MobjFlip(minecart); -- GitLab