From c06384dddd49f7d2571d74d73b93ff7779a24a10 Mon Sep 17 00:00:00 2001
From: Sally Coolatta <tehrealsalt@gmail.com>
Date: Mon, 1 Mar 2021 12:57:53 -0500
Subject: [PATCH] Remove turn easing code

v2 mirror
---
 src/g_game.c  | 48 +++++++++++++++---------------------------------
 src/m_menu.c  |  1 -
 src/p_local.h |  1 -
 src/p_user.c  | 22 +++-------------------
 4 files changed, 18 insertions(+), 54 deletions(-)

diff --git a/src/g_game.c b/src/g_game.c
index d9d7b7f12..6f701c2c7 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -1239,12 +1239,10 @@ boolean camspin[MAXSPLITSCREENPLAYERS];
 
 static fixed_t forwardmove[2] = {25<<FRACBITS>>16, 50<<FRACBITS>>16};
 static fixed_t sidemove[2] = {2<<FRACBITS>>16, 4<<FRACBITS>>16};
-static fixed_t angleturn[3] = {KART_FULLTURN/2, KART_FULLTURN, KART_FULLTURN/4}; // + slow turn
 
 void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 {
-	INT32 laim, th, tspeed, forward, side, axis; //i
-	const INT32 speed = 1;
+	INT32 laim, forward, side, axis; //i
 	// these ones used for multiple conditions
 	boolean turnleft, turnright, mouseaiming, analogjoystickmove, gamepadjoystickmove;
 	boolean invertmouse, lookaxis, usejoystick, kbl, rd;
@@ -1252,7 +1250,6 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 	camera_t *thiscam;
 	angle_t lang;
 
-	static INT32 turnheld[MAXSPLITSCREENPLAYERS]; // for accelerative turning
 	static boolean keyboard_look[MAXSPLITSCREENPLAYERS]; // true if lookup/down using keyboard
 	static boolean resetdown[MAXSPLITSCREENPLAYERS]; // don't cam reset every frame
 
@@ -1269,7 +1266,6 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 		thiscam = &camera[ssplayer-1];
 	lang = localangle[ssplayer-1];
 	laim = localaiming[ssplayer-1];
-	th = turnheld[ssplayer-1];
 	kbl = keyboard_look[ssplayer-1];
 	rd = resetdown[ssplayer-1];
 
@@ -1354,39 +1350,27 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 	}
 	forward = side = 0;
 
-	// use two stage accelerative turning
-	// on the keyboard and joystick
-	if (turnleft || turnright)
-		th += realtics;
-	else
-		th = 0;
-
-	if (th < SLOWTURNTICS)
-		tspeed = 2; // slow turn
-	else
-		tspeed = speed;
-
 	cmd->driftturn = 0;
 
 	// let movement keys cancel each other out
 	if (turnright && !(turnleft))
 	{
-		cmd->angleturn = (INT16)(cmd->angleturn - (angleturn[tspeed]));
-		cmd->driftturn = (INT16)(cmd->driftturn - (angleturn[tspeed]));
+		cmd->angleturn = (INT16)(cmd->angleturn - KART_FULLTURN);
+		cmd->driftturn = (INT16)(cmd->driftturn - KART_FULLTURN);
 		side += sidemove[1];
 	}
 	else if (turnleft && !(turnright))
 	{
-		cmd->angleturn = (INT16)(cmd->angleturn + (angleturn[tspeed]));
-		cmd->driftturn = (INT16)(cmd->driftturn + (angleturn[tspeed]));
+		cmd->angleturn = (INT16)(cmd->angleturn + KART_FULLTURN);
+		cmd->driftturn = (INT16)(cmd->driftturn + KART_FULLTURN);
 		side -= sidemove[1];
 	}
 
 	if (analogjoystickmove && axis != 0)
 	{
 		// JOYAXISRANGE should be 1023 (divide by 1024)
-		cmd->angleturn = (INT16)(cmd->angleturn - (((axis * angleturn[1]) >> 10))); // ANALOG!
-		cmd->driftturn = (INT16)(cmd->driftturn - (((axis * angleturn[1]) >> 10)));
+		cmd->angleturn = (INT16)(cmd->angleturn - (((axis * KART_FULLTURN) >> 10))); // ANALOG!
+		cmd->driftturn = (INT16)(cmd->driftturn - (((axis * KART_FULLTURN) >> 10)));
 		side += ((axis * sidemove[0]) >> 10);
 	}
 
@@ -1548,15 +1532,15 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 	//{ SRB2kart - Drift support
 	// Not grouped with the rest of turn stuff because it needs to know what buttons you're pressing for rubber-burn turn
 	// limit turning to angleturn[1] to stop mouselook letting you look too fast
-	if (cmd->angleturn > (angleturn[1]))
-		cmd->angleturn = (angleturn[1]);
-	else if (cmd->angleturn < (-angleturn[1]))
-		cmd->angleturn = (-angleturn[1]);
+	if (cmd->angleturn > KART_FULLTURN)
+		cmd->angleturn = KART_FULLTURN;
+	else if (cmd->angleturn < -KART_FULLTURN)
+		cmd->angleturn = -KART_FULLTURN;
 
