diff options
Diffstat (limited to 'Minecraft.Client/Common/Audio/Consoles_SoundEngine.cpp')
| -rw-r--r-- | Minecraft.Client/Common/Audio/Consoles_SoundEngine.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/Audio/Consoles_SoundEngine.cpp b/Minecraft.Client/Common/Audio/Consoles_SoundEngine.cpp index 269b605b..e440316d 100644 --- a/Minecraft.Client/Common/Audio/Consoles_SoundEngine.cpp +++ b/Minecraft.Client/Common/Audio/Consoles_SoundEngine.cpp @@ -35,4 +35,43 @@ void ConsoleSoundEngine::SetIsPlayingNetherMusic(bool bVal) m_bIsPlayingNetherMusic=bVal; } +void ConsoleSoundEngine::tick() +{ + if (scheduledSounds.empty()) + { + return; + } + + for(AUTO_VAR(it,scheduledSounds.begin()); it != scheduledSounds.end();) + { + SoundEngine::ScheduledSound *next = *it; + next->delay--; + + if (next->delay <= 0) + { + play(next->iSound, next->x, next->y, next->z, next->volume, next->pitch); + it =scheduledSounds.erase(it); + delete next; + } + else + { + ++it; + } + } +} +void ConsoleSoundEngine::schedule(int iSound, float x, float y, float z, float volume, float pitch, int delayTicks) +{ + scheduledSounds.push_back(new SoundEngine::ScheduledSound(iSound, x, y, z, volume, pitch, delayTicks)); +} + +ConsoleSoundEngine::ScheduledSound::ScheduledSound(int iSound, float x, float y, float z, float volume, float pitch, int delay) +{ + this->iSound = iSound; + this->x = x; + this->y = y; + this->z = z; + this->volume = volume; + this->pitch = pitch; + this->delay = delay; +}
\ No newline at end of file |
