diff --git a/src/dehacked.c b/src/dehacked.c index 3b463f7f..b3bbc343 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -7193,7 +7193,7 @@ static const char *const MOBJFLAG2_LIST[] = { NULL }; -static const char *const MOBJEFLAG_LIST[8] = { +static const char *const MOBJEFLAG_LIST[] = { "ONGROUND", // The mobj stands on solid floor (not on another mobj or in air) "JUSTHITFLOOR", // The mobj just hit the floor while falling, this is cleared on next frame "TOUCHWATER", // The mobj stands in a sector with water, and touches the surface diff --git a/src/p_mobj.c b/src/p_mobj.c index bbd5d3fe..e7e7b867 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1493,13 +1493,12 @@ static void P_RingZMovement(mobj_t *mo) P_AdjustMobjFloorZ_PolyObjs(mo, mo->subsector); // adjust height - mo->z += mo->momz; - if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) { mo->momz += mo->pmomz; mo->eflags &= ~MFE_APPLYPMOMZ; } + mo->z += mo->momz; // clip movement if (mo->z <= mo->floorz && !(mo->flags & MF_NOCLIPHEIGHT)) @@ -1563,13 +1562,12 @@ static boolean P_ZMovement(mobj_t *mo) P_AdjustMobjFloorZ_PolyObjs(mo, mo->subsector); // adjust height - mo->z += mo->momz; - if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) { mo->momz += mo->pmomz; mo->eflags &= ~MFE_APPLYPMOMZ; } + mo->z += mo->momz; switch (mo->type) { @@ -1989,14 +1987,14 @@ static void P_PlayerZMovement(mobj_t *mo) } // adjust height - mo->z += mo->momz; - if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) { mo->momz += mo->pmomz; mo->eflags &= ~MFE_APPLYPMOMZ; } + mo->z += mo->momz; + // Have player fall through floor? if (mo->player->playerstate == PST_DEAD || mo->player->playerstate == PST_REBORN) @@ -2256,13 +2254,12 @@ static boolean P_SceneryZMovement(mobj_t *mo) P_AdjustMobjFloorZ_PolyObjs(mo, mo->subsector); // adjust height - mo->z += mo->momz; - if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) { mo->momz += mo->pmomz; mo->eflags &= ~MFE_APPLYPMOMZ; } + mo->z += mo->momz; switch (mo->type) {