aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsluicebox2019-04-28 16:17:47 -0700
committerFilippos Karapetis2019-05-02 22:43:10 +0300
commit786214093985b24c31f9828588d01130cabaa626 (patch)
treec420f3673da95eb454cd37af6e8a118b8d981786
parent886a1807b8fce02a8a8cc6c412c8e77880a218d8 (diff)
downloadscummvm-rg350-786214093985b24c31f9828588d01130cabaa626.tar.gz
scummvm-rg350-786214093985b24c31f9828588d01130cabaa626.tar.bz2
scummvm-rg350-786214093985b24c31f9828588d01130cabaa626.zip
SCI: Change sendMidiCommand non-midi error to warn
FPFP calls kDoSound SendMidi on non-midi sounds. Fixes bug #10952
-rw-r--r--engines/sci/sound/music.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
index 700be3d05f..5977cf0177 100644
--- a/engines/sci/sound/music.cpp
+++ b/engines/sci/sound/music.cpp
@@ -800,8 +800,15 @@ void SciMusic::sendMidiCommand(uint32 cmd) {
void SciMusic::sendMidiCommand(MusicEntry *pSnd, uint32 cmd) {
Common::StackLock lock(_mutex);
- if (!pSnd->pMidiParser)
- error("tried to cmdSendMidi on non midi slot (%04x:%04x)", PRINT_REG(pSnd->soundObj));
+ if (!pSnd->pMidiParser) {
+ // FPFP calls kDoSound SendMidi to mute and unmute its gameMusic2 sound
+ // object but some scenes set this to an audio sample. In Act 2, room
+ // 660 sets this to audio of restaurant customers talking. Walking up
+ // the hotel stairs from room 500 to 235 calls gameMusic2:mute and
+ // triggers this if gameMusic2 hasn't changed. Bug #10952
+ warning("tried to cmdSendMidi on non midi slot (%04x:%04x)", PRINT_REG(pSnd->soundObj));
+ return;
+ }
pSnd->pMidiParser->mainThreadBegin();
pSnd->pMidiParser->sendFromScriptToDriver(cmd);