diff --git a/src/deh_tables.c b/src/deh_tables.c index e7e211f0c..b1f5d148a 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -5806,6 +5806,8 @@ const char *const MOBJFLAG_LIST[] = { "GRENADEBOUNCE", "RUNSPAWNFUNC", "DONTENCOREMAP", + "PICKUPFROMBELOW", + "NOSQUISH", NULL }; diff --git a/src/p_mobj.c b/src/p_mobj.c index afcc87c3e..d347386bd 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -3574,7 +3574,8 @@ static void P_CheckFloatbobPlatforms(mobj_t *mobj) static void P_SquishThink(mobj_t *mobj) { - if (!(mobj->eflags & MFE_SLOPELAUNCHED)) + if (!(mobj->flags & MF_NOSQUISH) && + !(mobj->eflags & MFE_SLOPELAUNCHED)) { K_Squish(mobj); } diff --git a/src/p_mobj.h b/src/p_mobj.h index 2373bdca4..e5bba25de 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -159,6 +159,8 @@ typedef enum MF_DONTENCOREMAP = 1<<28, // Hitbox extends just as far below as above. MF_PICKUPFROMBELOW = 1<<29, + // Disable momentum-based squash and stretch. + MF_NOSQUISH = 1<<30, // free: to and including 1<<31 } mobjflag_t;