- Fixed: P_CheckPosition() should checks all lines contacted by the actor. Stopping once it finds

one blocking line will prevent any further lines with specials from activating their specials.

SVN r3198 (trunk)
This commit is contained in:
Randy Heit 2011-05-08 16:58:53 +00:00
commit 44a3e94003

View file

@ -1401,15 +1401,20 @@ bool P_CheckPosition (AActor *thing, fixed_t x, fixed_t y, FCheckPosition &tm)
//bool onthing = (thingdropoffz != tmdropoffz);
tm.floorz = tm.dropoffz;
bool good = true;
while ((ld = it.Next()))
{
if (!PIT_CheckLine(ld, box, tm))
return false;
good &= PIT_CheckLine(ld, box, tm);
}
if (tm.ceilingz - tm.floorz < thing->height)
if (!good)
{
return false;
}
if (tm.ceilingz - tm.floorz < thing->height)
{
return false;
}
if (tm.touchmidtex)
{
tm.dropoffz = tm.floorz;