diff options
| author | Matthew Hoops | 2010-07-28 15:34:34 +0000 | 
|---|---|---|
| committer | Matthew Hoops | 2010-07-28 15:34:34 +0000 | 
| commit | 191d50171a1afe358be2a56d26c0c50c36231df2 (patch) | |
| tree | 66a430192ace6ea109ccdf680510bb45f312a92d | |
| parent | 8a843b6c2152ef0019dfbf864fb250af308b6f9e (diff) | |
| download | scummvm-rg350-191d50171a1afe358be2a56d26c0c50c36231df2.tar.gz scummvm-rg350-191d50171a1afe358be2a56d26c0c50c36231df2.tar.bz2 scummvm-rg350-191d50171a1afe358be2a56d26c0c50c36231df2.zip | |
SCI: Fix bug #3035737 - SCI Fan Games: Incorrect Version Detection
If we have a vocab 900 resource with the new decompressors, it can also be SCI0 late. If there is no parser vocab (with new decompressors), it is SCI1 early.
svn-id: r51423
| -rw-r--r-- | engines/sci/resource.cpp | 16 | 
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: | 
