From 79f2d616fc7e54c8073e0c68a489853f61c7abc8 Mon Sep 17 00:00:00 2001
From: toasterbabe <rollerorbital@gmail.com>
Date: Mon, 27 Mar 2017 14:37:40 +0100
Subject: [PATCH] Modified melee/twinspin springboost.

---
 src/p_map.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/p_map.c b/src/p_map.c
index 7e6add39c1..04858b5df4 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -130,19 +130,13 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
 		return false;
 	}
 
-#ifdef ESLOPE
-	object->standingslope = NULL; // Okay, now we can't return - no launching off at silly angles for you.
-#endif
-
 	if (object->player
 	&& ((object->player->charability == CA_TWINSPIN && object->player->panim == PA_ABILITY)
 	|| (object->player->charability2 == CA2_MELEE && object->player->panim == PA_ABILITY2)))
 	{
 		S_StartSound(object, sfx_s3k8b);
-#define scalefactor ((4*FRACUNIT)/3)
-		horizspeed = FixedMul(horizspeed, scalefactor);
-		vertispeed = FixedMul(vertispeed, FixedSqrt(scalefactor));
-#undef scalefactor
+		horizspeed = FixedMul(horizspeed, (4*FRACUNIT)/3);
+		vertispeed = FixedMul(vertispeed, (6*FRACUNIT)/5); // aprox square root of above
 	}
 
 	object->eflags |= MFE_SPRUNG; // apply this flag asap!
@@ -239,6 +233,11 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
 		else
 			P_SetPlayerMobjState(object, S_PLAY_FALL);
 	}
+
+#ifdef ESLOPE
+	object->standingslope = NULL; // Okay, now we know it's not going to be relevant - no launching off at silly angles for you.
+#endif
+
 	return true;
 }
 
-- 
GitLab