Maelstrom: Made joystick thrust a little less sensitive.

https://github.com/libsdl-org/Maelstrom/commit/ccc3c92999b3af09f20453ceccfc9a2f8cf29ee5

From ccc3c92999b3af09f20453ceccfc9a2f8cf29ee5 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 23 Nov 2011 23:40:38 -0500
Subject: [PATCH] Made joystick thrust a little less sensitive. Added joystick
 hat control

---
 game/controls.cpp | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/game/controls.cpp b/game/controls.cpp
index 675bac3c..cef23cb8 100644
--- a/game/controls.cpp
+++ b/game/controls.cpp
@@ -258,11 +258,11 @@ static void HandleEvent(SDL_Event *event)
 #ifdef SDL_INIT_JOYSTICK
 		/* -- Handle joystick axis motion */
 		case SDL_JOYAXISMOTION:
-			/* X-Axis - rotate right/left */
 			player = GetJoystickPlayer(event->jaxis.which);
 			if (!player) {
 				break;
 			}
+			/* X-Axis - rotate right/left */
 			if ( event->jaxis.axis == 0 ) {
 				if ( event->jaxis.value < -8000 ) {
 					player->SetControl(LEFT_KEY, 1);
@@ -278,7 +278,7 @@ static void HandleEvent(SDL_Event *event)
 			} else
 			/* Y-Axis - accelerate */
 			if ( event->jaxis.axis == 1 ) {
-				if ( event->jaxis.value < -8000 ) {
+				if ( event->jaxis.value < -16000 ) {
 					player->SetControl(THRUST_KEY, 1);
 				} else {
 					player->SetControl(THRUST_KEY, 0);
@@ -286,6 +286,29 @@ static void HandleEvent(SDL_Event *event)
 			}
 			break;
 
+		/* -- Handle joystick axis motion */
+		case SDL_JOYHATMOTION:
+			player = GetJoystickPlayer(event->jhat.which);
+			if (!player) {
+				break;
+			}
+			if ( event->jhat.value & SDL_HAT_LEFT ) {
+				player->SetControl(LEFT_KEY, 1);
+			} else {
+				player->SetControl(LEFT_KEY, 0);
+			}
+			if ( event->jhat.value & SDL_HAT_RIGHT ) {
+				player->SetControl(RIGHT_KEY, 1);
+			} else {
+				player->SetControl(RIGHT_KEY, 0);
+			}
+			if ( event->jhat.value & SDL_HAT_UP ) {
+				player->SetControl(THRUST_KEY, 1);
+			} else {
+				player->SetControl(THRUST_KEY, 0);
+			}
+			break;
+
 		/* -- Handle joystick button presses/releases */
 		case SDL_JOYBUTTONDOWN:
 		case SDL_JOYBUTTONUP: