From d3b6dfb0f1f0a96db18c1162fdb4d7975a99c8cf Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 10 Apr 2009 06:50:39 +0000 Subject: [PATCH] - Extended MF5_MOVEWITHSECTOR so that it always keeps the actor on the ground of a moving floor, regardless of movement speed. For NOBLOCKMAP items this is necessary because otherwise they can be left in the air and it also adds some options for other things. SVN r1540 (trunk) --- docs/rh-log.txt | 8 +++++++- src/p_map.cpp | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 2b06d4f60..15c6a0985 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,10 @@ -April 9, 2009 +April 10, 2009 (Changes by Graf Zahl) +- Extended MF5_MOVEWITHSECTOR so that it always keeps the actor on the ground + of a moving floor, regardless of movement speed. For NOBLOCKMAP items this + is necessary because otherwise they can be left in the air and it also adds + some options for other things. + +April 9, 2009 - Changed A_FreezeDeathChunks() so that instead of directly destroying an actor, it sets it to the "Null" state, which will make it invisible and destroy it one tic later. diff --git a/src/p_map.cpp b/src/p_map.cpp index 88e514eb4..9edf30dec 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -4442,7 +4442,7 @@ void PIT_FloorDrop (AActor *thing, FChangePosition *cpos) thing->z = thing->z - oldfloorz + thing->floorz; P_CheckFakeFloorTriggers (thing, oldz); } - else if ((thing->flags & MF_NOGRAVITY) || + else if ((thing->flags & MF_NOGRAVITY) || (thing->flags5 & MF5_MOVEWITHSECTOR) || (((cpos->sector->Flags & SECF_FLOORDROP) || cpos->moveamt < 9*FRACUNIT) && thing->z - thing->floorz <= cpos->moveamt)) { @@ -4634,7 +4634,11 @@ bool P_ChangeSector (sector_t *sector, int crunch, int amt, int floorOrCeil, boo if (!n->visited) { n->visited = true; - if (!(n->m_thing->flags&MF_NOBLOCKMAP)) iterator(n->m_thing, &cpos); + if (!(n->m_thing->flags & MF_NOBLOCKMAP) || //jff 4/7/98 don't do these + (n->m_thing->flags5 & MF5_MOVEWITHSECTOR)) + { + iterator(n->m_thing, &cpos); + } break; } }