diff --git a/src/d_clisrv.c b/src/d_clisrv.c index dc6b93bc8..f1cacc833 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -5618,7 +5618,7 @@ static INT16 Consistancy(void) if (TypeIsNetSynced(mo->type) == false) continue; - if (mo->flags & (MF_SPECIAL | MF_SOLID | MF_PUSHABLE | MF_BOSS | MF_MISSILE | MF_SPRING | MF_FIRE | MF_ENEMY | MF_PAIN | MF_DONTPUNT)) + if (mo->flags & (MF_SPECIAL | MF_SOLID | MF_PUSHABLE | MF_BOSS | MF_MISSILE | MF_SPRING | MF_ELEMENTAL | MF_FIRE | MF_ENEMY | MF_PAIN | MF_DONTPUNT)) { ret -= mo->type; ret += mo->x; diff --git a/src/deh_tables.c b/src/deh_tables.c index d521a63de..daaa3ec59 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -5987,7 +5987,7 @@ const char *const MOBJFLAG_LIST[] = { "SLOPE", "MISSILE", "SPRING", - "\x01", // free: 1<<17 (name un-matchable) + "ELEMENTAL", "NOTHINK", "NOCLIPHEIGHT", "ENEMY", diff --git a/src/p_mobj.h b/src/p_mobj.h index d469552cb..61780c004 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -137,7 +137,8 @@ typedef enum MF_MISSILE = 1<<15, // Item is a spring. MF_SPRING = 1<<16, - // free: 1<<17 + // Object is elemental. If it is punted, it will evaporate. + MF_ELEMENTAL = 1<<17, // Don't run the thinker for this object. MF_NOTHINK = 1<<18, // Don't adjust z if below or above floorz/ceilingz diff --git a/src/r_bbox.c b/src/r_bbox.c index b828e989d..ce4f3d758 100644 --- a/src/r_bbox.c +++ b/src/r_bbox.c @@ -240,7 +240,7 @@ static boolean is_tangible (mobj_t *thing) // These objects probably do nothing! :D if ((thing->flags & (MF_SPECIAL|MF_SOLID|MF_SHOOTABLE |MF_PUSHABLE|MF_BOSS|MF_MISSILE|MF_SPRING - |MF_ENEMY|MF_PAIN|MF_DONTPUNT + |MF_ELEMENTAL|MF_ENEMY|MF_PAIN|MF_DONTPUNT |MF_PICKUPFROMBELOW)) == 0U) { return false;