diff --git a/Minecraft.Client/Platform/Common/Audio/SoundEngine.cpp b/Minecraft.Client/Platform/Common/Audio/SoundEngine.cpp index 77bf55d08..d9b52d283 100644 --- a/Minecraft.Client/Platform/Common/Audio/SoundEngine.cpp +++ b/Minecraft.Client/Platform/Common/Audio/SoundEngine.cpp @@ -2387,4 +2387,42 @@ bool SoundEngine::isStreamingWavebankReady() { return true; } char* SoundEngine::ConvertSoundPathToName(const std::wstring& name, bool bConvertSpaces) { return NULL; +} + +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