From c223a50b29a367a20d229bd0bb19cb9127171e52 Mon Sep 17 00:00:00 2001
From: Mitchell Richters <mjr4077au@gmail.com>
Date: Thu, 5 Nov 2020 10:19:15 +1100
Subject: [PATCH] - Duke/RR: Clean up vehicle turn left/right bools used in
 ticker functions.

---
 source/games/duke/src/input.cpp    | 16 +++----
 source/games/duke/src/player_r.cpp | 74 ++++++++++--------------------
 source/games/duke/src/types.h      |  2 +-
 3 files changed, 33 insertions(+), 59 deletions(-)

diff --git a/source/games/duke/src/input.cpp b/source/games/duke/src/input.cpp
index db00e5556..42309e50c 100644
--- a/source/games/duke/src/input.cpp
+++ b/source/games/duke/src/input.cpp
@@ -586,7 +586,7 @@ int getticssincelastupdate()
 //
 //---------------------------------------------------------------------------
 
-static double motoApplyTurn(player_struct* p, int turnl, int turnr, int bike_turn, bool goback, double factor)
+static double motoApplyTurn(player_struct* p, bool turnl, bool turnr, int bike_turn, bool goback, double factor)
 {
 	int turnvel = 0;
 	p->oTiltStatus = p->TiltStatus;
@@ -673,7 +673,7 @@ static double motoApplyTurn(player_struct* p, int turnl, int turnr, int bike_tur
 //
 //---------------------------------------------------------------------------
 
-static double boatApplyTurn(player_struct *p, int turnl, int turnr, int boat_turn, double factor)
+static double boatApplyTurn(player_struct *p, bool turnl, bool turnr, int boat_turn, double factor)
 {
 	int turnvel = 0;
 	int tics = getticssincelastupdate();
@@ -761,15 +761,15 @@ static double boatApplyTurn(player_struct *p, int turnl, int turnr, int boat_tur
 static void processVehicleInput(player_struct *p, ControlInfo* const hidInput, InputPacket& input, double scaleAdjust)
 {
 	auto turnspeed = hidInput->mouseturnx + scaleAdjust * hidInput->dyaw * (1. / 32); // originally this was 64, not 32. Why the change?
-	int turnl = buttonMap.ButtonDown(gamefunc_Turn_Left) || buttonMap.ButtonDown(gamefunc_Strafe_Left);
-	int turnr = buttonMap.ButtonDown(gamefunc_Turn_Right) || buttonMap.ButtonDown(gamefunc_Strafe_Right);
+	bool turnl = buttonMap.ButtonDown(gamefunc_Turn_Left) || buttonMap.ButtonDown(gamefunc_Strafe_Left);
+	bool turnr = buttonMap.ButtonDown(gamefunc_Turn_Right) || buttonMap.ButtonDown(gamefunc_Strafe_Right);
 
 	// Cancel out micro-movement
 	const double turn_threshold = 1 / 65536.;
 	if (turnspeed < -turn_threshold)
-		turnl = 1;
+		turnl = true;
 	else if (turnspeed > turn_threshold)
-		turnr = 1;
+		turnr = true;
 	else
 		turnspeed = 0;
 
@@ -782,8 +782,8 @@ static void processVehicleInput(player_struct *p, ControlInfo* const hidInput, I
 			loc.actions |= SB_CROUCH;
 	}
 
-	if (turnl) p->vehicle_turnl = true;
-	if (turnr) p->vehicle_turnr = true;
+	p->vehTurnLeft = turnl;
+	p->vehTurnRight = turnr;
 
 	double turnvel;
 
diff --git a/source/games/duke/src/player_r.cpp b/source/games/duke/src/player_r.cpp
index c51b406ae..92ba3a6e4 100644
--- a/source/games/duke/src/player_r.cpp
+++ b/source/games/duke/src/player_r.cpp
@@ -1573,7 +1573,7 @@ static void onMotorcycle(int snum, ESyncBits &actions)
 	auto pact = p->GetActor();
 	auto s = &pact->s;
 
-	int braking, turnLeft, turnRight;
+	int braking;
 	short rng;
 	if (p->MotoSpeed < 0)
 		p->MotoSpeed = 0;
@@ -1627,24 +1627,6 @@ static void onMotorcycle(int snum, ESyncBits &actions)
 		if (!S_CheckActorSoundPlaying(pact, 189) && !S_CheckActorSoundPlaying(pact, 187))
 			S_PlayActorSound(187, pact);
 	}
-	if (p->vehicle_turnl)
-	{
-		turnLeft = 1;
-		p->vehicle_turnl = false;
-	}
-	else
-	{
-		turnLeft = 0;
-	}
-	if (p->vehicle_turnr)
-	{
-		turnRight = 1;
-		p->vehicle_turnr = false;
-	}
-	else
-	{
-		turnRight = 0;
-	}
 	if (p->drink_amt > 88 && p->moto_drink == 0)
 	{
 		rng = krand() & 63;
@@ -1698,12 +1680,12 @@ static void onMotorcycle(int snum, ESyncBits &actions)
 		}
 		if (p->vehReverseScale != 0 && p->MotoSpeed <= 0 && !braking)
 		{
-			int temp;
+			bool temp;
 			p->MotoSpeed = -15 * p->vehReverseScale;
 			p->vehReverseScale = 0;
-			temp = turnRight;
-			turnRight = turnLeft;
-			turnLeft = temp;
+			temp = p->vehTurnRight;
+			p->vehTurnRight = p->vehTurnLeft;
+			p->vehTurnLeft = temp;
 		}
 	}
 	if (p->MotoSpeed != 0 && p->on_ground == 1)
@@ -1711,12 +1693,12 @@ static void onMotorcycle(int snum, ESyncBits &actions)
 		if (!p->VBumpNow)
 			if ((krand() & 3) == 2)
 				p->VBumpTarget = (p->MotoSpeed / 16.) * ((krand() & 7) - 4);
-		if (turnLeft || p->moto_drink < 0)
+		if (p->vehTurnLeft || p->moto_drink < 0)
 		{
 			if (p->moto_drink < 0)
 				p->moto_drink++;
 		}
-		else if (turnRight || p->moto_drink > 0)
+		else if (p->vehTurnRight || p->moto_drink > 0)
 		{
 			if (p->moto_drink > 0)
 				p->moto_drink--;
@@ -1772,9 +1754,9 @@ static void onMotorcycle(int snum, ESyncBits &actions)
 
 	double currSpeed = p->MotoSpeed;
 	short currAngle = p->angle.ang.asbuild(), velAdjustment, angAdjustment;
-	if (p->MotoSpeed >= 20 && p->on_ground == 1 && (turnLeft || turnRight))
+	if (p->MotoSpeed >= 20 && p->on_ground == 1 && (p->vehTurnLeft || p->vehTurnRight))
 	{
-		if (turnLeft)
+		if (p->vehTurnLeft)
 			velAdjustment = -10;
 		else
 			velAdjustment = 10;
@@ -1844,6 +1826,8 @@ static void onMotorcycle(int snum, ESyncBits &actions)
 	}
 	p->moto_on_mud = 0;
 	p->moto_on_oil = 0;
+	p->vehTurnLeft = false;
+	p->vehTurnRight = false;
 }
 
 //---------------------------------------------------------------------------
@@ -1858,7 +1842,7 @@ static void onBoat(int snum, ESyncBits &actions)
 	auto pact = p->GetActor();
 	auto s = &pact->s;
 
-	int heeltoe, braking, turnLeft, turnRight;
+	int heeltoe, braking;
 	short rng;
 	if (p->NotOnWater)
 	{
@@ -1922,28 +1906,16 @@ static void onBoat(int snum, ESyncBits &actions)
 	}
 	else
 		braking = 0;
-	if (p->vehicle_turnl)
+	if (p->vehTurnLeft)
 	{
-		turnLeft = 1;
-		p->vehicle_turnl = false;
 		if (!S_CheckActorSoundPlaying(pact, 91) && p->MotoSpeed > 30 && !p->NotOnWater)
 			S_PlayActorSound(91, pact);
 	}
-	else
+	if (p->vehTurnRight)
 	{
-		turnLeft = 0;
-	}
-	if (p->vehicle_turnr)
-	{
-		turnRight = 1;
-		p->vehicle_turnr = false;
 		if (!S_CheckActorSoundPlaying(pact, 91) && p->MotoSpeed > 30 && !p->NotOnWater)
 			S_PlayActorSound(91, pact);
 	}
-	else
-	{
-		turnRight = 0;
-	}
 	if (!p->NotOnWater)
 	{
 		if (p->drink_amt > 88 && p->moto_drink == 0)
@@ -2012,12 +1984,12 @@ static void onBoat(int snum, ESyncBits &actions)
 		}
 		if (p->vehReverseScale != 0 && p->MotoSpeed == 0 && !braking)
 		{
-			int temp;
+			bool temp;
 			p->MotoSpeed = -(!p->NotOnWater ? 25 : 20) * p->vehReverseScale;
 			p->vehReverseScale = 0;
-			temp = turnRight;
-			turnRight = turnLeft;
-			turnLeft = temp;
+			temp = p->vehTurnRight;
+			p->vehTurnRight = p->vehTurnLeft;
+			p->vehTurnLeft = temp;
 		}
 	}
 	if (p->MotoSpeed != 0 && p->on_ground == 1)
@@ -2025,12 +1997,12 @@ static void onBoat(int snum, ESyncBits &actions)
 		if (!p->VBumpNow)
 			if ((krand() & 15) == 14)
 				p->VBumpTarget = (p->MotoSpeed / 16.) * ((krand() & 3) - 2);
-		if (turnLeft || p->moto_drink < 0)
+		if (p->vehTurnLeft || p->moto_drink < 0)
 		{
 			if (p->moto_drink < 0)
 				p->moto_drink++;
 		}
-		else if (turnRight || p->moto_drink > 0)
+		else if (p->vehTurnRight || p->moto_drink > 0)
 		{
 			if (p->moto_drink > 0)
 				p->moto_drink--;
@@ -2084,11 +2056,11 @@ static void onBoat(int snum, ESyncBits &actions)
 		p->horizon.addadjustment(horiz - FixedToFloat(p->horizon.horiz.asq16()));
 	}
 
-	if (p->MotoSpeed > 0 && p->on_ground == 1 && (turnLeft || turnRight))
+	if (p->MotoSpeed > 0 && p->on_ground == 1 && (p->vehTurnLeft || p->vehTurnRight))
 	{
 		double currSpeed = p->MotoSpeed;
 		short currAngle = p->angle.ang.asbuild(), velAdjustment, angAdjustment;
-		if (turnLeft)
+		if (p->vehTurnLeft)
 			velAdjustment = -10;
 		else
 			velAdjustment = 10;
@@ -2118,6 +2090,8 @@ static void onBoat(int snum, ESyncBits &actions)
 		if (p->MotoSpeed > 50)
 			p->MotoSpeed -= (p->MotoSpeed / 2.);
 
+	p->vehTurnLeft = false;
+	p->vehTurnRight = false;
 }
 
 //---------------------------------------------------------------------------
diff --git a/source/games/duke/src/types.h b/source/games/duke/src/types.h
index 9fd6e5636..0d0aa363f 100644
--- a/source/games/duke/src/types.h
+++ b/source/games/duke/src/types.h
@@ -276,7 +276,7 @@ struct player_struct
 	uint8_t OnMotorcycle, OnBoat, moto_underwater, NotOnWater, MotoOnGround;
 	uint8_t moto_do_bump, moto_bump_fast, moto_on_oil, moto_on_mud;
 	double vehForwardScale, vehReverseScale, MotoSpeed;
-	bool vehicle_turnl, vehicle_turnr;
+	bool vehTurnLeft, vehTurnRight;
 
 	int8_t crouch_toggle;