summaryrefslogtreecommitdiffstats
path: root/src/audio/AudioManager.cpp
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2021-08-21 12:25:42 +0200
committerSergeanur <s.anureev@yandex.ua>2021-08-21 12:25:42 +0200
commite0be6beb18e55338cda7a613bb9b8df798c81b17 (patch)
tree22514458646c67c2981ea368b00d474a50b4de86 /src/audio/AudioManager.cpp
parentcar ctrl fixes (diff)
parentRemove cMissionAudio, move cAMCrime array outside of cPoliceRadioQueue (R* vision) (diff)
downloadre3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.gz
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.bz2
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.lz
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.xz
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.zst
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.zip
Diffstat (limited to 'src/audio/AudioManager.cpp')
-rw-r--r--src/audio/AudioManager.cpp45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp
index 9068b4dd..a2b4a87c 100644
--- a/src/audio/AudioManager.cpp
+++ b/src/audio/AudioManager.cpp
@@ -495,17 +495,18 @@ cAudioManager::ServiceSoundEffects()
#endif
m_bReduceReleasingPriority = (m_FrameCounter++ % 5) == 0;
if (m_nUserPause && !m_nPreviousUserPause) {
- for (int32 i = 0; i < NUM_CHANNELS_GENERIC; i++)
+ for (uint32 i = 0; i < NUM_CHANNELS_GENERIC; i++)
SampleManager.StopChannel(i);
-
SampleManager.SetChannelFrequency(CHANNEL_POLICE_RADIO, 0);
SampleManager.SetChannelFrequency(CHANNEL_MISSION_AUDIO_1, 0);
SampleManager.SetChannelFrequency(CHANNEL_MISSION_AUDIO_2, 0);
-
- // ps2 code just stops the sound here for some reason
- //SampleManager.StopChannel(CHANNEL_MISSION_AUDIO_1);
- //SampleManager.StopChannel(CHANNEL_MISSION_AUDIO_2);
-
+ SampleManager.StopChannel(CHANNEL_PLAYER_VEHICLE_ENGINE);
+#if defined(GTA_PS2) || defined(GTA_PSP)
+ // PSP and PS2 just stop the sound, mobile doesn't. Let's not have it on PC either
+ uint8 missionAudioChannel = m_bIsSurround ? CHANNEL_DTS_MISSION_AUDIO_1 : CHANNEL_MISSION_AUDIO_1;
+ SampleManager.StopChannel(missionAudioChannel);
+ SampleManager.StopChannel(missionAudioChannel+1);
+#endif
ClearRequestedQueue();
if (m_nActiveSampleQueue) {
m_nActiveSampleQueue = 0;
@@ -990,7 +991,7 @@ cAudioManager::ProcessActiveQueues()
uint8 emittingVol;
CVector position;
- bool8 missionState;
+ bool8 isPhoneCall;
uint8 channelOffset = 0;
for (int32 i = 0; i < m_nActiveSamples; i++) {
@@ -1056,18 +1057,18 @@ cAudioManager::ProcessActiveQueues()
#endif
emittingVol = m_bDoubleVolume ? 2 * Min(63, vol) : vol;
- missionState = FALSE;
+ isPhoneCall = FALSE;
for (int32 k = 0; k < MISSION_AUDIO_SLOTS; k++) {
- if (m_sMissionAudio.m_bIsMobile[k]) {
- missionState = TRUE;
+ if (m_bIsMissionAudioPhoneCall[k]) {
+ isPhoneCall = TRUE;
break;
}
}
- if (missionState) {
- emittingVol = (emittingVol * field_5538) / 127;
+ if (isPhoneCall) {
+ emittingVol = (emittingVol * m_nGlobalSfxVolumeMultiplier) / 127;
} else {
- if (field_5538 < 127)
- emittingVol = (emittingVol * field_5538) / 127;
+ if (m_nGlobalSfxVolumeMultiplier < 127)
+ emittingVol = (emittingVol * m_nGlobalSfxVolumeMultiplier) / 127;
}
#ifdef EXTERNAL_3D_SOUND
@@ -1145,19 +1146,19 @@ cAudioManager::ProcessActiveQueues()
if (SampleManager.InitialiseChannel(k, m_asActiveSamples[k].m_nSampleIndex, m_asActiveSamples[k].m_nBankIndex)) {
#endif
SampleManager.SetChannelFrequency(k, m_asActiveSamples[k].m_nFrequency);
- bool8 isMobile = FALSE;
+ isPhoneCall = FALSE;
for (int32 l = 0; l < MISSION_AUDIO_SLOTS; l++) {
- if (m_sMissionAudio.m_bIsMobile[l]) {
- isMobile = TRUE;
+ if (m_bIsMissionAudioPhoneCall[l]) {
+ isPhoneCall = TRUE;
break;
}
}
- if (!isMobile || m_asActiveSamples[k].m_bIs2D) {
- if (field_5538 < 127)
- emittingVol *= field_5538 / 127;
+ if (!isPhoneCall || m_asActiveSamples[k].m_bIs2D) {
+ if (m_nGlobalSfxVolumeMultiplier < 127)
+ emittingVol = (emittingVol * m_nGlobalSfxVolumeMultiplier) / 127;
vol = emittingVol;
} else {
- vol = (emittingVol * field_5538 / 127);
+ vol = (emittingVol * m_nGlobalSfxVolumeMultiplier) / 127;
}
#ifdef EXTERNAL_3D_SOUND
SampleManager.SetChannelEmittingVolume(k, vol);