diff options
Diffstat (limited to 'src/audio/AudioManager.cpp')
-rw-r--r-- | src/audio/AudioManager.cpp | 15 |
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 |