always have *some* gravity to return the kart to neutral

This commit is contained in:
minenice55 2026-04-29 14:59:50 -04:00
parent d4ac123d19
commit 854edbe2ff

View file

@ -9503,8 +9503,8 @@ void K_AddTiltMomentum(player_t *player, fixed_t angularvelocity)
static void K_HandleKartTilt(player_t *player)
{
SINT8 startsign = intsign(player->karttilt);
fixed_t lineargravity = P_GetMobjGravity(player->mo);
fixed_t angulargravity = abs(lineargravity) * (P_IsObjectOnGround(player->mo) ? 12 : 3);
fixed_t lineargravity = max(abs(P_GetMobjGravity(player->mo)), FRACUNIT/10);
fixed_t angulargravity = lineargravity * (P_IsObjectOnGround(player->mo) ? 12 : 3);
fixed_t angaccelgravity = 0;
fixed_t tiltfactor = abs(FSIN(FixedAngle(CLAMP(player->karttilt, -89*FRACUNIT, 89*FRACUNIT))));
@ -9517,13 +9517,7 @@ static void K_HandleKartTilt(player_t *player)
angaccelgravity = FixedSqrt(FixedDiv(FixedMul(3 * angulargravity, tiltfactor), 2 * player->mo->radius));
player->karttiltmomentum += angaccelgravity * -intsign(player->karttilt);
// if (abs(player->karttiltmomentum) >= PLAYERTILTMOMENTUMCAP)
// {
// player->karttiltmomentum = PLAYERTILTMOMENTUMCAP * intsign(player->karttiltmomentum);
// }
player->karttilt = CLAMP(player->karttilt + FixedMul(player->karttiltmomentum, FIXEDRADTODEG)/TICRATE, -PLAYERTILTCAP + 1, PLAYERTILTCAP - 1);
// angular drag
if (player->mo->eflags & MFE_UNDERWATER)
{