diff -ur ScummVM-cvs20021001/scummvm/scumm/sound.cpp ScummVM-cvs20021001+hack/scummvm/scumm/sound.cpp
old
|
new
|
|
461 | 461 | return -1; |
462 | 462 | } |
463 | 463 | |
| 464 | // Some games frequently assume that starting one sound effect will |
| 465 | // automatically stop any other that may be playing at that time. So |
| 466 | // that is what we do here, but we make an exception for speech. |
| 467 | // |
| 468 | // Do any other games than these need this hack? |
| 469 | |
| 470 | if (mode == 1 && (_scumm->_gameId == GID_TENTACLE || _scumm->_gameId == GID_SAMNMAX)) { |
| 471 | for (int i = 0; i < _scumm->_mixer->NUM_CHANNELS; i++) { |
| 472 | if (i != _talkChannel) |
| 473 | _scumm->_mixer->stop(i); |
| 474 | } |
| 475 | } |
| 476 | |
464 | 477 | if (b > 8) { |
465 | 478 | num = (b - 8) >> 1; |
466 | 479 | } |
… |
… |
|
703 | 716 | int rate, comp; |
704 | 717 | byte *data; |
705 | 718 | |
706 | | // FIXME: Some games frequently assume that starting one sound effect |
707 | | // will automatically stop any other that may be playing at that time. |
708 | | // Do any other games need this? |
709 | | |
710 | | if (_scumm->_gameId == GID_TENTACLE || _scumm->_gameId == GID_SAMNMAX) { |
711 | | for (int i = 0; i < _scumm->_mixer->NUM_CHANNELS; i++) { |
712 | | if (i != _talkChannel) |
713 | | _scumm->_mixer->stop(i); |
714 | | } |
715 | | } |
716 | | |
717 | 719 | #ifdef COMPRESSED_SOUND_FILE |
718 | 720 | if (file_size > 0) { |
719 | 721 | data = (byte *)calloc(file_size + MAD_BUFFER_GUARD, 1); |