From 302305ccf510251b61c39ce1d44cef7f5efe3f1e Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Mon, 27 Mar 2017 14:22:03 +0100 Subject: [PATCH] Fixing SF_NOSUPERSPIN, which has been broken ever since the super walk animation was added. --- src/p_mobj.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index ac2f4c5c4..c729b7aa7 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -408,10 +408,15 @@ boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state) return P_SetPlayerMobjState(player->mo, S_PLAY_FLY); // Catch SF_NOSUPERSPIN jumps for Supers - if (player->powers[pw_super]) + if (player->powers[pw_super] && (player->charflags & SF_NOSUPERSPIN)) { - if ((player->charflags & SF_NOSUPERSPIN) - && (state == S_PLAY_ROLL || state == S_PLAY_JUMP)) + if (state == S_PLAY_JUMP) + { + if (player->mo->state-states == S_PLAY_WALK) + return P_SetPlayerMobjState(mobj, S_PLAY_FLOAT); + return true; + } + else if (player->mo->state-states == S_PLAY_FLOAT && state == S_PLAY_STND) return true; } // You were in pain state after taking a hit, and you're moving out of pain state now?