From 11f7eb4b2640465579c1415ec1fb8a099851ab3b Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Sun, 11 Feb 2024 23:43:42 -0700 Subject: [PATCH] Guard against out-of-range pitblame, reset pitblame when triggered --- src/p_inter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/p_inter.c b/src/p_inter.c index 87c8dbdd0..447d05c58 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2502,10 +2502,12 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, if (gametyperules & (GTR_BUMPERS|GTR_CHECKPOINTS)) { - if ((player->pitblame != -1) && (playeringame[player->pitblame]) && (!players[player->pitblame].spectator) + if ((player->pitblame > -1) && (player->pitblame < MAXPLAYERS) + && (playeringame[player->pitblame]) && (!players[player->pitblame].spectator) && (players[player->pitblame].mo) && (!P_MobjWasRemoved(players[player->pitblame].mo))) { P_DamageMobj(player->mo, players[player->pitblame].mo, players[player->pitblame].mo, 1, DMG_KARMA); + player->pitblame = -1; } else if (player->mo->health > 1 || battleprisons) {