mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-10 23:02:08 +00:00
- 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:
parent
0e07113752
commit
44a3e94003
1 changed files with 10 additions and 5 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue