SCUMM: Check whether sound effects are active in Player_AD::getSoundStatus.

This fixes bug #7076 "LOOM: AdLib sound effect not stopped at Cygna's grave.".

Original SCUMM (I checked Monkey Island EGA) implemented Sound::isSoundRunning
by checking whether the sound resource of the requested sound id is locked. We
use actual sound state inside the player.
This commit is contained in:
Johannes Schickel 2016-03-16 15:24:59 +01:00
parent 54756498bc
commit 70ca4218df
2 changed files with 12 additions and 1 deletions

1
NEWS
View File

@ -34,6 +34,7 @@ For a more comprehensive changelog of the latest experimental code, see:
SCUMM:
- Fixed detection of Maniac Mansion from Day of the Tentacle in the Windows
version of ScummVM.
- Fixed a sound effect not stopping in Loom EGA with AdLib.
Broken Sword 2.5:
- Added option to use English speech instead of German one when no speech is

View File

@ -178,7 +178,17 @@ int Player_AD::getMusicTimer() {
}
int Player_AD::getSoundStatus(int sound) const {
return (sound == _soundPlaying);
if (sound == _soundPlaying) {
return true;
}
for (int i = 0; i < ARRAYSIZE(_sfx); ++i) {
if (_sfx[i].resource == sound) {
return true;
}
}
return false;
}
void Player_AD::saveLoadWithSerializer(Serializer *ser) {