Add workaround in "o2_isAnySoundPlaying", which will hopefully make Kyra2 work on the Nintendo DS.

svn-id: r44163
This commit is contained in:
Johannes Schickel 2009-09-17 16:01:21 +00:00
parent 297a130d5e
commit d98b1472ca

View File

@ -727,6 +727,20 @@ int KyraEngine_HoF::o2_showItemString(EMCState *script) {
int KyraEngine_HoF::o2_isAnySoundPlaying(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_HoF::o2_isAnySoundPlaying(%p) ()", (const void *)script);
// WORKAROUND
//
// The input script function in the skull scene does busy wait
// for the sound effect, which is played after completing the
// song, to finish. To avoid too much CPU use, we add some slight
// delay here.
//
// Also the Ninteno DS backend seems only to update the sound, when
// either OSystem::updateScreen or OSystem::delayMillis is called.
// So we have to call delay here, since otherwise the game would hang.
if (_currentScene == 16 && _currentChapter == 1)
delay(_tickLength);
return _sound->voiceIsPlaying() ? 1 : 0;
}