mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Drift easing idea
More similar to RR than SRB2Kart, but you regain control over a few tics.
This commit is contained in:
parent
5b1f8ac789
commit
0268137114
1 changed files with 14 additions and 4 deletions
18
src/k_kart.c
18
src/k_kart.c
|
|
@ -10510,10 +10510,20 @@ INT16 K_GetKartTurnValue(const player_t *player, INT16 turnvalue)
|
|||
{
|
||||
if (player->pflags & PF_DRIFTEND)
|
||||
{
|
||||
// Sal: K_GetKartDriftValue is short-circuited to give a weird additive magic number,
|
||||
// instead of an entirely replaced turn value. This gaslit me years ago when I was doing a
|
||||
// code readability pass, where I missed that fact because it also returned early.
|
||||
turnfixed += K_GetKartDriftValue(player, FRACUNIT) * FRACUNIT;
|
||||
// Sal: This was an unintended control regression from SRB2Kart, but we
|
||||
// kind of prefer how it feels. It kind of sucks because the original
|
||||
// eats turning entirely for a few tics. Let's do a healthy medium between
|
||||
// SRB2Kart and RR: the kick-out value is eased towards normal turning control.
|
||||
|
||||
fixed_t drift_end_term = K_GetKartDriftValue(player, FRACUNIT) * FRACUNIT;
|
||||
fixed_t drift_exit_frac = (abs(player->drift) * FRACUNIT) / 5;
|
||||
|
||||
turnfixed = Easing_Linear(
|
||||
drift_exit_frac,
|
||||
turnfixed,
|
||||
drift_end_term
|
||||
);
|
||||
|
||||
return (turnfixed / FRACUNIT);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue