Bring back K_JustBumpedException again

This commit is contained in:
NepDisk 2025-07-20 15:25:16 -04:00
parent 3f2006590b
commit aa39635f31
2 changed files with 18 additions and 3 deletions

View file

@ -1988,6 +1988,22 @@ static boolean K_CheckMobjFlippedOver(mobj_t* mobj1, mobj_t* mobj2)
(mobj2->player && (mobj2->player->pflags & PF_JUSTFLIPPED))); (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) boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid)
{ {
mobj_t *fx; 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 // 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; mobj1->player->justbumped = bumptime;
return false; return false;
} }
if (mobj2->player && mobj2->player->justbumped) if (mobj2->player && mobj2->player->justbumped && !K_JustBumpedException(mobj1))
{ {
mobj2->player->justbumped = bumptime; mobj2->player->justbumped = bumptime;
return false; return false;

View file

@ -2361,7 +2361,6 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
K_KartPainEnergyFling(player); K_KartPainEnergyFling(player);
break; break;
case DMG_VOLTAGE: case DMG_VOLTAGE:
painsound = false;
case DMG_NORMAL: case DMG_NORMAL:
default: default:
K_SpinPlayer(player, inflictor, source, KSPIN_SPINOUT); K_SpinPlayer(player, inflictor, source, KSPIN_SPINOUT);