aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/resource.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 65c9e6f34e..111bf6ad9b 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -1938,14 +1938,18 @@ void ResourceManager::detectSciVersion() {
return;
}
- // New decompressors. It's either SCI_VERSION_1_EGA or SCI_VERSION_1_EARLY.
- if (hasSci1Voc900()) {
- s_sciVersion = SCI_VERSION_1_EGA;
- return;
+ // New decompressors. It's either SCI_VERSION_0_LATE, SCI_VERSION_1_EGA or SCI_VERSION_1_EARLY.
+ if (testResource(ResourceId(kResourceTypeVocab, 900))) {
+ if (hasSci1Voc900()) {
+ s_sciVersion = SCI_VERSION_1_EGA;
+ return;
+ } else {
+ s_sciVersion = SCI_VERSION_0_LATE;
+ return;
+ }
}
- // SCI_VERSION_1_EARLY EGA versions seem to be lacking a valid vocab.900.
- // If this turns out to be unreliable, we could do some pic resource checks instead.
+ // SCI_VERSION_1_EARLY EGA versions lack the parser vocab
s_sciVersion = SCI_VERSION_1_EARLY;
return;
case kResVersionSci1Middle: