[Scummvm-cvs-logs] scummvm master -> 2f10c8ec55e5e8f43f6932199ec3bc402e0ec139
sev-
sev at scummvm.org
Sat Apr 26 14:17:57 CEST 2014
This automated email contains information about 9 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
cb565e9eaf FULLPIPE: Implement FullpipeEngine::toggleMute()
aad1d556d6 FULLPIPE: Implement FullpipeEngine::updateSoundVolume()
fd8eb9a0e3 FULLPIPE: Implement FullpipeEngine::processArcade()
d12d69631d FULLPIPE: Implement FullpipeEngine::playTrack()
81b24d0c40 FULLPIPE: Proper implementation of FullpipeEngine::startSceneTrack()
e804b8fa2c FULLPIPE: Implement FullpipeEngine::getSceneTrack()
4598f48fd6 FULLPIPE: Remove redundant object casts
ba14a54d79 FULLPIPE: Implement FullpipeEngine::setSceneMusicParameters()
2f10c8ec55 FULLPIPE: Proper implementation of FullpipeEngine::playSound()
Commit: cb565e9eafc34b26d160dd4c5c4cf64e05872498
https://github.com/scummvm/scummvm/commit/cb565e9eafc34b26d160dd4c5c4cf64e05872498
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T13:13:07+03:00
Commit Message:
FULLPIPE: Implement FullpipeEngine::toggleMute()
Changed paths:
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index aa91f25..03e350b 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -158,7 +158,11 @@ void FullpipeEngine::stopAllSounds() {
}
void FullpipeEngine::toggleMute() {
- warning("STUB: FullpipeEngine::toggleMute()");
+ if (g_fp->_soundEnabled) {
+ g_fp->_sfxVolume = g_fp->_sfxVolume != -10000 ? -10000 : 0;
+
+ updateSoundVolume();
+ }
}
void FullpipeEngine::playSound(int id, int flag) {
Commit: aad1d556d657bdb39c1cd0b896f90cd09d5dd5aa
https://github.com/scummvm/scummvm/commit/aad1d556d657bdb39c1cd0b896f90cd09d5dd5aa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T13:18:55+03:00
Commit Message:
FULLPIPE: Implement FullpipeEngine::updateSoundVolume()
Changed paths:
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 03e350b..774c687 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -208,7 +208,10 @@ void FullpipeEngine::stopAllSoundInstances(int id) {
}
void FullpipeEngine::updateSoundVolume() {
- debug(3, "STUB FullpipeEngine::updateSoundVolume()");
+ for (int i = 0; i < _currSoundListCount; i++)
+ for (int j = 0; i < _currSoundList1[i]->getCount(); j++) {
+ g_fp->_currSoundList1[i]->getSoundByIndex(j)->setPanAndVolume(g_fp->_sfxVolume, 0);
+ }
}
void FullpipeEngine::setMusicVolume(int vol) {
Commit: fd8eb9a0e39ebeaa8f0bc69577e1d0cd4e94b8a6
https://github.com/scummvm/scummvm/commit/fd8eb9a0e39ebeaa8f0bc69577e1d0cd4e94b8a6
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T14:02:04+03:00
Commit Message:
FULLPIPE: Implement FullpipeEngine::processArcade()
Changed paths:
engines/fullpipe/input.cpp
engines/fullpipe/scenes.cpp
diff --git a/engines/fullpipe/input.cpp b/engines/fullpipe/input.cpp
index 0678d15..3d6f53c 100644
--- a/engines/fullpipe/input.cpp
+++ b/engines/fullpipe/input.cpp
@@ -275,6 +275,8 @@ void FullpipeEngine::updateCursorCommon() {
}
void FullpipeEngine::initArcadeKeys(const char *varname) {
+ _arcadeKeys.clear();
+
GameVar *var = getGameLoaderGameVar()->getSubVarByName(varname)->getSubVarByName("KEYPOS");
if (!var)
@@ -294,6 +296,37 @@ void FullpipeEngine::initArcadeKeys(const char *varname) {
}
}
+void FullpipeEngine::processArcade(ExCommand *cmd) {
+ if (!g_fp->_aniMan2)
+ return;
+
+ int idx;
+
+ if (cmd->_sceneClickX <= g_fp->_aniMan2->_ox) {
+ for (idx = _arcadeKeys.size() - 1; idx >= 0; idx--) {
+ if (_arcadeKeys[idx]->x < g_fp->_aniMan2->_ox)
+ break;
+ }
+
+ if (idx < 0)
+ return;
+ } else {
+ for (idx = 0; idx < _arcadeKeys.size(); idx++) {
+ if (_arcadeKeys[idx]->x > g_fp->_aniMan2->_ox)
+ break;
+ }
+
+ if (idx >= _arcadeKeys.size())
+ return;
+ }
+
+ cmd->_sceneClickX = _arcadeKeys[idx]->x;
+ cmd->_sceneClickY = _arcadeKeys[idx]->y;
+
+ cmd->_x = cmd->_sceneClickX - g_fp->_sceneRect.left;
+ cmd->_y = cmd->_sceneClickY - g_fp->_sceneRect.top;
+}
+
void FullpipeEngine::setArcadeOverlay(int picId) {
Common::Point point;
Common::Point point2;
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 47c6a3c..7420c1b1 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -1106,10 +1106,6 @@ int defaultUpdateCursor() {
return g_fp->_cursorId;
}
-void FullpipeEngine::processArcade(ExCommand *ex) {
- warning("STUB: FullpipeEngine::processArcade()");
-}
-
void FullpipeEngine::updateMapPiece(int mapId, int update) {
for (int i = 0; i < 200; i++) {
int hiWord = (_mapTable[i] >> 16) & 0xffff;
Commit: d12d69631d9a01dcf06d06b5271034769117035a
https://github.com/scummvm/scummvm/commit/d12d69631d9a01dcf06d06b5271034769117035a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T14:22:50+03:00
Commit Message:
FULLPIPE: Implement FullpipeEngine::playTrack()
Changed paths:
engines/fullpipe/fullpipe.cpp
engines/fullpipe/fullpipe.h
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index 246510e..5369c05 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -104,6 +104,18 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc)
_musicAllowed = -1;
_musicGameVar = 0;
+ _musicMinDelay = 0;
+ _musicMaxDelay = 0;
+ _musicLocal = 0;
+ _trackStartDelay = 0;
+
+ memset(_sceneTracks, 0, sizeof(_sceneTracks));
+ memset(_trackName, 0, sizeof(_trackName));
+ memset(_sceneTracksCurrentTrack, 0, sizeof(_sceneTracksCurrentTrack));
+
+ _numSceneTracks = 0;
+ _sceneTrackHasSequence = false;
+ _sceneTrackIsPlaying = false;
_aniMan = 0;
_aniMan2 = 0;
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 5718b16..989971e 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -151,6 +151,16 @@ public:
int _currSoundListCount;
bool _soundEnabled;
bool _flgSoundList;
+ char _sceneTracks[10][260];
+ int _numSceneTracks;
+ bool _sceneTrackHasSequence;
+ int _musicMinDelay;
+ int _musicMaxDelay;
+ int _musicLocal;
+ char _trackName[2600];
+ int _trackStartDelay;
+ char _sceneTracksCurrentTrack[260];
+ bool _sceneTrackIsPlaying;
void stopAllSounds();
void toggleMute();
@@ -300,6 +310,7 @@ public:
GameVar *_musicGameVar;
Audio::SoundHandle _sceneTrackHandle;
+
public:
bool _isSaveAllowed;
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 774c687..10d020b 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -182,6 +182,62 @@ void FullpipeEngine::playSound(int id, int flag) {
void FullpipeEngine::playTrack(GameVar *sceneVar, const char *name, bool delayed) {
warning("STUB: FullpipeEngine::playTrack(var, %s, %d)", name, delayed);
+#if 0
+ stopSoundStream2();
+
+ if (soundStream3)
+ FSOUND_Stream_Stop(soundStream4);
+#endif
+
+ if (g_fp->_musicLocal)
+ stopAllSoundStreams();
+
+ GameVar *var = sceneVar->getSubVarByName(name);
+
+ memset(g_fp->_sceneTracks, 0, sizeof(g_fp->_sceneTracks));
+
+ g_fp->_numSceneTracks = 0;
+ g_fp->_sceneTrackHasSequence = false;
+
+ if (!var)
+ return;
+
+ g_fp->_musicGameVar = var;
+
+ GameVar *tr = var->getSubVarByName("TRACKS");
+ if (tr) {
+ GameVar *sub = tr->_subVars;
+
+ while (sub) {
+ if (g_fp->_musicAllowed & sub->_value.intValue) {
+ strcpy(g_fp->_sceneTracks[g_fp->_numSceneTracks], sub->_varName);
+
+ g_fp->_numSceneTracks++;
+ }
+
+ sub = sub->_nextVarObj;
+ }
+ }
+
+ g_fp->_musicMinDelay = var->getSubVarAsInt("MINDELAY");
+ g_fp->_musicMaxDelay = var->getSubVarAsInt("MAXDELAY");
+ g_fp->_musicLocal = var->getSubVarAsInt("LOCAL");
+
+ GameVar *seq = var->getSubVarByName("SEQUENCE");
+ if (seq) {
+ g_fp->_sceneTrackHasSequence = true;
+
+ strcpy(g_fp->_trackName, seq->_value.stringValue);
+ }
+
+ if (delayed) {
+ if (g_fp->_sceneTrackIsPlaying && g_fp->_numSceneTracks == 1) {
+ if (strcmp(g_fp->_sceneTracksCurrentTrack, g_fp->_sceneTracks[0]))
+ stopAllSoundStreams();
+ }
+
+ g_fp->_trackStartDelay = var->getSubVarAsInt("STARTDELAY");
+ }
}
void global_messageHandler_handleSound(ExCommand *cmd) {
Commit: 81b24d0c4042cec0b11fff73c5594f386c06418e
https://github.com/scummvm/scummvm/commit/81b24d0c4042cec0b11fff73c5594f386c06418e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T14:34:12+03:00
Commit Message:
FULLPIPE: Proper implementation of FullpipeEngine::startSceneTrack()
Changed paths:
engines/fullpipe/fullpipe.h
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 989971e..2750525 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -166,7 +166,9 @@ public:
void toggleMute();
void playSound(int id, int flag);
void playTrack(GameVar *sceneVar, const char *name, bool delayed);
+ int getSceneTrack();
void startSceneTrack();
+ void startSoundStream1(char *trackName);
void stopSoundStream2();
void stopAllSoundStreams();
void stopAllSoundInstances(int id);
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 10d020b..8071129 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -131,16 +131,41 @@ void FullpipeEngine::setSceneMusicParameters(GameVar *var) {
}
void FullpipeEngine::startSceneTrack() {
- // TODO: Finish this
+ if (!g_fp->_sceneTrackIsPlaying && g_fp->_numSceneTracks > 0) {
+ if (g_fp->_trackStartDelay > 0) {
+ g_fp->_trackStartDelay--;
+ } else {
+ int trackNum = getSceneTrack();
+
+ if (trackNum == -1) {
+ strcpy(g_fp->_sceneTracksCurrentTrack, "silence");
+
+ g_fp->_trackStartDelay = 2880;
+ g_fp->_sceneTrackIsPlaying = 0;
+ } else {
+ strcpy(g_fp->_sceneTracksCurrentTrack, g_fp->_sceneTracks[trackNum]);
+
+ startSoundStream1(g_fp->_sceneTracksCurrentTrack);
+
+ g_fp->_sceneTrackIsPlaying = 1;
+ }
+ }
+ }
+}
+
+int FullpipeEngine::getSceneTrack() {
+ warning("STUB: FullpipeEngine::getSceneTrack()");
+
+ return -1;
+}
+
+void FullpipeEngine::startSoundStream1(char *trackName) {
+ stopAllSoundStreams();
+
#ifdef USE_VORBIS
if (g_fp->_mixer->isSoundHandleActive(_sceneTrackHandle))
return;
- GameVar *musicTrackVar = _musicGameVar->getSubVarByName("MUSIC")->getSubVarByName("TRACKS")->_subVars;
- if (!musicTrackVar)
- return;
-
- char *trackName = musicTrackVar->_varName;
Common::File *track = new Common::File();
if (!track->open(trackName)) {
warning("Could not open %s", trackName);
Commit: e804b8fa2c6f7f60523b19b5fdc96371d009b729
https://github.com/scummvm/scummvm/commit/e804b8fa2c6f7f60523b19b5fdc96371d009b729
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T14:43:08+03:00
Commit Message:
FULLPIPE: Implement FullpipeEngine::getSceneTrack()
Changed paths:
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 8071129..1d58f8b 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -154,9 +154,31 @@ void FullpipeEngine::startSceneTrack() {
}
int FullpipeEngine::getSceneTrack() {
- warning("STUB: FullpipeEngine::getSceneTrack()");
+ int res;
- return -1;
+ if (_sceneTrackHasSequence) {
+ int num = _musicGameVar->getSubVarAsInt("TRACKS");
+
+ if (_trackName[num + 1] == 's') { // 'silence'
+ res = -1;
+ } else {
+ res = _trackName[num + 1] - '0';
+
+ if (res < 0 || res >= _numSceneTracks)
+ res = 0;
+ }
+
+ int track = num + 1;
+
+ if (!_trackName[num + 2])
+ track = 0;
+
+ _musicGameVar->setSubVarAsInt("TRACKS", track);
+ } else {
+ res = _numSceneTracks * (_updateTicks % 10) / 10;
+ }
+
+ return res;
}
void FullpipeEngine::startSoundStream1(char *trackName) {
Commit: 4598f48fd6a42501e545e275d08b3ec0aadb96a6
https://github.com/scummvm/scummvm/commit/4598f48fd6a42501e545e275d08b3ec0aadb96a6
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T14:47:18+03:00
Commit Message:
FULLPIPE: Remove redundant object casts
Changed paths:
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 1d58f8b..fd84bcd 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -131,23 +131,23 @@ void FullpipeEngine::setSceneMusicParameters(GameVar *var) {
}
void FullpipeEngine::startSceneTrack() {
- if (!g_fp->_sceneTrackIsPlaying && g_fp->_numSceneTracks > 0) {
- if (g_fp->_trackStartDelay > 0) {
- g_fp->_trackStartDelay--;
+ if (!_sceneTrackIsPlaying && _numSceneTracks > 0) {
+ if (_trackStartDelay > 0) {
+ _trackStartDelay--;
} else {
int trackNum = getSceneTrack();
if (trackNum == -1) {
- strcpy(g_fp->_sceneTracksCurrentTrack, "silence");
+ strcpy(_sceneTracksCurrentTrack, "silence");
- g_fp->_trackStartDelay = 2880;
- g_fp->_sceneTrackIsPlaying = 0;
+ _trackStartDelay = 2880;
+ _sceneTrackIsPlaying = 0;
} else {
- strcpy(g_fp->_sceneTracksCurrentTrack, g_fp->_sceneTracks[trackNum]);
+ strcpy(_sceneTracksCurrentTrack, _sceneTracks[trackNum]);
- startSoundStream1(g_fp->_sceneTracksCurrentTrack);
+ startSoundStream1(_sceneTracksCurrentTrack);
- g_fp->_sceneTrackIsPlaying = 1;
+ _sceneTrackIsPlaying = true;
}
}
}
@@ -185,7 +185,7 @@ void FullpipeEngine::startSoundStream1(char *trackName) {
stopAllSoundStreams();
#ifdef USE_VORBIS
- if (g_fp->_mixer->isSoundHandleActive(_sceneTrackHandle))
+ if (_mixer->isSoundHandleActive(_sceneTrackHandle))
return;
Common::File *track = new Common::File();
@@ -195,26 +195,27 @@ void FullpipeEngine::startSoundStream1(char *trackName) {
return;
}
Audio::RewindableAudioStream *ogg = Audio::makeVorbisStream(track, DisposeAfterUse::YES);
- g_fp->_mixer->playStream(Audio::Mixer::kMusicSoundType, &_sceneTrackHandle, ogg);
+ _mixer->playStream(Audio::Mixer::kMusicSoundType, &_sceneTrackHandle, ogg);
#endif
}
void FullpipeEngine::stopAllSounds() {
// TODO: Differences from stopAllSoundStreams()
- g_fp->_mixer->stopAll();
+ _mixer->stopAll();
}
void FullpipeEngine::toggleMute() {
- if (g_fp->_soundEnabled) {
- g_fp->_sfxVolume = g_fp->_sfxVolume != -10000 ? -10000 : 0;
+ if (_soundEnabled) {
+ _sfxVolume = _sfxVolume != -10000 ? -10000 : 0;
updateSoundVolume();
}
}
void FullpipeEngine::playSound(int id, int flag) {
- SoundList *soundList = g_fp->_currentScene->_soundList;
+ SoundList *soundList = _currentScene->_soundList;
Sound *sound = soundList->getSoundById(id);
+
if (!sound) {
warning("playSound: Can't find sound with ID %d", id);
return;
@@ -224,7 +225,7 @@ void FullpipeEngine::playSound(int id, int flag) {
Audio::RewindableAudioStream *wav = Audio::makeWAVStream(dataStream, DisposeAfterUse::YES);
Audio::AudioStream *audioStream = new Audio::LoopingAudioStream(wav, (flag == 1) ? 0 : 1);
Audio::SoundHandle handle = sound->getHandle();
- g_fp->_mixer->playStream(Audio::Mixer::kSFXSoundType, &handle, audioStream);
+ _mixer->playStream(Audio::Mixer::kSFXSoundType, &handle, audioStream);
}
void FullpipeEngine::playTrack(GameVar *sceneVar, const char *name, bool delayed) {
@@ -236,54 +237,55 @@ void FullpipeEngine::playTrack(GameVar *sceneVar, const char *name, bool delayed
FSOUND_Stream_Stop(soundStream4);
#endif
- if (g_fp->_musicLocal)
+ if (_musicLocal)
stopAllSoundStreams();
GameVar *var = sceneVar->getSubVarByName(name);
- memset(g_fp->_sceneTracks, 0, sizeof(g_fp->_sceneTracks));
+ memset(_sceneTracks, 0, sizeof(_sceneTracks));
- g_fp->_numSceneTracks = 0;
- g_fp->_sceneTrackHasSequence = false;
+ _numSceneTracks = 0;
+ _sceneTrackHasSequence = false;
if (!var)
return;
- g_fp->_musicGameVar = var;
+ _musicGameVar = var;
GameVar *tr = var->getSubVarByName("TRACKS");
if (tr) {
GameVar *sub = tr->_subVars;
while (sub) {
- if (g_fp->_musicAllowed & sub->_value.intValue) {
- strcpy(g_fp->_sceneTracks[g_fp->_numSceneTracks], sub->_varName);
+ if (_musicAllowed & sub->_value.intValue) {
+ strcpy(_sceneTracks[_numSceneTracks], sub->_varName);
- g_fp->_numSceneTracks++;
+ _numSceneTracks++;
}
sub = sub->_nextVarObj;
}
}
- g_fp->_musicMinDelay = var->getSubVarAsInt("MINDELAY");
- g_fp->_musicMaxDelay = var->getSubVarAsInt("MAXDELAY");
- g_fp->_musicLocal = var->getSubVarAsInt("LOCAL");
+ _musicMinDelay = var->getSubVarAsInt("MINDELAY");
+ _musicMaxDelay = var->getSubVarAsInt("MAXDELAY");
+ _musicLocal = var->getSubVarAsInt("LOCAL");
GameVar *seq = var->getSubVarByName("SEQUENCE");
+
if (seq) {
- g_fp->_sceneTrackHasSequence = true;
+ _sceneTrackHasSequence = true;
- strcpy(g_fp->_trackName, seq->_value.stringValue);
+ strcpy(_trackName, seq->_value.stringValue);
}
if (delayed) {
- if (g_fp->_sceneTrackIsPlaying && g_fp->_numSceneTracks == 1) {
- if (strcmp(g_fp->_sceneTracksCurrentTrack, g_fp->_sceneTracks[0]))
+ if (_sceneTrackIsPlaying && _numSceneTracks == 1) {
+ if (strcmp(_sceneTracksCurrentTrack, _sceneTracks[0]))
stopAllSoundStreams();
}
- g_fp->_trackStartDelay = var->getSubVarAsInt("STARTDELAY");
+ _trackStartDelay = var->getSubVarAsInt("STARTDELAY");
}
}
@@ -297,15 +299,17 @@ void FullpipeEngine::stopSoundStream2() {
void FullpipeEngine::stopAllSoundStreams() {
// TODO: Differences from stopAllSounds()
- g_fp->_mixer->stopAll();
+ _mixer->stopAll();
}
void FullpipeEngine::stopAllSoundInstances(int id) {
- SoundList *soundList = g_fp->_currentScene->_soundList;
+ SoundList *soundList = _currentScene->_soundList;
+
for (int i = 0; i < soundList->getCount(); i++) {
Sound *sound = soundList->getSoundByIndex(i);
+
if (sound->getId() == id) {
- g_fp->_mixer->stopHandle(sound->getHandle());
+ _mixer->stopHandle(sound->getHandle());
}
}
}
@@ -313,7 +317,7 @@ void FullpipeEngine::stopAllSoundInstances(int id) {
void FullpipeEngine::updateSoundVolume() {
for (int i = 0; i < _currSoundListCount; i++)
for (int j = 0; i < _currSoundList1[i]->getCount(); j++) {
- g_fp->_currSoundList1[i]->getSoundByIndex(j)->setPanAndVolume(g_fp->_sfxVolume, 0);
+ _currSoundList1[i]->getSoundByIndex(j)->setPanAndVolume(_sfxVolume, 0);
}
}
Commit: ba14a54d791bb59442c172a0f966a5b13b6a569b
https://github.com/scummvm/scummvm/commit/ba14a54d791bb59442c172a0f966a5b13b6a569b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T15:00:36+03:00
Commit Message:
FULLPIPE: Implement FullpipeEngine::setSceneMusicParameters()
Changed paths:
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index fd84bcd..d0f8fbd 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
Commit: 2f10c8ec55e5e8f43f6932199ec3bc402e0ec139
https://github.com/scummvm/scummvm/commit/2f10c8ec55e5e8f43f6932199ec3bc402e0ec139
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-26T15:06:23+03:00
Commit Message:
FULLPIPE: Proper implementation of FullpipeEngine::playSound()
Changed paths:
engines/fullpipe/sound.cpp
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index d0f8fbd..628d352 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -266,13 +266,20 @@ void FullpipeEngine::toggleMute() {
}
void FullpipeEngine::playSound(int id, int flag) {
- SoundList *soundList = _currentScene->_soundList;
- Sound *sound = soundList->getSoundById(id);
+ Sound *sound = 0;
+
+ for (int i = 0; i < _currSoundListCount; i++) {
+ sound = _currSoundList1[i]->getSoundById(id);
+
+ if (sound)
+ break;
+ }
if (!sound) {
warning("playSound: Can't find sound with ID %d", id);
return;
}
+
byte *soundData = sound->loadData();
Common::MemoryReadStream *dataStream = new Common::MemoryReadStream(soundData, sound->getDataSize());
Audio::RewindableAudioStream *wav = Audio::makeWAVStream(dataStream, DisposeAfterUse::YES);
More information about the Scummvm-git-logs
mailing list