diff --git a/src/p_inter.c b/src/p_inter.c index c152bb4ed..2c183d73b 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -883,13 +883,14 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) if (player->exiting) return; - if (player->bumpertime <= (TICRATE/2)-5) + if (player->bumpertime < TICRATE/4) { - S_StartSound(toucher, special->info->seesound); angle_t fa; fixed_t xspeed, yspeed; const fixed_t speed = FixedMul(FixedDiv(special->info->speed*FRACUNIT,75*FRACUNIT), FixedSqrt(FixedMul(toucher->scale,special->scale))); + S_StartSound(toucher, special->info->seesound); + player->bumpertime = TICRATE/2; P_UnsetThingPosition(toucher); @@ -915,7 +916,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) P_ResetPlayer(player); - P_SetPlayerMobjState(toucher, S_KART_STILL); + P_SetPlayerMobjState(toucher, S_KART_STILL); // SRB2kart - was S_PLAY_FALL1 } return; diff --git a/src/p_user.c b/src/p_user.c index dc278a2a0..5d33a0697 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4069,16 +4069,6 @@ void P_PlayerThink(player_t *player) } else { - if (player->bumpertime == TICRATE/2 && player->mo->hnext) - { - // Center player to NiGHTS bumper here because if you try to set player's position in - // P_TouchSpecialThing case MT_NIGHTSBUMPER, that position is fudged in the time - // between that routine in the previous tic - // and reaching here in the current tic - P_MoveOrigin(player->mo, player->mo->hnext->x, player->mo->hnext->y - , player->mo->hnext->z + FixedMul(player->mo->hnext->height/4, player->mo->hnext->scale)); - P_SetTarget(&player->mo->hnext, NULL); - } // Move around. P_MovePlayer(player); }