SCI: not error()ing out on no free channels

instead we just ignore such channels. I'm not sure how sierra sci behaved in that case, they ignored channels as well, but maybe they removed them from earlier music

svn-id: r51715
This commit is contained in:
Martin Kiewitz 2010-08-03 21:38:26 +00:00
parent dc08c733db
commit 7487b51e87
2 changed files with 6 additions and 2 deletions

View file

@ -425,7 +425,8 @@ void MidiParser_SCI::sendToDriver(uint32 midi) {
// Channel remapping
int16 realChannel = _channelRemap[midiChannel];
assert(realChannel != -1);
if (realChannel == -1)
return;
midi = (midi & 0xFFFFFFF0) | realChannel;
if (_mainThreadCalled)

View file

@ -293,7 +293,10 @@ int16 SciMusic::tryToOwnChannel(MusicEntry *caller, int16 bestChannel) {
return channelNr;
}
}
error("no free channels");
// nothing found, don't map channel at all
// sierra did this as well, although i'm not sure if we act exactly the same way
// maybe they removed channels from previous playing music
return -1;
}
void SciMusic::freeChannels(MusicEntry *caller) {