diff options
Diffstat (limited to 'engines/toltecs/script.cpp')
-rw-r--r-- | engines/toltecs/script.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/engines/toltecs/script.cpp b/engines/toltecs/script.cpp index 13cc0ea5e0..4f50ca265b 100644 --- a/engines/toltecs/script.cpp +++ b/engines/toltecs/script.cpp @@ -41,6 +41,7 @@ #include "toltecs/script.h" #include "toltecs/screen.h" #include "toltecs/segmap.h" +#include "toltecs/sound.h" namespace Toltecs { @@ -445,7 +446,7 @@ void ScriptInterpreter::execKernelOpcode(uint16 kernelOpcode) { debug(0, "o2_updateScreen()"); - // TODO? updateSamples(); + _vm->_sound->updateSpeech(); _vm->_screen->updateShakeScreen(); @@ -592,6 +593,7 @@ void ScriptInterpreter::execKernelOpcode(uint16 kernelOpcode) { { debug(0, "o2_loadScene(resIndex: %d; flag: %d)", arg16(4), arg8(3)); if (arg8(3) == 0) { + _vm->_sound->stopSpeech(); _vm->loadScene(arg16(4)); } else { _vm->_screen->loadMouseCursor(arg16(4)); @@ -845,7 +847,10 @@ void ScriptInterpreter::execKernelOpcode(uint16 kernelOpcode) { case 54:// TODO { - debug(0, "o2_playSound2(%d, %d, %d)", arg16(7), arg16(5), arg16(3)); + //debug(0, "o2_playSound2(%d, %d, %d)", arg16(7), arg16(5), arg16(3)); + + _vm->_sound->playSound(arg16(3), arg16(5), arg16(7)); + break; } @@ -878,15 +883,13 @@ void ScriptInterpreter::execKernelOpcode(uint16 kernelOpcode) { case 59:// TODO { - debug(0, "o2_precacheResources(%04X)", arg16(3)); + debug(0, "o2_precacheSprites(%04X)", arg16(3)); break; } case 60:// TODO { debug(0, "o2_precacheSounds1(%04X)", arg16(3)); - // CHECKME - _vm->_screen->clearSprites(); break; } @@ -896,6 +899,12 @@ void ScriptInterpreter::execKernelOpcode(uint16 kernelOpcode) { break; } + case 62:// TODO - this opcode was never executed while I completed the game + { + debug(0, "o2_precacheSounds2(%04X)", arg16(3)); + break; + } + case 63:// ok { _regs.sp = _savedSp; |