reg_t SoundCommandParser::kDoSoundPlay(EngineState *s, int argc, reg_t *argv) { debugC(kDebugLevelSound, "kDoSound(play): %04x:%04x", PRINT_REG(argv[0])); bool playBed = false; if (argc >= 2 && !argv[1].isNull()) playBed = true; processPlaySound(argv[0], playBed); return s->r_acc; }
void SoundCommandParser::startNewSound(int number) { Common::StackLock lock(_music->_mutex); // Overwrite the first sound in the playlist MusicEntry *song = *_music->getPlayListStart(); reg_t soundObj = song->soundObj; processDisposeSound(soundObj); writeSelectorValue(_segMan, soundObj, SELECTOR(number), number); processInitSound(soundObj); processPlaySound(soundObj); }
reg_t SoundCommandParser::kDoSoundPlay(int argc, reg_t *argv, reg_t acc) { debugC(kDebugLevelSound, "kDoSound(play): %04x:%04x", PRINT_REG(argv[0])); processPlaySound(argv[0]); return acc; }