aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/parallaction.cpp')
-rw-r--r--engines/parallaction/parallaction.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp
index f31b7abcd2..cb208a17ff 100644
--- a/engines/parallaction/parallaction.cpp
+++ b/engines/parallaction/parallaction.cpp
@@ -591,10 +591,15 @@ void Parallaction::runZone(ZonePtr z) {
break;
case kZoneHear:
- _soundMan->execute(SC_SETSFXCHANNEL, z->u._hearChannel);
- _soundMan->execute(SC_SETSFXLOOPING, (int)((z->_flags & kFlagsLooping) == kFlagsLooping));
- _soundMan->execute(SC_SETSFXVOLUME, 60);
- _soundMan->execute(SC_PLAYSFX, z->u._filename.c_str());
+ if (z->u._hearChannel == MUSIC_HEAR_CHANNEL) {
+ _soundMan->execute(SC_SETMUSICFILE, z->u._filename.c_str());
+ _soundMan->execute(SC_PLAYMUSIC);
+ } else {
+ _soundMan->execute(SC_SETSFXCHANNEL, z->u._hearChannel);
+ _soundMan->execute(SC_SETSFXLOOPING, (int)((z->_flags & kFlagsLooping) == kFlagsLooping));
+ _soundMan->execute(SC_SETSFXVOLUME, 60);
+ _soundMan->execute(SC_PLAYSFX, z->u._filename.c_str());
+ }
break;
case kZoneSpeak: