From 737fa005c09f3527fd200b913a72004628fabefe Mon Sep 17 00:00:00 2001
From: Silent <zdanio95@gmail.com>
Date: Fri, 11 Mar 2016 23:54:20 +0100
Subject: [PATCH] Y axis sensitivity fix - SA

---
 SilentPatchSA/SilentPatchSA.cpp | 41 +++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/SilentPatchSA/SilentPatchSA.cpp b/SilentPatchSA/SilentPatchSA.cpp
index 3f4dcc6..071835e 100644
--- a/SilentPatchSA/SilentPatchSA.cpp
+++ b/SilentPatchSA/SilentPatchSA.cpp
@@ -2635,6 +2635,15 @@ void Patch_SA_10()
 	Patch<WORD>(0x6FAF32, 0xD1FF);
 	Nop(0x6FAF34, 1);
 
+	// Y axis sensitivity fix
+	// By ThirteenAG
+	float* sens = *(float**)0x50F03C;
+	Patch<const void*>(0x50EB70 + 0x4D6 + 0x2, sens);
+	Patch<const void*>(0x50F970 + 0x1B6 + 0x2, sens);
+	Patch<const void*>(0x5105C0 + 0x666 + 0x2, sens);
+	Patch<const void*>(0x511B50 + 0x2B8 + 0x2, sens);
+	Patch<const void*>(0x521500 + 0xD8C + 0x2, sens);
+
 
 	// Fixed police scanner names
 	char*			pScannerNames = *(char**)0x4E72D4;
@@ -2901,6 +2910,14 @@ void Patch_SA_11()
 	// Game seems to assume they can show together
 	Nop(0x58C25F, 6);
 
+	// Y axis sensitivity fix
+	float* sens = *(float**)0x50F4DC;
+	Patch<const void*>(0x50F4E6 + 0x2, sens);
+	Patch<const void*>(0x50FFC6 + 0x2, sens);
+	Patch<const void*>(0x5110C6 + 0x2, sens);
+	Patch<const void*>(0x5122A8 + 0x2, sens);
+	Patch<const void*>(0x52272C + 0x2, sens);
+
 	// Fixed police scanner names
 	char*			pScannerNames = *(char**)0x4E7714;
 	strcpy(pScannerNames + (8*113), "WESTP");
@@ -3145,6 +3162,14 @@ void Patch_SA_Steam()
 	// Game seems to assume they can show together
 	Nop(0x599CD3, 6);
 
+	// Y axis sensitivity fix
+	float* sens = *(float**)0x51D4FA;
+	Patch<const void*>(0x51D508 + 0x2, sens);
+	Patch<const void*>(0x51E25A + 0x2, sens);
+	Patch<const void*>(0x51F459 + 0x2, sens);
+	Patch<const void*>(0x52086A + 0x2, sens);
+	Patch<const void*>(0x532B9B + 0x2, sens);
+
 	// Fixed police scanner names
 	char*			pScannerNames = *(char**)0x4F2B83;
 	strcpy(pScannerNames + (8*113), "WESTP");
@@ -3315,6 +3340,14 @@ void Patch_SA_NewSteam_r2()
 	// Game seems to assume they can show together
 	Nop(0x597EEA, 6);
 
+	// Y axis sensitivity fix
+	float* sens = *(float**)DynBaseAddress(0x51B987);
+	Patch<const void*>(0x51B993 + 0x2, sens);
+	Patch<const void*>(0x51C68C + 0x2, sens);
+	Patch<const void*>(0x51D73A + 0x2, sens);
+	Patch<const void*>(0x51EA3A + 0x2, sens);
+	Patch<const void*>(0x52FBE1 + 0x2, sens);
+
 	// Proper aspect ratios
 	static const float f43 = 4.0f/3.0f, f54 = 5.0f/4.0f, f169 = 16.0f/9.0f;
 	Patch<const void*>(0x73424B, &f169);
@@ -3390,6 +3423,14 @@ void Patch_SA_NewSteam_r2_lv()
 	// Game seems to assume they can show together
 	Nop(0x597E3A, 6);
 
+	// Y axis sensitivity fix
+	float* sens = *(float**)DynBaseAddress(0x51B8D7);
+	Patch<const void*>(0x51B8E3 + 0x2, sens);
+	Patch<const void*>(0x51C5DC + 0x2, sens);
+	Patch<const void*>(0x51D68A + 0x2, sens);
+	Patch<const void*>(0x51E98A + 0x2, sens);
+	Patch<const void*>(0x52FB31 + 0x2, sens);
+
 	// Proper aspect ratios
 	static const float f43 = 4.0f/3.0f, f54 = 5.0f/4.0f, f169 = 16.0f/9.0f;
 	Patch<const void*>(0x73414B, &f169);