summaryrefslogtreecommitdiffstats
path: root/src/audio/AudioManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/AudioManager.cpp')
-rw-r--r--src/audio/AudioManager.cpp72
1 files changed, 36 insertions, 36 deletions
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp
index d4371273..703e0d32 100644
--- a/src/audio/AudioManager.cpp
+++ b/src/audio/AudioManager.cpp
@@ -415,47 +415,47 @@ cAudioManager::AddReleasingSounds()
{
bool toProcess[44];
- for(int32 i = 0; i < m_bSampleRequestQueuesStatus[m_bActiveSampleQueue]; i++) {
- tActiveSample &sample =
- m_asSamples[!m_bActiveSampleQueue][m_abSampleQueueIndexTable[!m_bActiveSampleQueue][i]];
- if(!m_asSamples[!m_bActiveSampleQueue][m_abSampleQueueIndexTable[!m_bActiveSampleQueue][i]]
- .m_bLoopEnded) {
- toProcess[i] = false;
- for(int32 j = 0; j < m_bSampleRequestQueuesStatus[m_bActiveSampleQueue]; j++) {
- if(sample.m_nEntityIndex ==
- m_asSamples[m_bActiveSampleQueue]
- [m_abSampleQueueIndexTable[m_bActiveSampleQueue][j]]
- .m_nEntityIndex &&
- sample.m_counter == m_asSamples[m_bActiveSampleQueue]
- [m_abSampleQueueIndexTable[m_bActiveSampleQueue][j]]
- .m_counter) {
- toProcess[i] = true;
- break;
- }
+ int8 queue = m_bActiveSampleQueue == 0;
+
+ for(int32 i = 0; i < m_bSampleRequestQueuesStatus[queue]; i++) {
+ tActiveSample &sample = m_asSamples[queue][m_abSampleQueueIndexTable[queue][i]];
+ if (sample.m_bLoopEnded) continue;
+
+ toProcess[i] = false;
+ for(int32 j = 0; j < m_bSampleRequestQueuesStatus[m_bActiveSampleQueue]; j++) {
+ if(sample.m_nEntityIndex ==
+ m_asSamples[m_bActiveSampleQueue]
+ [m_abSampleQueueIndexTable[m_bActiveSampleQueue][j]]
+ .m_nEntityIndex &&
+ sample.m_counter == m_asSamples[m_bActiveSampleQueue]
+ [m_abSampleQueueIndexTable[m_bActiveSampleQueue][j]]
+ .m_counter) {
+ toProcess[i] = true;
+ break;
}
- if(!toProcess[i]) {
- if(sample.m_counter <= 255u || !sample.m_bLoopsRemaining) {
- if(!sample.field_76) continue;
- if(!sample.m_nLoopCount) {
- if(sample.field_88 == -1) {
- sample.field_88 = sample.m_bVolume / sample.field_76;
- if(sample.field_88 <= 0) sample.field_88 = 1;
- }
- if(sample.m_bVolume <= sample.field_88) {
- sample.field_76 = 0;
- continue;
- }
- sample.m_bVolume -= sample.field_88;
+ }
+ if(!toProcess[i]) {
+ if(sample.m_counter <= 255u || !sample.m_bLoopsRemaining) {
+ if(!sample.field_76) continue;
+ if(!sample.m_nLoopCount) {
+ if(sample.field_88 == -1) {
+ sample.field_88 = sample.m_bVolume / sample.field_76;
+ if(sample.field_88 <= 0) sample.field_88 = 1;
}
- --sample.field_76;
- if(field_2) {
- if(sample.field_16 < 20) ++sample.field_16;
+ if(sample.m_bVolume <= sample.field_88) {
+ sample.field_76 = 0;
+ continue;
}
- sample.field_56 = 0;
+ sample.m_bVolume -= sample.field_88;
}
- memcpy(&m_sQueueSample, &sample, 92);
- AddSampleToRequestedQueue();
+ --sample.field_76;
+ if(field_2) {
+ if(sample.field_16 < 20) ++sample.field_16;
+ }
+ sample.field_56 = 0;
}
+ memcpy(&m_sQueueSample, &sample, sizeof(sample));
+ AddSampleToRequestedQueue();
}
}
}