-	if (cmd->driftturn > (angleturn[1]))
-		cmd->driftturn = (angleturn[1]);
-	else if (cmd->driftturn < (-angleturn[1]))
-		cmd->driftturn = (-angleturn[1]);
+	if (cmd->driftturn > KART_FULLTURN)
+		cmd->driftturn = KART_FULLTURN;
+	else if (cmd->driftturn < -KART_FULLTURN)
+		cmd->driftturn = -KART_FULLTURN;
 
 	if (player->mo)
 		cmd->angleturn = K_GetKartTurnValue(player, cmd->angleturn);
@@ -1578,7 +1562,6 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 		localangle[ssplayer-1] = lang;
 		localaiming[ssplayer-1] = laim;
 		keyboard_look[ssplayer-1] = kbl;
-		turnheld[ssplayer-1] = th;
 		resetdown[ssplayer-1] = rd;
 		camspin[ssplayer-1] = InputDown(gc_lookback, ssplayer);
 	}
@@ -8192,7 +8175,6 @@ void G_StopDemo(void)
 	democam.soundmobj = NULL;
 	democam.localangle = 0;
 	democam.localaiming = 0;
-	democam.turnheld = false;
 	democam.keyboardlook = false;
 
 	CV_SetValue(&cv_playbackspeed, 1);
diff --git a/src/m_menu.c b/src/m_menu.c
index 480c887b6..708522216 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -6106,7 +6106,6 @@ static void M_PlaybackToggleFreecam(INT32 choice)
 		demo.freecam = false;
 		// reset democam vars:
 		democam.cam = NULL;
-		democam.turnheld = false;
 		democam.keyboardlook = false;	// reset only these. localangle / aiming gets set before the cam does anything anyway
 	}
 }
diff --git a/src/p_local.h b/src/p_local.h
index 26035817d..65e964149 100644
--- a/src/p_local.h
+++ b/src/p_local.h
@@ -117,7 +117,6 @@ struct demofreecam_s {
 	
 	angle_t localangle;	// keeps track of the cam angle for cmds
 	angle_t localaiming;	// ditto with aiming
-	boolean turnheld;	// holding turn button for gradual turn speed
 	boolean keyboardlook;	// keyboard look
 };
 
diff --git a/src/p_user.c b/src/p_user.c
index 8d5536338..99ea0914b 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -7127,7 +7127,6 @@ fixed_t t_cam4_rotate = -42;
 // redefine this
 static fixed_t forwardmove[2] = {25<<FRACBITS>>16, 50<<FRACBITS>>16};
 static fixed_t sidemove[2] = {2<<FRACBITS>>16, 4<<FRACBITS>>16};
-static fixed_t angleturn[3] = {KART_FULLTURN/2, KART_FULLTURN, KART_FULLTURN/4}; // + slow turn
 
 static ticcmd_t cameracmd;
 
@@ -7141,8 +7140,7 @@ void P_InitCameraCmd(void)
 
 static ticcmd_t *P_CameraCmd(camera_t *cam)
 {
-	INT32 laim, th, tspeed, forward, side, axis; //i
-	const INT32 speed = 1;
+	INT32 laim, forward, side, axis; //i
 	// these ones used for multiple conditions
 	boolean turnleft, turnright, mouseaiming;
 	boolean invertmouse, lookaxis, usejoystick, kbl;
@@ -7159,7 +7157,6 @@ static ticcmd_t *P_CameraCmd(camera_t *cam)
 
 	lang = democam.localangle;
 	laim = democam.localaiming;
-	th = democam.turnheld;
 	kbl = democam.keyboardlook;
 
 	G_CopyTiccmd(cmd, I_BaseTiccmd(), 1); // empty, or external driver
@@ -7192,27 +7189,15 @@ static ticcmd_t *P_CameraCmd(camera_t *cam)
 	}
 	forward = side = 0;
 
-	// use two stage accelerative turning
-	// on the keyboard and joystick
-	if (turnleft || turnright)
-		th += 1;
-	else
-		th = 0;
-
-	if (th < SLOWTURNTICS)
-		tspeed = 2; // slow turn
-	else
-		tspeed = speed;
-
 	// let movement keys cancel each other out
 	if (turnright && !(turnleft))
 	{
-		cmd->angleturn = (INT16)(cmd->angleturn - (angleturn[tspeed]));
+		cmd->angleturn = (INT16)(cmd->angleturn - KART_FULLTURN);
 		side += sidemove[1];
 	}
 	else if (turnleft && !(turnright))
 	{
-		cmd->angleturn = (INT16)(cmd->angleturn + (angleturn[tspeed]));
+		cmd->angleturn = (INT16)(cmd->angleturn + KART_FULLTURN);
 		side -= sidemove[1];
 	}
 
@@ -7289,7 +7274,6 @@ static ticcmd_t *P_CameraCmd(camera_t *cam)
 
 	democam.localangle = lang;
 	democam.localaiming = laim;
-	democam.turnheld = th;
 	democam.keyboardlook = kbl;
 
 	return cmd;
-- 
GitLab