From b69162e92d972b58c59b73a19eed2ea234e464f3 Mon Sep 17 00:00:00 2001
From: James R <justsomejames2@gmail.com>
Date: Sun, 27 Sep 2020 23:02:04 -0700
Subject: [PATCH] Apply quake rolling to opengl too, cv_actionmovie depends on
 cv_tilting

---
 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 90370c796..7b542d7ab 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 94c5e5cd5..c222fed7f 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 c764d5d43..eee1be27f 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.
 
-- 
GitLab