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)