From 946e2c957790b21325eb050086f52fbc9d6ed0f6 Mon Sep 17 00:00:00 2001 From: "James R." Date: Sun, 10 Sep 2023 23:49:48 -0700 Subject: [PATCH 1/3] Let death from -20 rings exit special stages --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 9e617774b..f195830fd 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4215,7 +4215,7 @@ static void K_HandleTumbleBounce(player_t *player) { player->markedfordeath = false; P_StartQuakeFromMobj(5, 32 * player->mo->scale, 512 * player->mo->scale, player->mo); - P_KillMobj(player->mo, NULL, NULL, DMG_INSTAKILL); + P_DamageMobj(player->mo, NULL, NULL, 1, DMG_INSTAKILL); return; } From 57368ab7c6b4e755877cb6c0ec07fad678d38f66 Mon Sep 17 00:00:00 2001 From: "James R." Date: Sun, 10 Sep 2023 23:50:59 -0700 Subject: [PATCH 2/3] P_KillPlayer: only do "special out" for death pits, other deaths use normal animation --- src/p_inter.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/p_inter.c b/src/p_inter.c index 9d0869509..2abf90491 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2071,7 +2071,10 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, if (player->exiting == false && specialstageinfo.valid == true) { - HU_DoTitlecardCEcho(player, "FALL OUT!", false); + if (type == DMG_DEATHPIT) + { + HU_DoTitlecardCEcho(player, "FALL OUT!", false); + } // This must be done before the condition to set // destscale = 1, so any special stage death @@ -2079,7 +2082,7 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, P_DoPlayerExit(player, PF_NOCONTEST); } - if (player->exiting) + if (player->exiting && type == DMG_DEATHPIT) { // If the player already finished the race, and // they fall into a death pit afterward, their From f21f7843a05a3d553e9b2bda58b112d2a8aedd7f Mon Sep 17 00:00:00 2001 From: "James R." Date: Sun, 10 Sep 2023 23:53:19 -0700 Subject: [PATCH 3/3] Special Stages: fullscreen text when dying at -20 rings --- src/k_kart.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/k_kart.c b/src/k_kart.c index f195830fd..63946c09b 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4213,6 +4213,12 @@ static void K_HandleTumbleBounce(player_t *player) if (player->markedfordeath) { + if (player->exiting == false && specialstageinfo.valid == true) + { + // markedfordeath is when player's die at -20 rings + HU_DoTitlecardCEcho(player, "NOT ENOUGH\\RINGS...", false); + } + player->markedfordeath = false; P_StartQuakeFromMobj(5, 32 * player->mo->scale, 512 * player->mo->scale, player->mo); P_DamageMobj(player->mo, NULL, NULL, 1, DMG_INSTAKILL);