diff --git a/src/p_mobj.c b/src/p_mobj.c index 1c963e2b5ae0377d8cc3633c0eb1fb1ebcc9bae2..ee0fd03bb9241282915780965e9e7941e0288d03 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -2033,9 +2033,10 @@ void P_XYMovement(mobj_t *mo) FIXED_TO_FLOAT(AngleFixed(newangle)), FIXED_TO_FLOAT(AngleFixed(oldangle-newangle)) );*/ - }/* else if (predictedz-mo->z > abs(slopemom.z/2)) { // Now check if we were supposed to stick to this slope - This may no longer be needed and causes constant 'floor landing' when standing at the top of slopes. + } else if (predictedz-mo->z > abs(slopemom.z/2) && mo->z <= mo->floorz) { // Now check if we were supposed to stick to this slope - mo->z <= mo->floorz means 'only do this if we did a stairstep up' + //CONS_Printf("%d-%d > %d\n", (predictedz), (mo->z), (slopemom.z/2)); P_SlopeLaunch(mo); - }*/ + } } else if (moved && mo->standingslope && predictedz) { angle_t moveangle = R_PointToAngle2(0, 0, mo->momx, mo->momy); angle_t newangle = FixedMul((signed)mo->standingslope->zangle, FINECOSINE((moveangle - mo->standingslope->xydirection) >> ANGLETOFINESHIFT));