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.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp
index 757ffa79..5a290d28 100644
--- a/src/audio/AudioManager.cpp
+++ b/src/audio/AudioManager.cpp
@@ -10,8 +10,21 @@ cAudioManager::PlayerJustLeftCar(void)
// UNUSED: This is a perfectly empty function.
}
+void
+cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase,
+ eAudioSamples sample, uint32 maxOffset)
+{
+ *phrase = (uint32)sample +
+ (uint32)m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] %
+ maxOffset;
+ if(*phrase == *prevPhrase && ++*phrase >= (uint32)sample + maxOffset)
+ *phrase = (uint32)sample;
+ *prevPhrase = *phrase;
+}
+
WRAPPER void cAudioManager::Service() { EAXJMP(0x57A2A0); }
STARTPATCHES
InjectHook(0x56AD20, &cAudioManager::PlayerJustLeftCar, PATCH_JUMP);
-ENDPATCHES \ No newline at end of file
+ InjectHook(0x570DB0, &cAudioManager::GetPhrase, PATCH_JUMP);
+ENDPATCHES