From cfd826076252d522395986bbd3250df5bad56a6c Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Thu, 25 Sep 2025 23:17:19 -0400 Subject: [PATCH] Remove ringboost only when taking non-stumble damage --- src/k_kart.c | 2 +- src/p_inter.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index bd9cf3686..b72b3abdb 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10462,7 +10462,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->tricklock = 0; } - if (P_PlayerInPain(player) || player->respawn.state != RESPAWNST_NONE) + if ((P_PlayerInPain(player) && G_CompatLevel(0x0010)) || player->respawn.state != RESPAWNST_NONE) { player->ringboost = 0; } diff --git a/src/p_inter.c b/src/p_inter.c index 21446414d..7274f13f8 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2862,6 +2862,8 @@ static boolean P_FlashingException(const player_t *player, const mobj_t *inflict return true; } +// P_DamageMobj for 0x0010 compat. +// I know this sucks ass, but this function is legitimately too complicated to add more behavior switches. static boolean P_DamageMobjCompat(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 damage, UINT8 damagetype) { player_t *player; @@ -4362,6 +4364,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da K_PopPlayerShield(player); player->instashield = 15; K_PlayPainSound(target, source); + player->ringboost = 0; } if (gametyperules & GTR_BUMPERS)