From 3cc9eb1c1c9fd8e07bf5d0bdbd45597a8333aa38 Mon Sep 17 00:00:00 2001
From: Sergeanur <s.anureev@yandex.ua>
Date: Sat, 12 Jun 2021 19:37:55 +0300
Subject: Fix cAudioManager::ProcessCarHeli

---
 src/audio/AudioLogic.cpp | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

(limited to 'src/audio/AudioLogic.cpp')

diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp
index a199266c..fd3a3703 100644
--- a/src/audio/AudioLogic.cpp
+++ b/src/audio/AudioLogic.cpp
@@ -3561,6 +3561,17 @@ cAudioManager::ProcessCarHeli(cVehicleParams& params)
 			AddSampleToRequestedQueue();
 		}
 	}
+	
+	CVector backPropellerPos;
+	if (automobile != nil)
+		automobile->GetComponentWorldPosition(CAR_BOOT, backPropellerPos);
+	else if (params.m_VehicleType == VEHICLE_TYPE_HELI) 
+#ifdef FIX_BUGS
+		backPropellerPos = 
+#endif
+		params.m_pVehicle->GetMatrix() * CVector(0.0f, -10.0f, 0.0f);
+	else
+		backPropellerPos = m_sQueueSample.m_vecPos;
 
 	if (params.m_fDistance >= SQR(140.0f))
 		return;
@@ -3765,12 +3776,8 @@ cAudioManager::ProcessCarHeli(cVehicleParams& params)
 		vecPosOld = m_sQueueSample.m_vecPos;
 		distanceCalculatedOld = params.m_bDistanceCalculated;
 		distanceOld = params.m_fDistance;
-		
-		if (automobile != nil)
-			automobile->GetComponentWorldPosition(CAR_BOOT, m_sQueueSample.m_vecPos);
-		else if (params.m_VehicleType == VEHICLE_TYPE_HELI) 
-			m_sQueueSample.m_vecPos = CVector(0.0f, -10.0f, 0.0f); //this is from android, but for real it's not used
 
+		m_sQueueSample.m_vecPos = backPropellerPos;
 		params.m_bDistanceCalculated = FALSE;
 		params.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos);
 		if (params.m_fDistance < SQR(27.0f)) {
@@ -3779,7 +3786,7 @@ cAudioManager::ProcessCarHeli(cVehicleParams& params)
 			if (m_sQueueSample.m_nVolume) {
 				m_sQueueSample.m_nCounter = 2;
 				m_sQueueSample.m_nSampleIndex = hunterBool ? SFX_HELI_APACHE_3 : SFX_CAR_HELI_REA;
-				m_sQueueSample.m_nBankIndex = 0;
+				m_sQueueSample.m_nBankIndex = SFX_BANK_0;
 				m_sQueueSample.m_bIs2D = FALSE;
 				m_sQueueSample.m_nReleasingVolumeModificator = 1;
 				m_sQueueSample.m_nFrequency = (volumeModifier + 1.0f) * 16000;
-- 
cgit v1.2.3