diff --git a/src/p_user.c b/src/p_user.c index c5f919c78ec4f6ee73f8535f730ef7883e549cc3..65397c287c9d2c56e6706720dc6373ab031eee1c 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1085,6 +1085,9 @@ void P_ResetPlayer(player_t *player) player->powers[pw_carry] = CR_NONE; } + if (player->powers[pw_carry] == CR_MACESPIN || player->powers[pw_carry] == CR_GENERIC) + player->mo->flags &= ~MF_NOCLIPHEIGHT; + if (!(player->powers[pw_carry] == CR_NIGHTSMODE || player->powers[pw_carry] == CR_NIGHTSFALL || player->powers[pw_carry] == CR_BRAKGOOP || player->powers[pw_carry] == CR_MINECART)) player->powers[pw_carry] = CR_NONE; @@ -4426,6 +4429,8 @@ void P_DoJump(player_t *player, boolean soundandstate) if (!(player->mo->tracer->flags & MF_MISSILE)) // Missiles remember their owner! P_SetTarget(&player->mo->tracer->target, NULL); P_SetTarget(&player->mo->tracer, NULL); + player->mo->flags &= ~MF_NOCLIPHEIGHT; + } else if (player->powers[pw_carry] == CR_ROPEHANG) { @@ -5257,6 +5262,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd) player->powers[pw_carry] = CR_NONE; P_SetTarget(&player->mo->tracer, NULL); player->powers[pw_flashing] = TICRATE/4; + player->mo->flags &= ~MF_NOCLIPHEIGHT; } // can't jump while in air, can't jump while jumping else if (onground || player->climbing || player->powers[pw_carry])