- 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
parent 0e07113752
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;