diff --git a/src/p_map.c b/src/p_map.c index 7e6add39c11de972dab0fe6fb10a5b04c202c859..04858b5df403e450a11574fa956f03bf13e535cd 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; }