From 8c79e57f898570f5f760c388a30eaad39471ce09 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Sat, 9 Mar 2019 16:39:43 -0500 Subject: [PATCH] Don't lose rings with a shield on hit --- src/p_inter.c | 4 ++++ src/p_user.c | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/p_inter.c b/src/p_inter.c index fe7619002..0ffb190c9 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -3289,6 +3289,10 @@ void P_PlayerRingBurst(player_t *player, INT32 num_rings) if (!player) return; + // Has a shield? Don't lose your rings! + if (player->kartstuff[k_itemtype] == KITEM_THUNDERSHIELD) + return; + // 20 is the ring cap in kart if (num_rings > 20) num_rings = 20; diff --git a/src/p_user.c b/src/p_user.c index d7060ce2b..fa198c1b6 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1083,10 +1083,12 @@ void P_PlayLivesJingle(player_t *player) void P_PlayRinglossSound(mobj_t *source) { - if (source->player && source->player->kartstuff[k_rings] <= 0) - S_StartSound(source, sfx_s1a6); + if (source->player && source->player->kartstuff[k_itemtype] == KITEM_THUNDERSHIELD) + S_StartSound(source, sfx_s1a3); // Shield hit (no ring loss) + else if (source->player && source->player->kartstuff[k_rings] <= 0) + S_StartSound(source, sfx_s1a6); // Ring debt (lessened ring loss) else - S_StartSound(source, sfx_s1c6); + S_StartSound(source, sfx_s1c6); // Normal ring loss sound } void P_PlayDeathSound(mobj_t *source)