aboutsummaryrefslogtreecommitdiff
path: root/saga/sfuncs.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2005-08-30 11:16:11 +0000
committerEugene Sandulenko2005-08-30 11:16:11 +0000
commit349ab2007a23844a6e2b34d07775ebdd2b7c7158 (patch)
tree561bd1a8e0a8a9d4c8e589a621b2a096e475e004 /saga/sfuncs.cpp
parent43fc9012847e2a94e16392737b8cebf2e1fd1f18 (diff)
downloadscummvm-rg350-349ab2007a23844a6e2b34d07775ebdd2b7c7158.tar.gz
scummvm-rg350-349ab2007a23844a6e2b34d07775ebdd2b7c7158.tar.bz2
scummvm-rg350-349ab2007a23844a6e2b34d07775ebdd2b7c7158.zip
Implement sfPlayMusic for IHNM
svn-id: r18717
Diffstat (limited to 'saga/sfuncs.cpp')
-rw-r--r--saga/sfuncs.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/saga/sfuncs.cpp b/saga/sfuncs.cpp
index eeff7361e9..ec0020967c 100644
--- a/saga/sfuncs.cpp
+++ b/saga/sfuncs.cpp
@@ -1640,11 +1640,20 @@ void Script::sfPlayMusic(SCRIPTFUNC_PARAMS) {
_vm->_music->stop();
}
} else {
- // TODO: Verify this
- int16 param1 = thread->pop() + 32;
+ int16 param1 = thread->pop();
int16 param2 = thread->pop();
- _vm->_music->play(param1, param2 ? MUSIC_LOOP: MUSIC_NORMAL);
+ if (param1 < 1) {
+ _vm->_music->stop();
+ return;
+ }
+
+ if (param1 > _vm->_music->_songTableLen) {
+ warning("sfPlayMusic: Wrong song number (%d > %d)", param1, _vm->_music->_songTableLen);
+ } else {
+ _vm->_music->setVolume(-1, 1);
+ _vm->_music->play(_vm->_music->_songTable[param1], param2 ? MUSIC_LOOP: MUSIC_NORMAL);
+ }
}
}