diff --git a/src/d_player.h b/src/d_player.h index 90370c79687539faf4df84c4ed47bb9171fcc72d..7b542d7abb642f1c173683bc980ddbcb6a70823b 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -370,6 +370,7 @@ typedef struct player_s //fixed_t bob; angle_t viewrollangle; + angle_t tilt; // Mouse aiming, where the guy is looking at! // It is updated with cmd->aiming. diff --git a/src/p_user.c b/src/p_user.c index 94c5e5cd5cf35d92922ba3fc6a56d6a6e8213f0a..c222fed7fccab9ab6622f30c618c20c8705d96a0 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -8303,12 +8303,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; + } } // @@ -8860,14 +8874,7 @@ void P_PlayerThink(player_t *player) K_KartPlayerThink(player, cmd); // SRB2kart - if (cv_tilting.value) - { - DoABarrelRoll(player); - } - else - { - player->viewrollangle = 0; - } + DoABarrelRoll(player); /* // Colormap verification diff --git a/src/r_main.c b/src/r_main.c index c764d5d43e915bdda844c351c48900f314471daf..eee1be27fda422a5f31ec6829e08953ebbdcf3b2 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -671,9 +671,6 @@ void R_CheckViewMorph(void) fixed_t fisheye = cv_cam2_turnmultiplier.value; // temporary test value #endif - 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.