diff options
| author | Sven Hesse | 2012-06-27 04:42:36 +0200 | 
|---|---|---|
| committer | Sven Hesse | 2012-06-27 05:14:18 +0200 | 
| commit | 2c760cb15e27de29ef9262cb6e2a102d8dbe3935 (patch) | |
| tree | ff8a65fcd1d1d70fc75f04696e6efdd6c6a7e47b /engines | |
| parent | 63e13c5d2c48c0a9aba72a0f63dc4aa515972da5 (diff) | |
| download | scummvm-rg350-2c760cb15e27de29ef9262cb6e2a102d8dbe3935.tar.gz scummvm-rg350-2c760cb15e27de29ef9262cb6e2a102d8dbe3935.tar.bz2 scummvm-rg350-2c760cb15e27de29ef9262cb6e2a102d8dbe3935.zip | |
DETECTOR: Make detectGameFilebased() return a list of MD5s and file sizes
Since we need a FSNode parent for Mac resource forks, we need to change
signature of detectGameFilebased(), too.
Diffstat (limited to 'engines')
| -rw-r--r-- | engines/advancedDetector.cpp | 12 | ||||
| -rw-r--r-- | engines/advancedDetector.h | 4 | ||||
| -rw-r--r-- | engines/cge/detection.cpp | 2 | ||||
| -rw-r--r-- | engines/gob/detection/detection.cpp | 2 | ||||
| -rw-r--r-- | engines/mohawk/detection.cpp | 2 | ||||
| -rw-r--r-- | engines/toon/detection.cpp | 2 | ||||
| -rw-r--r-- | engines/touche/detection.cpp | 2 | 
7 files changed, 19 insertions, 7 deletions
| diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp index af011bee4d..727134fad8 100644 --- a/engines/advancedDetector.cpp +++ b/engines/advancedDetector.cpp @@ -519,7 +519,7 @@ ADGameDescList AdvancedMetaEngine::detectGame(const Common::FSNode &parent, cons  	return matched;  } -const ADGameDescription *AdvancedMetaEngine::detectGameFilebased(const FileMap &allFiles, const ADFileBasedFallback *fileBasedFallback) const { +const ADGameDescription *AdvancedMetaEngine::detectGameFilebased(const FileMap &allFiles, const Common::FSList &fslist, const ADFileBasedFallback *fileBasedFallback, ADFilePropertiesMap *filesProps) const {  	const ADFileBasedFallback *ptr;  	const char* const* filenames; @@ -549,6 +549,16 @@ const ADGameDescription *AdvancedMetaEngine::detectGameFilebased(const FileMap &  				maxNumMatchedFiles = numMatchedFiles;  				debug(4, "and overridden"); + +				if (filesProps) { +					for (filenames = ptr->filenames; *filenames; ++filenames) { +						ADFileProperties tmp; + +						if (getFileProperties(fslist.begin()->getParent(), allFiles, *agdesc, *filenames, tmp)) +							(*filesProps)[*filenames] = tmp; +					} +				} +  			}  		}  	} diff --git a/engines/advancedDetector.h b/engines/advancedDetector.h index 91cb54c396..3e18a6aa18 100644 --- a/engines/advancedDetector.h +++ b/engines/advancedDetector.h @@ -302,9 +302,11 @@ protected:  	 * In case of a tie, the entry coming first in the list is chosen.  	 *  	 * @param allFiles	a map describing all present files +	 * @param fslist	a list of nodes for all present files  	 * @param fileBasedFallback	a list of ADFileBasedFallback records, zero-terminated +	 * @param filesProps	if not 0, return a map of properties for all detected files here  	 */ -	const ADGameDescription *detectGameFilebased(const FileMap &allFiles, const ADFileBasedFallback *fileBasedFallback) const; +	const ADGameDescription *detectGameFilebased(const FileMap &allFiles, const Common::FSList &fslist, const ADFileBasedFallback *fileBasedFallback, ADFilePropertiesMap *filesProps = 0) const;  	// TODO  	void updateGameDescriptor(GameDescriptor &desc, const ADGameDescription *realDesc) const; diff --git a/engines/cge/detection.cpp b/engines/cge/detection.cpp index f723ec8fbd..eda4edd520 100644 --- a/engines/cge/detection.cpp +++ b/engines/cge/detection.cpp @@ -108,7 +108,7 @@ public:  	}  	virtual const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const { -		return detectGameFilebased(allFiles, CGE::fileBasedFallback); +		return detectGameFilebased(allFiles, fslist, CGE::fileBasedFallback);  	}  	virtual const char *getName() const { diff --git a/engines/gob/detection/detection.cpp b/engines/gob/detection/detection.cpp index bcfd5dacfa..9400001636 100644 --- a/engines/gob/detection/detection.cpp +++ b/engines/gob/detection/detection.cpp @@ -40,7 +40,7 @@ public:  	}  	virtual const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const { -		return detectGameFilebased(allFiles, Gob::fileBased); +		return detectGameFilebased(allFiles, fslist, Gob::fileBased);  	}  	virtual const char *getName() const { diff --git a/engines/mohawk/detection.cpp b/engines/mohawk/detection.cpp index f0c657897d..5664929948 100644 --- a/engines/mohawk/detection.cpp +++ b/engines/mohawk/detection.cpp @@ -167,7 +167,7 @@ public:  	}  	virtual const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const { -		return detectGameFilebased(allFiles, Mohawk::fileBased); +		return detectGameFilebased(allFiles, fslist, Mohawk::fileBased);  	}  	virtual const char *getName() const { diff --git a/engines/toon/detection.cpp b/engines/toon/detection.cpp index 8234934972..9c50c20ef8 100644 --- a/engines/toon/detection.cpp +++ b/engines/toon/detection.cpp @@ -133,7 +133,7 @@ public:  	}  	virtual const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const { -		return detectGameFilebased(allFiles, Toon::fileBasedFallback); +		return detectGameFilebased(allFiles, fslist, Toon::fileBasedFallback);  	}  	virtual const char *getName() const { diff --git a/engines/touche/detection.cpp b/engines/touche/detection.cpp index 35dd54776f..2566597e6c 100644 --- a/engines/touche/detection.cpp +++ b/engines/touche/detection.cpp @@ -135,7 +135,7 @@ public:  	}  	virtual const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const { -		const ADGameDescription *matchedDesc = detectGameFilebased(allFiles, Touche::fileBasedFallback); +		const ADGameDescription *matchedDesc = detectGameFilebased(allFiles, fslist, Touche::fileBasedFallback);  		if (matchedDesc) { // We got a match  			Common::String report = Common::String::format(_("Your game version has been detected using " | 
