[Scummvm-cvs-logs] scummvm master -> 9cb7caeb247adbc60ab67045c79ee24f3f497026

bluegr bluegr at gmail.com
Sat Feb 20 15:56:59 CET 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9cb7caeb24 SCI: Fix a regression in the fallback detector. Some cleanup


Commit: 9cb7caeb247adbc60ab67045c79ee24f3f497026
    https://github.com/scummvm/scummvm/commit/9cb7caeb247adbc60ab67045c79ee24f3f497026
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2016-02-20T16:56:08+02:00

Commit Message:
SCI: Fix a regression in the fallback detector. Some cleanup

Removed the superfluous initForDetection() function, which was not
updated in commit 2f17ba2b0ab77ef939c21efa04f7aaafccbd0c37 and
caused the fallback detector to crash because of uninitialized
variables

Changed paths:
    engines/sci/detection.cpp
    engines/sci/resource.cpp
    engines/sci/resource.h



diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index f4f1040..05c00bf 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -578,7 +578,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
 
 	ResourceManager resMan;
 	resMan.addAppropriateSourcesForDetection(fslist);
-	resMan.initForDetection();
+	resMan.init();
 	// TODO: Add error handling.
 
 #ifndef ENABLE_SCI32
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 86c5f52..2a4cd95 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -944,35 +944,14 @@ void ResourceManager::init() {
 		debugC(1, kDebugLevelResMan, "resMan: Detected SCI1.1 VGA graphic resources");
 		break;
 	default:
-#ifdef ENABLE_SCI32
-		error("resMan: Couldn't determine view type");
-#else
-		if (getSciVersion() >= SCI_VERSION_2) {
-			// SCI support isn't built in, thus the view type won't be determined for
-			// SCI2+ games. This will be handled further up, so throw no error here
-		} else {
-			error("resMan: Couldn't determine view type");
-		}
-#endif
+		// Throw a warning, but do not error out here, because this is called from the
+		// fallback detector, and the user could be pointing to a folder with a non-SCI
+		// game, but with SCI-like file names (e.g. Pinball Creep)
+		warning("resMan: Couldn't determine view type");
+		break;
 	}
 }
 
-void ResourceManager::initForDetection() {
-	assert(!g_sci);
-
-	_memoryLocked = 0;
-	_memoryLRU = 0;
-	_LRU.clear();
-	_resMap.clear();
-	_audioMapSCI1 = NULL;
-
-	_mapVersion = detectMapVersion();
-	_volVersion = detectVolVersion();
-
-	scanNewSources();
-	detectSciVersion();
-}
-
 ResourceManager::~ResourceManager() {
 	// freeing resources
 	ResourceMap::iterator itr = _resMap.begin();
@@ -2483,7 +2462,9 @@ bool ResourceManager::hasOldScriptHeader() {
 	Resource *res = findResource(ResourceId(kResourceTypeScript, 0), 0);
 
 	if (!res) {
-		error("resMan: Failed to find script.000");
+		// Script 0 missing -> corrupted / non-SCI resource files.
+		// Don't error out here, because this might have been called
+		// from the fallback detector
 		return false;
 	}
 
diff --git a/engines/sci/resource.h b/engines/sci/resource.h
index 46ac2bb..ef474d9 100644
--- a/engines/sci/resource.h
+++ b/engines/sci/resource.h
@@ -315,11 +315,6 @@ public:
 	void init();
 
 	/**
-	 * Similar to the function above, only called from the fallback detector
-	 */
-	void initForDetection();
-
-	/**
 	 * Adds all of the resource files for a game
 	 */
 	int addAppropriateSources();






More information about the Scummvm-git-logs mailing list