From 1a6e48de1eba6dde7df121b319524901bd94013e Mon Sep 17 00:00:00 2001 From: spherallic Date: Thu, 16 Mar 2023 12:12:58 +0100 Subject: [PATCH] Update mobj floorz/ceilingz after FOF destruction --- src/p_floor.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/p_floor.c b/src/p_floor.c index 869384b53..261ce997b 100644 --- a/src/p_floor.c +++ b/src/p_floor.c @@ -1212,6 +1212,19 @@ static boolean T_SectorHasEnemies(sector_t *sec) return false; } +static void T_UpdateMobjPlaneZ(sector_t *sec) +{ + msecnode_t *node = sec->touching_thinglist; // things touching this sector + mobj_t *mo; + while (node) + { + mo = node->m_thing; + mo->floorz = P_FloorzAtPos(mo->x, mo->y, mo->z, mo->height); + mo->ceilingz = P_CeilingzAtPos(mo->x, mo->y, mo->z, mo->height); + node = node->m_thinglist_next; + } +} + // // T_NoEnemiesThinker // @@ -1938,6 +1951,7 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover) // no longer exists (can't collide with again) rover->fofflags &= ~FOF_EXISTS; rover->master->frontsector->moved = true; + T_UpdateMobjPlaneZ(sec); // prevent objects from floating P_RecalcPrecipInSector(sec); }