diff --git a/src/k_kart.c b/src/k_kart.c index fe76186d..22d8124e 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1585,9 +1585,9 @@ fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove if (player->kartstuff[k_pogospring]) // Pogo Spring minimum/maximum thrust { - const fixed_t hscale = mapheaderinfo[gamemap-1]->mobj_scale + (mapheaderinfo[gamemap-1]->mobj_scale - player->mo->scale); + const fixed_t hscale = mapheaderinfo[gamemap-1]->mobj_scale /*+ (mapheaderinfo[gamemap-1]->mobj_scale - player->mo->scale)*/; const fixed_t minspeed = 24*hscale; - const fixed_t maxspeed = 36*hscale; + const fixed_t maxspeed = 32*hscale; if (newspeed > maxspeed && player->kartstuff[k_pogospring] == 2) newspeed = maxspeed; diff --git a/src/p_map.c b/src/p_map.c index 03a4dc34..d5fb5ef3 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -2587,6 +2587,10 @@ boolean P_TryMove(mobj_t *thing, fixed_t x, fixed_t y, boolean allowdropoff) if (P_PlayerTouchingSectorSpecial(thing->player, 1, 13) || GETSECSPECIAL(R_PointInSubsector(x, y)->sector->special, 1) == 13) maxstep <<= 1; + // If using type Section1:14, no maxstep. For ledges you want the player to LAND on, not climb! (see: SMK VL2) + else if (P_PlayerTouchingSectorSpecial(thing->player, 1, 14) + || GETSECSPECIAL(R_PointInSubsector(x, y)->sector->special, 1) == 14) + maxstep = 0; // Don't 'step up' while springing, // Only step up "if needed". diff --git a/src/p_spec.c b/src/p_spec.c index 87894d05..f493f7b9 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -3621,7 +3621,7 @@ void P_ProcessSpecialSector(player_t *player, sector_t *sector, sector_t *rovers player->powers[pw_spacetime] = spacetimetics + 1; break; case 13: // Ramp Sector (Increase step-up/down) - case 14: // Non-Ramp Sector (Don't step-down) + case 14: // Non-Ramp Sector (Don't step-up/down) case 15: // Bouncy Sector (FOF Control Only) break; } @@ -3756,8 +3756,8 @@ DoneSection2: case 1: // SRB2kart: Spring Panel if (roversector || P_MobjReadyToTrigger(player->mo, sector)) { - const fixed_t scale = mapheaderinfo[gamemap-1]->mobj_scale + abs(player->mo->scale - mapheaderinfo[gamemap-1]->mobj_scale); - const fixed_t minspeed = 24*scale; + const fixed_t hscale = mapheaderinfo[gamemap-1]->mobj_scale + (mapheaderinfo[gamemap-1]->mobj_scale - player->mo->scale); + const fixed_t minspeed = 24*hscale; if (player->mo->eflags & MFE_SPRUNG) break; @@ -3776,9 +3776,9 @@ DoneSection2: case 3: // SRB2kart: Spring Panel (capped speed) if (roversector || P_MobjReadyToTrigger(player->mo, sector)) { - const fixed_t scale = mapheaderinfo[gamemap-1]->mobj_scale + abs(player->mo->scale - mapheaderinfo[gamemap-1]->mobj_scale); - const fixed_t minspeed = 24*scale; - const fixed_t maxspeed = 36*scale; + const fixed_t hscale = mapheaderinfo[gamemap-1]->mobj_scale + (mapheaderinfo[gamemap-1]->mobj_scale - player->mo->scale); + const fixed_t minspeed = 24*hscale; + const fixed_t maxspeed = 32*hscale; if (player->mo->eflags & MFE_SPRUNG) break;