[Scummvm-cvs-logs] SF.net SVN: scummvm:[51423] scummvm/trunk/engines/sci/resource.cpp

mthreepwood at users.sourceforge.net mthreepwood at users.sourceforge.net
Wed Jul 28 17:34:35 CEST 2010


Revision: 51423
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51423&view=rev
Author:   mthreepwood
Date:     2010-07-28 15:34:34 +0000 (Wed, 28 Jul 2010)

Log Message:
-----------
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.

Modified Paths:
--------------
    scummvm/trunk/engines/sci/resource.cpp

Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp	2010-07-28 14:57:35 UTC (rev 51422)
+++ scummvm/trunk/engines/sci/resource.cpp	2010-07-28 15:34:34 UTC (rev 51423)
@@ -1938,14 +1938,18 @@
 			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:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list