diff --git a/src/dehacked.c b/src/dehacked.c index c21e8fb9..60f3b059 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -6684,6 +6684,7 @@ static const char *const MOBJFLAG2_LIST[] = { "EXPLOSION", // Thrown ring has explosive properties "SCATTER", // Thrown ring has scatter properties "BEYONDTHEGRAVE",// Source of this missile has died and has since respawned. + "PUSHED", // Mobj was already pushed this tic "SLIDEPUSH", // MF_PUSHABLE that pushes continuously. "CLASSICPUSH", // Drops straight down when object has negative Z. "STANDONME", // While not pushable, stand on me anyway. @@ -6712,7 +6713,6 @@ static const char *const MOBJEFLAG_LIST[] = { "JUSTSTEPPEDDOWN", // used for ramp sectors "VERTICALFLIP", // Vertically flip sprite/allow upside-down physics "GOOWATER", // Goo water - "PUSHED", // Mobj was already pushed this tic "SPRUNG", // Mobj was already sprung this tic "APPLYPMOMZ", // Platform movement NULL diff --git a/src/p_mobj.c b/src/p_mobj.c index d2454f26..cb9bc775 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -6083,7 +6083,8 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->tracer && P_MobjWasRemoved(mobj->tracer)) P_SetTarget(&mobj->tracer, NULL); - mobj->eflags &= ~(MFE_PUSHED|MFE_SPRUNG); + mobj->flags2 &= ~MF2_PUSHED; + mobj->eflags &= ~MFE_SPRUNG; tmfloorthing = tmhitthing = NULL; diff --git a/src/p_mobj.h b/src/p_mobj.h index 6198f5be..e24b0965 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -175,23 +175,24 @@ typedef enum MF2_EXPLOSION = 1<<7, // Thrown ring has explosive properties MF2_SCATTER = 1<<8, // Thrown ring has scatter properties MF2_BEYONDTHEGRAVE = 1<<9, // Source of this missile has died and has since respawned. - MF2_SLIDEPUSH = 1<<10, // MF_PUSHABLE that pushes continuously. - MF2_CLASSICPUSH = 1<<11, // Drops straight down when object has negative Z. - MF2_STANDONME = 1<<12, // While not pushable, stand on me anyway. - MF2_INFLOAT = 1<<13, // Floating to a height for a move, don't auto float to target's height. - MF2_DEBRIS = 1<<14, // Splash ring from explosion ring - MF2_NIGHTSPULL = 1<<15, // Attracted from a paraloop - MF2_JUSTATTACKED = 1<<16, // can be pushed by other moving mobjs - MF2_FIRING = 1<<17, // turret fire - MF2_SUPERFIRE = 1<<18, // Firing something with Super Sonic-stopping properties. Or, if mobj has MF_MISSILE, this is the actual fire from it. - MF2_SHADOW = 1<<19, // Fuzzy draw, makes targeting harder. - MF2_STRONGBOX = 1<<20, // Flag used for "strong" random monitors. - MF2_OBJECTFLIP = 1<<21, // Flag for objects that always have flipped gravity. - MF2_SKULLFLY = 1<<22, // Special handling: skull in flight. - MF2_FRET = 1<<23, // Flashing from a previous hit - MF2_BOSSNOTRAP = 1<<24, // No Egg Trap after boss - MF2_BOSSFLEE = 1<<25, // Boss is fleeing! - MF2_BOSSDEAD = 1<<26, // Boss is dead! (Not necessarily fleeing, if a fleeing point doesn't exist.) + MF2_PUSHED = 1<<10, // Mobj was already pushed this tic + MF2_SLIDEPUSH = 1<<11, // MF_PUSHABLE that pushes continuously. + MF2_CLASSICPUSH = 1<<12, // Drops straight down when object has negative Z. + MF2_STANDONME = 1<<13, // While not pushable, stand on me anyway. + MF2_INFLOAT = 1<<14, // Floating to a height for a move, don't auto float to target's height. + MF2_DEBRIS = 1<<15, // Splash ring from explosion ring + MF2_NIGHTSPULL = 1<<16, // Attracted from a paraloop + MF2_JUSTATTACKED = 1<<17, // can be pushed by other moving mobjs + MF2_FIRING = 1<<18, // turret fire + MF2_SUPERFIRE = 1<<19, // Firing something with Super Sonic-stopping properties. Or, if mobj has MF_MISSILE, this is the actual fire from it. + MF2_SHADOW = 1<<20, // Fuzzy draw, makes targeting harder. + MF2_STRONGBOX = 1<<21, // Flag used for "strong" random monitors. + MF2_OBJECTFLIP = 1<<22, // Flag for objects that always have flipped gravity. + MF2_SKULLFLY = 1<<23, // Special handling: skull in flight. + MF2_FRET = 1<<24, // Flashing from a previous hit + MF2_BOSSNOTRAP = 1<<25, // No Egg Trap after boss + MF2_BOSSFLEE = 1<<26, // Boss is fleeing! + MF2_BOSSDEAD = 1<<27, // Boss is dead! (Not necessarily fleeing, if a fleeing point doesn't exist.) // free: to and including 1<<31 } mobjflag2_t; @@ -231,8 +232,7 @@ typedef enum MFE_VERTICALFLIP = 1<<5, // Goo water MFE_GOOWATER = 1<<6, - // Mobj was already pushed this tic - MFE_PUSHED = 1<<7, + // free: to and including 1<<7 // Mobj was already sprung this tic MFE_SPRUNG = 1<<8, // Platform movement diff --git a/src/p_spec.c b/src/p_spec.c index f9fa5f1f..34b77906 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -6468,7 +6468,7 @@ static void P_DoScrollMove(mobj_t *thing, fixed_t dx, fixed_t dy, INT32 exclusiv thing->momy += dy; if (exclusive) - thing->eflags |= MFE_PUSHED; + thing->flags2 |= MF2_PUSHED; } /** Processes an active scroller. @@ -6572,7 +6572,7 @@ void T_Scroll(scroll_t *s) { thing = node->m_thing; - if (thing->eflags & MFE_PUSHED) // Already pushed this tic by an exclusive pusher. + if (thing->flags2 & MF2_PUSHED) // Already pushed this tic by an exclusive pusher. continue; height = P_GetSpecialBottomZ(thing, sec, psec); @@ -6594,7 +6594,7 @@ void T_Scroll(scroll_t *s) { thing = node->m_thing; - if (thing->eflags & MFE_PUSHED) + if (thing->flags2 & MF2_PUSHED) continue; height = P_GetSpecialBottomZ(thing, sec, sec); @@ -6635,7 +6635,7 @@ void T_Scroll(scroll_t *s) { thing = node->m_thing; - if (thing->eflags & MFE_PUSHED) + if (thing->flags2 & MF2_PUSHED) continue; height = P_GetSpecialTopZ(thing, sec, psec); @@ -6657,7 +6657,7 @@ void T_Scroll(scroll_t *s) { thing = node->m_thing; - if (thing->eflags & MFE_PUSHED) + if (thing->flags2 & MF2_PUSHED) continue; height = P_GetSpecialTopZ(thing, sec, sec); @@ -7140,7 +7140,7 @@ static pusher_t *tmpusher; // pusher structure for blockmap searches */ static inline boolean PIT_PushThing(mobj_t *thing) { - if (thing->eflags & MFE_PUSHED) + if (thing->flags2 & MF2_PUSHED) return false; if (thing->player && thing->player->pflags & PF_ROPEHANG) @@ -7270,7 +7270,7 @@ static inline boolean PIT_PushThing(mobj_t *thing) } if (tmpusher->exclusive) - thing->eflags |= MFE_PUSHED; + thing->flags2 |= MF2_PUSHED; return true; } @@ -7373,7 +7373,7 @@ void T_Pusher(pusher_t *p) || thing->type == MT_BIGTUMBLEWEED)) continue; - if (thing->eflags & MFE_PUSHED) + if (thing->flags2 & MF2_PUSHED) continue; if (thing->player && thing->player->pflags & PF_ROPEHANG) @@ -7540,7 +7540,7 @@ void T_Pusher(pusher_t *p) } if (p->exclusive) - thing->eflags |= MFE_PUSHED; + thing->flags2 |= MF2_PUSHED; } } }