diff options
author | Eugene Sandulenko | 2014-04-26 15:00:36 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2014-04-26 15:00:36 +0300 |
commit | ba14a54d791bb59442c172a0f966a5b13b6a569b (patch) | |
tree | 32654be31207b312019ffdeeb78e1b1f6ef877e7 | |
parent | 4598f48fd6a42501e545e275d08b3ec0aadb96a6 (diff) | |
download | scummvm-rg350-ba14a54d791bb59442c172a0f966a5b13b6a569b.tar.gz scummvm-rg350-ba14a54d791bb59442c172a0f966a5b13b6a569b.tar.bz2 scummvm-rg350-ba14a54d791bb59442c172a0f966a5b13b6a569b.zip |
FULLPIPE: Implement FullpipeEngine::setSceneMusicParameters()
-rw-r--r-- | engines/fullpipe/sound.cpp | 59 |
1 files changed, 56 insertions, 3 deletions
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp index fd84bcde43..d0f8fbd21b 100644 --- a/engines/fullpipe/sound.cpp +++ b/engines/fullpipe/sound.cpp @@ -123,11 +123,62 @@ void Sound::setPanAndVolume(int vol, int pan) { warning("STUB: Sound::setPanAndVolume"); } -void FullpipeEngine::setSceneMusicParameters(GameVar *var) { +void FullpipeEngine::setSceneMusicParameters(GameVar *gvar) { warning("STUB: FullpipeEngine::setSceneMusicParameters()"); - // TODO: Finish this (MINDELAY, MAXDELAY, LOCAL, SEQUENCE, STARTDELAY etc) - stopAllSoundStreams(); +#if 0 + stopSoundStream2(); + + if (soundStream3) + FSOUND_Stream_Stop(soundStream4); +#endif + + if (_musicLocal) + stopAllSoundStreams(); + + GameVar *var = gvar->getSubVarByName("MUSIC"); + + memset(_sceneTracks, 0, sizeof(_sceneTracks)); + + _numSceneTracks = 0; + _sceneTrackHasSequence = false; + + if (!var) + return; + _musicGameVar = var; + + GameVar *tr = var->getSubVarByName("TRACKS"); + if (tr) { + GameVar *sub = tr->_subVars; + + while (sub) { + if (_musicAllowed & sub->_value.intValue) { + strcpy(_sceneTracks[_numSceneTracks], sub->_varName); + + _numSceneTracks++; + } + + sub = sub->_nextVarObj; + } + } + + _musicMinDelay = var->getSubVarAsInt("MINDELAY"); + _musicMaxDelay = var->getSubVarAsInt("MAXDELAY"); + _musicLocal = var->getSubVarAsInt("LOCAL"); + + GameVar *seq = var->getSubVarByName("SEQUENCE"); + + if (seq) { + _sceneTrackHasSequence = true; + + strcpy(_trackName, seq->_value.stringValue); + } + + if (_musicLocal) + stopAllSoundStreams(); + + if (!_sceneTrackIsPlaying || _musicLocal) + _trackStartDelay = var->getSubVarAsInt("STARTDELAY"); } void FullpipeEngine::startSceneTrack() { @@ -182,6 +233,8 @@ int FullpipeEngine::getSceneTrack() { } void FullpipeEngine::startSoundStream1(char *trackName) { + warning("STUB: FullpipeEngine::startSoundStream1(%s)", trackName); + stopAllSoundStreams(); #ifdef USE_VORBIS |