diff options
author | Joost Peters | 2003-12-14 00:33:21 +0000 |
---|---|---|
committer | Joost Peters | 2003-12-14 00:33:21 +0000 |
commit | 1de28a2931b9f48f7af12595d4e04554d25de578 (patch) | |
tree | 3350e7d718f975e02572530fc495d0c608a3c299 /queen/sound.cpp | |
parent | 80aac33327181ae281ea0d85bfec326583f3b55a (diff) | |
download | scummvm-rg350-1de28a2931b9f48f7af12595d4e04554d25de578.tar.gz scummvm-rg350-1de28a2931b9f48f7af12595d4e04554d25de578.tar.bz2 scummvm-rg350-1de28a2931b9f48f7af12595d4e04554d25de578.zip |
Initial (Roland) Music support; a lot of stuff is still missing and/or incomplete.
svn-id: r11621
Diffstat (limited to 'queen/sound.cpp')
-rw-r--r-- | queen/sound.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/queen/sound.cpp b/queen/sound.cpp index fbc710a711..397891248d 100644 --- a/queen/sound.cpp +++ b/queen/sound.cpp @@ -23,6 +23,7 @@ #include "queen/sound.h" #include "queen/input.h" +#include "queen/music.h" #include "queen/queen.h" #include "queen/resource.h" @@ -135,10 +136,36 @@ void Sound::waitSfxFinished() { } void Sound::playSong(int16 songNum) { + if (songNum == STOP_MUSIC) { + _vm->music()->stopSong(); + return; + } + int16 newTune = _song[songNum - 1].tuneList[0]; - if (_tune[newTune - 1].sfx[0] && sfxOn()) + if (_tune[newTune - 1].sfx[0] && sfxOn()) { sfxPlay(_sfxName[_tune[newTune - 1].sfx[0] - 1]); + return; + } + + //TODO: Record onto song stack for saving/loading + + switch (_tune[newTune - 1].mode) { + //Random loop + case 0: + warning("Music: Random loop not yet supported (doing sequential loop instead)"); + //Sequential loop + case 1: + _vm->music()->loop(true); + break; + //Play once + case 2: + default: + _vm->music()->loop(false); + break; + } + + _vm->music()->playSong(_tune[newTune - 1].tuneNum[0] - 1); } |