From 31f23fda8dee9582617567c37f750f2f3e247334 Mon Sep 17 00:00:00 2001
From: mazmazz <mar.marcoz@outlook.com>
Date: Mon, 3 Dec 2018 11:50:57 -0500
Subject: [PATCH] Add gc_viewpoint from Kart

---
 src/g_game.c  | 3 ++-
 src/g_input.c | 1 +
 src/g_input.h | 1 +
 src/m_menu.c  | 1 +
 4 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/g_game.c b/src/g_game.c
index b1a3720e6..f313b4d50 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -1677,7 +1677,8 @@ static INT32 camtoggledelay, camtoggledelay2 = 0;
 boolean G_Responder(event_t *ev)
 {
 	// allow spy mode changes even during the demo
-	if (gamestate == GS_LEVEL && ev->type == ev_keydown && ev->data1 == KEY_F12)
+	if (gamestate == GS_LEVEL && ev->type == ev_keydown
+		&& (ev->data1 == gamecontrol[gc_viewpoint][0] || ev->data1 == gamecontrol[gc_viewpoint][1]))
 	{
 		if (splitscreen || !netgame)
 			displayplayer = consoleplayer;
diff --git a/src/g_input.c b/src/g_input.c
index 1884f38b9..489806d84 100644
--- a/src/g_input.c
+++ b/src/g_input.c
@@ -1192,6 +1192,7 @@ void G_Controldefault(void)
 	gamecontrol[gc_pause      ][0] = 'p';
 	gamecontrol[gc_screenshot ][0] = KEY_F8;
 	gamecontrol[gc_recordgif  ][0] = KEY_F9;
+	gamecontrol[gc_viewpoint  ][0] = KEY_F12;
 	gamecontrol[gc_systemmenu ][0] = KEY_JOY1+7; // Start
 #ifdef WMINPUT
 	gamecontrol[gc_forward    ][0] = KEY_JOY1+02; //UP
diff --git a/src/g_input.h b/src/g_input.h
index d618b0da1..557fb3bf3 100644
--- a/src/g_input.h
+++ b/src/g_input.h
@@ -121,6 +121,7 @@ typedef enum
 	gc_systemmenu,
 	gc_screenshot,
 	gc_recordgif,
+	gc_viewpoint,
 	gc_custom1, // Lua scriptable
 	gc_custom2, // Lua scriptable
 	gc_custom3, // Lua scriptable
diff --git a/src/m_menu.c b/src/m_menu.c
index 2b88f6c50..381029a08 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -1076,6 +1076,7 @@ static menuitem_t OP_MiscControlsMenu[] =
 	{IT_CALL | IT_STRING2, NULL, "Screenshot",            M_ChangeControl, gc_screenshot },
 	{IT_CALL | IT_STRING2, NULL, "Toggle GIF Recording",  M_ChangeControl, gc_recordgif  },
 	{IT_CALL | IT_STRING2, NULL, "Open/Close Menu (ESC)", M_ChangeControl, gc_systemmenu },
+	{IT_CALL | IT_STRING2, NULL, "Change Viewpoint",      M_ChangeControl, gc_viewpoint  },
 	{IT_CALL | IT_STRING2, NULL, "Console",          M_ChangeControl, gc_console      },
 };
 
-- 
GitLab