From 40e5a2104bf9f76b6e15e972bbd86659f6f4e991 Mon Sep 17 00:00:00 2001
From: mazmazz <mar.marcoz@outlook.com>
Date: Mon, 12 Nov 2018 17:34:56 -0500
Subject: [PATCH] Also set cv_analog for tutorialgcs

* M_TutorialSaveControlResponse CV_Set adjustment
---
 src/d_main.c   | 1 +
 src/d_netcmd.c | 1 +
 src/doomstat.h | 1 +
 src/g_game.c   | 1 +
 src/m_menu.c   | 9 ++++++---
 src/m_misc.c   | 2 ++
 6 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/d_main.c b/src/d_main.c
index 36377049d0..bbc5f53210 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -742,6 +742,7 @@ void D_StartTitle(void)
 		CV_SetValue(&cv_usemouse, tutorialusemouse);
 		CV_SetValue(&cv_alwaysfreelook, tutorialfreelook);
 		CV_SetValue(&cv_mousemove, tutorialmousemove);
+		CV_SetValue(&cv_analog, tutorialanalog);
 		M_StartMessage("Do you want to \x82save the recommended \x82movement controls?\x80\n\nPress 'Y' or 'Enter' to confirm\nPress 'N' or any key to keep \nyour current controls",
 			M_TutorialSaveControlResponse, MM_YESNO);
 	}
diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 0aaace49f8..526c1d736b 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -1814,6 +1814,7 @@ static void Command_Map_f(void)
 		CV_SetValue(&cv_usemouse, tutorialusemouse);
 		CV_SetValue(&cv_alwaysfreelook, tutorialfreelook);
 		CV_SetValue(&cv_mousemove, tutorialmousemove);
+		CV_SetValue(&cv_analog, tutorialanalog);
 	}
 	tutorialmode = false; // warping takes us out of tutorial mode
 
diff --git a/src/doomstat.h b/src/doomstat.h
index 94ccf111ae..7660547685 100644
--- a/src/doomstat.h
+++ b/src/doomstat.h
@@ -135,6 +135,7 @@ extern INT32 tutorialgcs; // which control scheme is loaded?
 extern INT32 tutorialusemouse; // store cv_usemouse user value
 extern INT32 tutorialfreelook; // store cv_alwaysfreelook user value
 extern INT32 tutorialmousemove; // store cv_mousemove user value
+extern INT32 tutorialanalog; // store cv_analog user value
 
 extern boolean looptitle;
 
diff --git a/src/g_game.c b/src/g_game.c
index 0112ec1047..4fb56abaf9 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -133,6 +133,7 @@ INT32 tutorialgcs = gcs_custom; // which control scheme is loaded?
 INT32 tutorialusemouse = 0; // store cv_usemouse user value
 INT32 tutorialfreelook = 0; // store cv_alwaysfreelook user value
 INT32 tutorialmousemove = 0; // store cv_mousemove user value
+INT32 tutorialanalog = 0; // store cv_analog user value
 
 boolean looptitle = false;
 
diff --git a/src/m_menu.c b/src/m_menu.c
index b51d07fd21..ada9ffb7a9 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -6139,9 +6139,10 @@ void M_TutorialSaveControlResponse(INT32 ch)
 	if (ch == 'y' || ch == KEY_ENTER)
 	{
 		G_CopyControls(gamecontrol, gamecontroldefault[tutorialgcs], gclist_tutorial, num_gclist_tutorial);
-		CV_SetValue(&cv_usemouse, 1);
-		CV_SetValue(&cv_alwaysfreelook, 0);
-		CV_SetValue(&cv_mousemove, 0);
+		CV_Set(&cv_usemouse, cv_usemouse->defaultvalue);
+		CV_Set(&cv_alwaysfreelook, cv_alwaysfreelook->defaultvalue);
+		CV_Set(&cv_mousemove, cv_mousemove->defaultvalue);
+		CV_Set(&cv_analog, cv_analog->defaultvalue);
 		S_StartSound(NULL, sfx_itemup);
 	}
 	else
@@ -6159,11 +6160,13 @@ static void M_TutorialControlResponse(INT32 ch)
 			tutorialusemouse = cv_usemouse.value;
 			tutorialfreelook = cv_alwaysfreelook.value;
 			tutorialmousemove = cv_mousemove.value;
+			tutorialanalog = cv_analog.value;
 
 			G_CopyControls(gamecontrol, gamecontroldefault[tutorialgcs], gclist_tutorial, num_gclist_tutorial);
 			CV_Set(&cv_usemouse, cv_usemouse->defaultvalue);
 			CV_Set(&cv_alwaysfreelook, cv_alwaysfreelook->defaultvalue);
 			CV_Set(&cv_mousemove, cv_mousemove->defaultvalue);
+			CV_Set(&cv_analog, cv_analog->defaultvalue);
 
 			//S_StartSound(NULL, sfx_itemup);
 		}
diff --git a/src/m_misc.c b/src/m_misc.c
index 622d65776f..353443df0d 100644
--- a/src/m_misc.c
+++ b/src/m_misc.c
@@ -544,10 +544,12 @@ void M_SaveConfig(const char *filename)
 		CV_SetValue(&cv_usemouse, tutorialusemouse);
 		CV_SetValue(&cv_alwaysfreelook, tutorialfreelook);
 		CV_SetValue(&cv_mousemove, tutorialmousemove);
+		CV_SetValue(&cv_analog, tutorialanalog);
 		CV_SaveVariables(f);
 		CV_Set(&cv_usemouse, cv_usemouse->defaultvalue);
 		CV_Set(&cv_alwaysfreelook, cv_alwaysfreelook->defaultvalue);
 		CV_Set(&cv_mousemove, cv_mousemove->defaultvalue);
+		CV_Set(&cv_analog, cv_analog->default);
 	}
 	else
 		CV_SaveVariables(f);
-- 
GitLab