diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp index 1dc700ac73a..c623e994a52 100644 --- a/engines/xeen/map.cpp +++ b/engines/xeen/map.cpp @@ -901,8 +901,7 @@ void Map::load(int mapId) { } else { musName = "outdoors.m"; } - if (musName != sound._currentMusic) - sound.playSong(musName, 207); + sound.playSong(musName, 207); // Load sprite sets needed for scene rendering _groundSprites.load("water.out"); @@ -938,8 +937,7 @@ void Map::load(int mapId) { } else { musName = Res.MUSIC_FILES1[MUS_INDEXES[_mazeData->_wallKind]]; } - if (musName != sound._currentMusic) - sound.playSong(musName, 207); + sound.playSong(musName, 207); // Load sprite sets needed for scene rendering _skySprites[1].load(Common::String::format("%s.sky", diff --git a/engines/xeen/sound.cpp b/engines/xeen/sound.cpp index d12f6eba06f..b72bbbe63eb 100644 --- a/engines/xeen/sound.cpp +++ b/engines/xeen/sound.cpp @@ -195,6 +195,8 @@ void Sound::playSong(Common::SeekableReadStream &stream) { } void Sound::playSong(const Common::String &name, int param) { + if (isMusicPlaying() && name == _currentMusic) + return; _currentMusic = name; Common::File mf;