From aa39635f3140827137df3e5a290d54f6a319a478 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Sun, 20 Jul 2025 15:25:16 -0400 Subject: [PATCH] Bring back K_JustBumpedException again --- src/k_kart.c | 20 ++++++++++++++++++-- src/p_inter.c | 1 - 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 47f540908..22f9fb2ab 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1988,6 +1988,22 @@ static boolean K_CheckMobjFlippedOver(mobj_t* mobj1, mobj_t* mobj2) (mobj2->player && (mobj2->player->pflags & PF_JUSTFLIPPED))); } +static boolean K_JustBumpedException(mobj_t *mobj) +{ + switch (mobj->type) + { + case MT_WALLSPIKE: + return true; + default: + break; + } + + if (mobj->flags & MF_PUSHABLE) + return true; + + return false; +} + boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid) { mobj_t *fx; @@ -2034,13 +2050,13 @@ boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean sol // Don't bump if you've recently bumped - if (mobj1->player && mobj1->player->justbumped) + if (mobj1->player && mobj1->player->justbumped && !K_JustBumpedException(mobj2)) { mobj1->player->justbumped = bumptime; return false; } - if (mobj2->player && mobj2->player->justbumped) + if (mobj2->player && mobj2->player->justbumped && !K_JustBumpedException(mobj1)) { mobj2->player->justbumped = bumptime; return false; diff --git a/src/p_inter.c b/src/p_inter.c index e26c80a52..b9face64a 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2361,7 +2361,6 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da K_KartPainEnergyFling(player); break; case DMG_VOLTAGE: - painsound = false; case DMG_NORMAL: default: K_SpinPlayer(player, inflictor, source, KSPIN_SPINOUT);