From 694220155e26e63af242fa9ff457d34261425ca3 Mon Sep 17 00:00:00 2001
From: Inuyasha <MattWCSTRFAN@gmail.com>
Date: Tue, 8 Mar 2016 21:30:12 -0800
Subject: [PATCH] Revert "MF2_PUSHED is now MFE_PUSHED, for the simple reason
 that it makes more sense as an eflags object flag than a flags2 object flag!"

This reverts commit c8c7878005f79e87f7c0cfa5e0a2f42a53d68758.

# Conflicts:
#	src/dehacked.c
#	src/p_mobj.c
#	src/p_mobj.h
---
 src/dehacked.c |  2 +-
 src/p_mobj.c   |  3 ++-
 src/p_mobj.h   | 38 +++++++++++++++++++-------------------
 src/p_spec.c   | 18 +++++++++---------
 4 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/src/dehacked.c b/src/dehacked.c
index c21e8fb99..60f3b0592 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 d2454f267..cb9bc775a 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 6198f5bec..e24b09652 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 f9fa5f1f1..34b779068 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;
 		}
 	}
 }