summaryrefslogtreecommitdiffstats
path: root/src/audio/AudioLogic.cpp
diff options
context:
space:
mode:
authorRoman Masanin <36927roma@gmail.com>2020-09-22 18:32:05 +0200
committerRoman Masanin <36927roma@gmail.com>2020-09-22 18:32:05 +0200
commitb2e3d90734b46b36dce0a0fe3b4dd278168b6de2 (patch)
treeac0a593c5bb0e18276b4432c9f2ea2be7333495a /src/audio/AudioLogic.cpp
parentrewisited: (diff)
downloadre3-b2e3d90734b46b36dce0a0fe3b4dd278168b6de2.tar
re3-b2e3d90734b46b36dce0a0fe3b4dd278168b6de2.tar.gz
re3-b2e3d90734b46b36dce0a0fe3b4dd278168b6de2.tar.bz2
re3-b2e3d90734b46b36dce0a0fe3b4dd278168b6de2.tar.lz
re3-b2e3d90734b46b36dce0a0fe3b4dd278168b6de2.tar.xz
re3-b2e3d90734b46b36dce0a0fe3b4dd278168b6de2.tar.zst
re3-b2e3d90734b46b36dce0a0fe3b4dd278168b6de2.zip
Diffstat (limited to 'src/audio/AudioLogic.cpp')
-rw-r--r--src/audio/AudioLogic.cpp60
1 files changed, 53 insertions, 7 deletions
diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp
index cf2fd140..1f6c4a53 100644
--- a/src/audio/AudioLogic.cpp
+++ b/src/audio/AudioLogic.cpp
@@ -39,6 +39,7 @@
#include "sampman.h"
#include "Bike.h"
#include "WindModifiers.h"
+#include "Fluff.h"
const int channels = ARRAY_SIZE(cAudioManager::m_asActiveSamples);
@@ -400,7 +401,7 @@ cAudioManager::ProcessEntity(int32 id)
case AUDIOTYPE_ESCALATOR:
if (!m_nUserPause) {
m_sQueueSample.m_bReverbFlag = true;
- //ProcessEscalators(); //TODO
+ ProcessEscalators();
}
break;
case AUDIOTYPE_EXTRA_SOUNDS:
@@ -3072,6 +3073,7 @@ cAudioManager::ProcessHelicopter(cVehicleParams *params)
return true;
}
+//TODO use it in ProcessVehicle
void
cAudioManager::ProcessPlane(cVehicleParams *params)
{
@@ -4557,12 +4559,14 @@ cAudioManager::ProcessWaterCannon(int32)
}
}
+//positon of arcade machines
CVector aVecExtraSoundPosition[] = { {-1042.546, 88.793999, 11.324}, {-1004.476, 181.69701, 11.324} };
void
cAudioManager::ProcessExtraSounds()
{
- const float extraSoundIntensity = 18;
+ const float extraSoundIntensity = 18.0f;
+ const uint8 extraSoundVolume = 50;
float distance;
@@ -4574,22 +4578,22 @@ cAudioManager::ProcessExtraSounds()
m_sQueueSample.m_fDistance = Sqrt(distance);
else
m_sQueueSample.m_fDistance = 0.0f;
- m_sQueueSample.m_nVolume = ComputeVolume(50, 18.0f, m_sQueueSample.m_fDistance);
+ m_sQueueSample.m_nVolume = ComputeVolume(extraSoundVolume, extraSoundIntensity, m_sQueueSample.m_fDistance);
if (m_sQueueSample.m_nVolume != 0) {
this->m_sQueueSample.m_nCounter = i;
this->m_sQueueSample.m_nSampleIndex = SFX_ARCADE;
- this->m_sQueueSample.m_nBankIndex = 0;
+ this->m_sQueueSample.m_nBankIndex = SFX_BANK_0;
this->m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ARCADE);
this->m_sQueueSample.m_bIs2D = false;
this->m_sQueueSample.m_nLoopCount = 0;
this->m_sQueueSample.m_bReleasingSoundFlag = false;
this->m_sQueueSample.m_nReleasingVolumeModificator = 4;
- this->m_sQueueSample.m_fSpeedMultiplier = 3.0;
- this->m_sQueueSample.m_nEmittingVolume = 50;
+ this->m_sQueueSample.m_fSpeedMultiplier = 3.0f;
+ this->m_sQueueSample.m_nEmittingVolume = extraSoundVolume;
this->m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(SFX_ARCADE);
this->m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(SFX_ARCADE);
this->m_sQueueSample.m_bReverbFlag = true;
- this->m_sQueueSample.m_fSoundIntensity = 18.0f;
+ this->m_sQueueSample.m_fSoundIntensity = extraSoundIntensity;
this->m_sQueueSample.m_bRequireReflection = false;
this->m_sQueueSample.m_nReleasingVolumeDivider = 3;
AddSampleToRequestedQueue();
@@ -4598,6 +4602,48 @@ cAudioManager::ProcessExtraSounds()
}
}
+void
+cAudioManager::ProcessEscalators()
+{
+ const float escalatorsSoundIntensity = 30.0f;
+ const uint8 escalatorsSoundVolume = 26;
+
+ float distance;
+
+ for (int i = 0; i < CEscalators::NumEscalators; i++) {
+ if (!CEscalators::aEscalators[i].m_bIsActive)
+ continue;
+ m_sQueueSample.m_vecPos = CEscalators::aEscalators[i].m_midPoint;
+ distance = GetDistanceSquared(m_sQueueSample.m_vecPos);
+ if (distance < SQR(escalatorsSoundIntensity)) {
+ if (distance > 0.0)
+ m_sQueueSample.m_fDistance = Sqrt(distance);
+ else
+ m_sQueueSample.m_fDistance = 0.0f;
+ m_sQueueSample.m_nVolume = ComputeVolume(escalatorsSoundVolume, escalatorsSoundIntensity, m_sQueueSample.m_fDistance);
+ if (m_sQueueSample.m_nVolume != 0) {
+ this->m_sQueueSample.m_nSampleIndex = SFX_BOAT_V12_LOOP;
+ this->m_sQueueSample.m_nBankIndex = SFX_BANK_0;
+ this->m_sQueueSample.m_nFrequency = i * 50 % 250 + 3973;
+ this->m_sQueueSample.m_nReleasingVolumeModificator = 3;
+ this->m_sQueueSample.m_fSpeedMultiplier = 3.0f;
+ this->m_sQueueSample.m_nReleasingVolumeDivider = 5;
+ this->m_sQueueSample.m_fSoundIntensity = escalatorsSoundIntensity;
+ this->m_sQueueSample.m_nCounter = i;
+ this->m_sQueueSample.m_bIs2D = false;
+ this->m_sQueueSample.m_nLoopCount = 0;
+ this->m_sQueueSample.m_nEmittingVolume = escalatorsSoundVolume;
+ this->m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(SFX_BOAT_V12_LOOP);
+ this->m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(SFX_BOAT_V12_LOOP);
+ this->m_sQueueSample.m_bReverbFlag = true;
+ this->m_sQueueSample.m_bReleasingSoundFlag = false;
+ this->m_sQueueSample.m_bRequireReflection = false;
+ AddSampleToRequestedQueue();
+ }
+ }
+ }
+}
+
#pragma region SCRIPT_OBJECTS
const int SCRIPT_OBJECT_INTENSITY_S = 30;
const int SCRIPT_OBJECT_INTENSITY_L = 80;