mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-10 23:02:08 +00:00
- fixed: For allowing an unblocking move, PIT_CheckThing used the wrong actor's position. This was causing monster pile-ups with moving ceilings.
- don't let P_PushUp move any actors with the same z as the pushing actor. This should solve most monster pile-ups, but the entire logic here needs some serious rethinking. The only reason this doesn't cause more problems is some fudging in several other places.
This commit is contained in:
parent
ebca170e73
commit
6949afc334
1 changed files with 2 additions and 2 deletions
|
@ -1140,7 +1140,7 @@ bool PIT_CheckThing(FMultiBlockThingsIterator &it, FMultiBlockThingsIterator::Ch
|
|||
DVector3 oldpos = tm.thing->PosRelative(thing);
|
||||
// Both actors already overlap. To prevent them from remaining stuck allow the move if it
|
||||
// takes them further apart or the move does not change the position (when called from P_ChangeSector.)
|
||||
if (oldpos.X == thing->X() && oldpos.Y == thing->Y())
|
||||
if (tm.pos.X == tm.thing->X() && tm.pos.Y == tm.thing->Y())
|
||||
{
|
||||
unblocking = true;
|
||||
}
|
||||
|
@ -5487,7 +5487,7 @@ void P_FindAboveIntersectors(AActor *actor)
|
|||
// not what is wanted here.
|
||||
continue;
|
||||
}
|
||||
if (thing->Z() >= actor->Z() &&
|
||||
if (thing->Z() > actor->Z() &&
|
||||
thing->Z() <= actor->Top())
|
||||
{ // Thing intersects above the base
|
||||
intersectors.Push(thing);
|
||||
|
|
Loading…
Reference in a new issue