diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 2bfc47f24..a48bb344d 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -2540,7 +2540,7 @@ void CL_ClearPlayer(INT32 playernum) } #define PlayerPointerRemove(field) \ - if (field) \ + if (P_MobjWasRemoved(field) == false) \ { \ P_RemoveMobj(field); \ P_SetTarget(&field, NULL); \ diff --git a/src/g_game.c b/src/g_game.c index b42085fc9..3c796cae4 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2234,7 +2234,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) K_RemoveFollower(&players[player]); #define PlayerPointerRemove(field) \ - if (field) \ + if (P_MobjWasRemoved(field) == false) \ { \ P_RemoveMobj(field); \ P_SetTarget(&field, NULL); \ diff --git a/src/k_kart.c b/src/k_kart.c index af197a578..40298dbaf 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4063,7 +4063,7 @@ void K_InitStumbleIndicator(player_t *player) return; } - if (player->stumbleIndicator != NULL && P_MobjWasRemoved(player->stumbleIndicator) == false) + if (P_MobjWasRemoved(player->stumbleIndicator) == false) { P_RemoveMobj(player->stumbleIndicator); } @@ -4088,7 +4088,7 @@ void K_InitSliptideZipIndicator(player_t *player) return; } - if (player->stumbleIndicator != NULL && P_MobjWasRemoved(player->sliptideZipIndicator) == false) + if (P_MobjWasRemoved(player->sliptideZipIndicator) == false) { P_RemoveMobj(player->sliptideZipIndicator); } diff --git a/src/p_inter.c b/src/p_inter.c index f3b66694d..447744aaa 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2550,10 +2550,17 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, P_SetPlayerMobjState(player->mo, player->mo->info->deathstate); - if (player->sliptideZipIndicator && !P_MobjWasRemoved(player->sliptideZipIndicator)) - P_RemoveMobj(player->sliptideZipIndicator); - if (player->stumbleIndicator && !P_MobjWasRemoved(player->stumbleIndicator)) - P_RemoveMobj(player->stumbleIndicator); +#define PlayerPointerRemove(field) \ + if (P_MobjWasRemoved(field) == false) \ + { \ + P_RemoveMobj(field); \ + P_SetTarget(&field, NULL); \ + } + + PlayerPointerRemove(player->stumbleIndicator); + PlayerPointerRemove(player->sliptideZipIndicator); + +#undef PlayerPointerRemove if (type == DMG_TIMEOVER) {