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]