From 57098a77eca98fba609d649c0f6f9715e6e7a79a Mon Sep 17 00:00:00 2001
From: erorcun <erorcunerorcun@hotmail.com.tr>
Date: Sat, 26 Dec 2020 12:10:04 +0300
Subject: [PATCH] Backface cull. in INI, mouse sensitivity fix, aspect ratio
 auto as default

---
 src/core/Frontend.cpp | 17 +++++++++++++++++
 src/core/Frontend.h   |  2 +-
 src/core/re3.cpp      |  2 ++
 src/rw/RwHelper.cpp   |  2 +-
 4 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp
index ba13712e..92f98b0d 100644
--- a/src/core/Frontend.cpp
+++ b/src/core/Frontend.cpp
@@ -472,7 +472,11 @@ CMenuManager::CMenuManager()
 	m_PrefsMP3BoostVolume = 0;
 	m_PrefsShowSubtitles = 0;
 	m_PrefsShowLegends = 1;
+#ifdef ASPECT_RATIO_SCALE
+	m_PrefsUseWideScreen = AR_AUTO;
+#else
 	m_PrefsUseWideScreen = 0;
+#endif
 	m_PrefsVsync = 0;
 	m_PrefsVsyncDisp = 1;
 	m_PrefsFrameLimiter = 1;
@@ -703,6 +707,9 @@ CMenuManager::CheckSliderMovement(int value)
 	case MENUACTION_MOUSESENS:
 		TheCamera.m_fMouseAccelHorzntl += value * 1.0f/200.0f/15.0f;	// ???
 		TheCamera.m_fMouseAccelHorzntl = clamp(TheCamera.m_fMouseAccelHorzntl, 1.0f/3200.0f, 1.0f/200.0f);
+#ifdef FIX_BUGS
+		TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
+#endif
 		break;
 	default:
 		return;
@@ -3023,6 +3030,9 @@ CMenuManager::LoadSettings()
 	CFileMgr::CloseFile(fileHandle);
 	CFileMgr::SetDir("");
 
+#ifdef FIX_BUGS
+	TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
+#endif
 #ifdef PC_PLAYER_CONTROLS
 	CCamera::m_bUseMouse3rdPerson = m_ControlMethod == CONTROL_STANDARD;
 #endif
@@ -4721,7 +4731,11 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u
 #endif
 					CRenderer::ms_lodDistScale = m_PrefsLOD;
 					m_PrefsShowSubtitles = false;
+#ifdef ASPECT_RATIO_SCALE
+					m_PrefsUseWideScreen = AR_AUTO;
+#else
 					m_PrefsUseWideScreen = false;
+#endif
 					m_PrefsShowLegends = true;
 					m_PrefsVsyncDisp = true;
 					m_PrefsFrameLimiter = true;
@@ -4757,6 +4771,9 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u
 #endif
 					MousePointerStateHelper.bInvertVertically = true;
 					TheCamera.m_bHeadBob = false;
+#ifdef FIX_BUGS
+					TheCamera.m_fMouseAccelVertical = 0.003f;
+#endif
 					TheCamera.m_fMouseAccelHorzntl = 0.0025f;
 					CVehicle::m_bDisableMouseSteering = true;
 					m_ControlMethod = CONTROL_STANDARD;
diff --git a/src/core/Frontend.h b/src/core/Frontend.h
index 58701ecf..a6be06c4 100644
--- a/src/core/Frontend.h
+++ b/src/core/Frontend.h
@@ -578,7 +578,7 @@ public:
 	int32 field_54;
 	int8 m_bLanguageLoaded;
 	uint8 m_PrefsAllowNastyGame;
-	uint8 m_PrefsMP3BoostVolume;
+	int8 m_PrefsMP3BoostVolume;
 	uint8 m_ControlMethod;
 	int32 m_nPrefsVideoMode;
 	int32 m_nDisplayVideoMode;
diff --git a/src/core/re3.cpp b/src/core/re3.cpp
index d51e50ba..bb5e4ab6 100644
--- a/src/core/re3.cpp
+++ b/src/core/re3.cpp
@@ -195,6 +195,7 @@ void LoadINISettings()
 	CustomPipes::LightmapMult = CheckAndReadIniFloat("CustomPipesValues", "LightmapMult", CustomPipes::LightmapMult);
 	CustomPipes::GlossMult = CheckAndReadIniFloat("CustomPipesValues", "GlossMult", CustomPipes::GlossMult);
 #endif
+	gBackfaceCulling = CheckAndReadIniInt("Rendering", "BackfaceCulling", gBackfaceCulling);
 }
 
 void SaveINISettings()
@@ -233,6 +234,7 @@ void SaveINISettings()
 	CheckAndSaveIniFloat("CustomPipesValues", "LightmapMult", CustomPipes::LightmapMult, changed);
 	CheckAndSaveIniFloat("CustomPipesValues", "GlossMult", CustomPipes::GlossMult, changed);
 #endif
+	CheckAndSaveIniInt("Rendering", "BackfaceCulling", gBackfaceCulling, changed);
 
 	if (changed)
 		cfg.write_file("reVC.ini");
diff --git a/src/rw/RwHelper.cpp b/src/rw/RwHelper.cpp
index 8e41cdc9..2591a6dc 100644
--- a/src/rw/RwHelper.cpp
+++ b/src/rw/RwHelper.cpp
@@ -18,7 +18,7 @@ bool gPS2alphaTest = true;
 #else
 bool gPS2alphaTest = false;
 #endif
-bool gBackfaceCulling;
+bool gBackfaceCulling = true;
 
 #if !defined(FINAL) || defined(DEBUGMENU)
 static bool charsetOpen;