From ef635dd7f44df5da7dc152d17cd55aaec568a08c Mon Sep 17 00:00:00 2001 From: GenericHeroGuy Date: Mon, 27 Jan 2025 02:42:26 +0100 Subject: [PATCH] Always use drift state (and shallower angle) for sliptide in compatmode --- src/k_kart.c | 2 +- src/r_fps.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 8fcd48c15..e179e5893 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2602,7 +2602,7 @@ void K_KartMoveAnimation(player_t *player) } // Sliptides: drift -> lookback frames - if (abs(player->aizdriftturn) >= ANGLE_90) + if (abs(player->aizdriftturn) >= ANGLE_90 && !wadfiles[((skin_t *)player->mo->skin)->wadnum]->compatmode) { destGlanceDir = -(2*intsign(player->aizdriftturn)); player->glanceDir = destGlanceDir; diff --git a/src/r_fps.c b/src/r_fps.c index 125937ad5..1fedc1831 100644 --- a/src/r_fps.c +++ b/src/r_fps.c @@ -15,6 +15,7 @@ #include "r_fps.h" #include "r_main.h" +#include "r_skins.h" #include "g_game.h" #include "i_video.h" #include "r_plane.h" @@ -287,6 +288,9 @@ void R_InterpolateMobjState(mobj_t *mobj, fixed_t frac, interpmobjstate_t *out) if (mobj->player && mobj->player->aizdriftturn) { addangle += mobj->player->aizdriftturn; + if (mobj->skin && wadfiles[((skin_t *)mobj->skin)->wadnum]->compatmode) + // don't turn too much in compatmode + addangle = (INT32)addangle / 4; } if (mobj->state == &states[S_KART_DRIFT_L] || mobj->state == &states[S_KART_DRIFT_L_OUT]