-Fix player being able to push up spikes

-Minor tweaks to make paper collision slightly more reliable
This commit is contained in:
MascaraSnake 2019-11-25 22:35:40 +01:00
parent 64cda33d6d
commit f54eeb82b7
1 changed files with 6 additions and 6 deletions

View File

@ -1719,8 +1719,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
}
}
if ((tmthing->flags & MF_SPRING || tmthing->type == MT_STEAM) && (thing->player))
; // springs and gas jets should never be able to step up onto a player
if ((tmthing->flags & MF_SPRING || tmthing->type == MT_STEAM || tmthing->type == MT_SPIKE || tmthing->type == MT_WALLSPIKE) && (thing->player))
; // springs, gas jets and springs should never be able to step up onto a player
// z checking at last
// Treat noclip things as non-solid!
else if ((thing->flags & (MF_SOLID|MF_NOCLIP)) == MF_SOLID
@ -3759,25 +3759,25 @@ void P_SlideMove(mobj_t *mo)
v2.y = tmhitthing->y + sinradius;
// Can we box collision our way into smooth movement..?
if (mo->y + mo->radius <= min(v1.y, v2.y))
if (sinradius && mo->y + mo->radius <= min(v1.y, v2.y))
{
mo->momy = 0;
P_TryMove(mo, mo->x + mo->momx, min(v1.y, v2.y) - mo->radius, true);
return;
}
else if (mo->y - mo->radius >= max(v1.y, v2.y))
else if (sinradius && mo->y - mo->radius >= max(v1.y, v2.y))
{
mo->momy = 0;
P_TryMove(mo, mo->x + mo->momx, max(v1.y, v2.y) + mo->radius, true);
return;
}
else if (mo->x + mo->radius <= min(v1.x, v2.x))
else if (cosradius && mo->x + mo->radius <= min(v1.x, v2.x))
{
mo->momx = 0;
P_TryMove(mo, min(v1.x, v2.x) - mo->radius, mo->y + mo->momy, true);
return;
}
else if (mo->x - mo->radius >= max(v1.x, v2.x))
else if (cosradius && mo->x - mo->radius >= max(v1.x, v2.x))
{
mo->momx = 0;
P_TryMove(mo, max(v1.x, v2.x) + mo->radius, mo->y + mo->momy, true);