From 4240b30453a26e5f747f2a0f699082e8822add11 Mon Sep 17 00:00:00 2001 From: James R Date: Sun, 27 Sep 2020 23:02:04 -0700 Subject: [PATCH] Apply quake rolling to opengl too, cv_actionmovie depends on cv_tilting (cherry picked from commit b69162e92d972b58c59b73a19eed2ea234e464f3) --- src/d_player.h | 1 + src/p_user.c | 29 ++++++++++++++++++----------- src/r_main.c | 3 --- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 283196e4d..3d1c4f5ad 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -485,6 +485,7 @@ typedef struct player_s fixed_t bob; angle_t viewrollangle; + angle_t tilt; angle_t angleturn; diff --git a/src/p_user.c b/src/p_user.c index becb3e3e7..041f0eb9e 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4247,12 +4247,26 @@ DoABarrelRoll (player_t *player) slope -= Quaketilt(player); - delta = (INT32)( slope - player->viewrollangle )/ 32; + delta = (INT32)( slope - player->tilt )/ 32; if (delta) - player->viewrollangle += delta; + player->tilt += delta; else - player->viewrollangle = slope; + player->tilt = slope; + + if (cv_tilting.value) + { + player->viewrollangle = player->tilt; + + if (cv_actionmovie.value) + { + player->viewrollangle += quake.roll; + } + } + else + { + player->viewrollangle = 0; + } } // @@ -4624,14 +4638,7 @@ void P_PlayerThink(player_t *player) K_KartPlayerThink(player, cmd); // SRB2kart - if (cv_tilting.value) - { - DoABarrelRoll(player); - } - else - { - player->viewrollangle = 0; - } + DoABarrelRoll(player); LUAh_PlayerThink(player); } diff --git a/src/r_main.c b/src/r_main.c index 05d65d9af..e4078e0b8 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -645,9 +645,6 @@ void R_CheckViewMorph(int s) v->zoomneeded = FRACUNIT; } - if (cv_actionmovie.value) - rollangle += quake.roll; - rollangle >>= ANGLETOFINESHIFT; rollangle = ((rollangle+2) & ~3) & FINEMASK; // Limit the distinct number of angles to reduce recalcs from angles changing a lot.