aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTorbjörn Andersson2013-01-27 09:38:01 +0100
committerTorbjörn Andersson2013-01-27 09:38:01 +0100
commit2dd0690d2648a67ab41185cd72d21d0425d3b9ca (patch)
tree54baced4a670b9ef5f1d35a0bedd28043bbc3be3 /engines
parent354aa0f5f34d33e32b6f35bcbf4e6f18e2bac783 (diff)
downloadscummvm-rg350-2dd0690d2648a67ab41185cd72d21d0425d3b9ca.tar.gz
scummvm-rg350-2dd0690d2648a67ab41185cd72d21d0425d3b9ca.tar.bz2
scummvm-rg350-2dd0690d2648a67ab41185cd72d21d0425d3b9ca.zip
SCUMM: Work around bug #3602239 ("Mac Loom crashes using opening...")
Skip music resources that don't have the "so" (song?) tag. It is better than asserting, now that it turns out that they do exist.
Diffstat (limited to 'engines')
-rw-r--r--engines/scumm/player_v3m.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/scumm/player_v3m.cpp b/engines/scumm/player_v3m.cpp
index e61463128a..bfb69fa508 100644
--- a/engines/scumm/player_v3m.cpp
+++ b/engines/scumm/player_v3m.cpp
@@ -147,7 +147,15 @@ bool Player_V3M::loadMusic(const byte *ptr) {
return false;
}
- assert(ptr[4] == 's' && ptr[5] == 'o');
+ if (ptr[4] != 's' || ptr[5] != 'o') {
+ // See bug #3602239 ("Mac Loom crashes using opening spell on
+ // gravestone"). Apparently there is more than one type of
+ // sound/music, and we only handle one of them at the moment.
+ // Fortunately it is the most common and important one.
+ warning("Player_V3M::loadMusic: Skipping unknown music type");
+ resource.close();
+ return false;
+ }
uint i;
for (i = 0; i < 5; i++) {