diff --git a/src/p_inter.c b/src/p_inter.c index 3aed35f842862e447ebbfc61324bf06c93afd1e6..0c81d7833247387b9c30f60ce40666eff8b1e601 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -3660,9 +3660,6 @@ void P_PlayerRingBurst(player_t *player, INT32 num_rings) } if (player->mo->eflags & MFE_VERTICALFLIP) mo->momz *= -1; - - if (P_IsObjectOnGround(player->mo)) - player->powers[pw_carry] = CR_NONE; } player->losstime += 10*TICRATE; diff --git a/src/p_mobj.c b/src/p_mobj.c index bfec5af7874a0403d5f2d31da38b0ef9c5c0bd8f..7163dbe79f3c9184714dfcb1bfee57f2ad5a6cb6 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8948,7 +8948,7 @@ void P_PushableThinker(mobj_t *mobj) if (mobj->type == MT_MINECART && mobj->health) { // If player is ded, remove this minecart - if (!mobj->target || P_MobjWasRemoved(mobj->target) || !mobj->target->health) + if (!mobj->target || P_MobjWasRemoved(mobj->target) || !mobj->target->health || !mobj->target->player || mobj->target->player->powers[pw_carry] != CR_MINECART) { P_KillMobj(mobj, NULL, NULL, 0); return;