- fixed coordinate correctness issues with P_CheckFor3DFloor/CeilingHit.

This commit is contained in:
Christoph Oelckers 2016-04-20 13:17:52 +02:00
parent 60966f472f
commit 3532dd9ea1
4 changed files with 13 additions and 11 deletions

View file

@ -2399,7 +2399,7 @@ void P_ZMovement (AActor *mo, double oldfloorz)
{ // [RH] Let the sector do something to the actor
mo->Sector->SecActTarget->TriggerAction (mo, SECSPAC_HitFloor);
}
P_CheckFor3DFloorHit(mo);
P_CheckFor3DFloorHit(mo, mo->floorz);
// [RH] Need to recheck this because the sector action might have
// teleported the actor so it is no longer below the floor.
if (mo->Z() <= mo->floorz)
@ -2499,7 +2499,7 @@ void P_ZMovement (AActor *mo, double oldfloorz)
{ // [RH] Let the sector do something to the actor
mo->Sector->SecActTarget->TriggerAction (mo, SECSPAC_HitCeiling);
}
P_CheckFor3DCeilingHit(mo);
P_CheckFor3DCeilingHit(mo, mo->ceilingz);
// [RH] Need to recheck this because the sector action might have
// teleported the actor so it is no longer above the ceiling.
if (mo->Top() > mo->ceilingz)
@ -3861,11 +3861,11 @@ void AActor::CheckSectorTransition(sector_t *oldsec)
}
if (Z() == floorz)
{
P_CheckFor3DFloorHit(this);
P_CheckFor3DFloorHit(this, Z());
}
if (Top() == ceilingz)
{
P_CheckFor3DCeilingHit(this);
P_CheckFor3DCeilingHit(this, Top());
}
}
}