aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/sound.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2014-04-26 15:00:36 +0300
committerEugene Sandulenko2014-04-26 15:00:36 +0300
commitba14a54d791bb59442c172a0f966a5b13b6a569b (patch)
tree32654be31207b312019ffdeeb78e1b1f6ef877e7 /engines/fullpipe/sound.cpp
parent4598f48fd6a42501e545e275d08b3ec0aadb96a6 (diff)
downloadscummvm-rg350-ba14a54d791bb59442c172a0f966a5b13b6a569b.tar.gz
scummvm-rg350-ba14a54d791bb59442c172a0f966a5b13b6a569b.tar.bz2
scummvm-rg350-ba14a54d791bb59442c172a0f966a5b13b6a569b.zip
FULLPIPE: Implement FullpipeEngine::setSceneMusicParameters()
Diffstat (limited to 'engines/fullpipe/sound.cpp')
-rw-r--r--engines/fullpipe/sound.cpp59
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