From 920736ac8bd94a5d8918a7e0b96a2d44e13a72fe Mon Sep 17 00:00:00 2001
From: toaster <rollerorbital@gmail.com>
Date: Sat, 19 Oct 2019 15:57:01 +0100
Subject: [PATCH] Grouped ports from object_tweaks. * Make the Amy Cameo only
 spawn in SP, Record Attack, or Co-op unless it's the Clone Mode. * Add the
 diagonal spring flag options Red and Yellow Diagonal Springs have to the Blue
 Diagonal Spring as well. * Put diagonal blue spring in config.

---
 extras/conf/SRB2-22.cfg | 9 +++++++++
 src/p_mobj.c            | 8 +++++---
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/extras/conf/SRB2-22.cfg b/extras/conf/SRB2-22.cfg
index d936721b6..99d2fa492 100644
--- a/extras/conf/SRB2-22.cfg
+++ b/extras/conf/SRB2-22.cfg
@@ -4218,6 +4218,15 @@ thingtypes
 			flags4text = "[4] Ignore gravity";
 			flags8text = "[8] Rotate 22.5° CCW";
 		}
+		557
+		{
+			arrow = 1;
+			title = "Diagonal Blue Spring";
+			sprite = "BSPRD2";
+			width = 16;
+			flags4text = "[4] Ignore gravity";
+			flags8text = "[8] Rotate 22.5° CCW";
+		}
 		558
 		{
 			arrow = 1;
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 7fa51111d..f1dc5d760 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -11558,7 +11558,9 @@ You should think about modifying the deathmatch starts to take full advantage of
 
 	if (i == MT_ROSY)
 	{
-		if (mariomode)
+		if (!(gametype == GT_COOP || (mthing->options & MTF_EXTRA)))
+			return; // she doesn't hang out here
+		else if (mariomode)
 			i = MT_TOAD; // don't remove on penalty of death
 		else if (!(netgame || multiplayer) && players[consoleplayer].skin == 5)
 			return; // no doubles
@@ -12682,7 +12684,7 @@ ML_EFFECT5 : Don't stop thinking when too far away
 	{
 		if (mthing->options & MTF_AMBUSH)
 		{
-			if (i == MT_YELLOWDIAG || i == MT_REDDIAG)
+			if (i == MT_YELLOWDIAG || i == MT_REDDIAG || i == MT_BLUEDIAG)
 				mobj->angle += ANGLE_22h;
 
 			if (i == MT_YELLOWHORIZ || i == MT_REDHORIZ || i == MT_BLUEHORIZ)
@@ -12721,7 +12723,7 @@ ML_EFFECT5 : Don't stop thinking when too far away
 
 		if (mthing->options & MTF_OBJECTSPECIAL)
 		{
-			if (i == MT_YELLOWDIAG || i == MT_REDDIAG)
+			if (i == MT_YELLOWDIAG || i == MT_REDDIAG || i == MT_BLUEDIAG)
 				mobj->flags |= MF_NOGRAVITY;
 
 			if ((mobj->flags & MF_MONITOR) && mobj->info->speed != 0)
-- 
GitLab