diff options
| -rw-r--r-- | engines/queen/detection.cpp | 35 | 
1 files changed, 19 insertions, 16 deletions
| diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp index f8cecf9eaa..e56efd5e17 100644 --- a/engines/queen/detection.cpp +++ b/engines/queen/detection.cpp @@ -372,7 +372,7 @@ public:  	virtual int getMaximumSaveSlot() const { return 99; }  	virtual void removeSaveState(const char *target, int slot) const; -	//const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const; +	const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const;  };  bool QueenMetaEngine::hasFeature(MetaEngineFeature f) const { @@ -401,9 +401,8 @@ const ExtraGuiOptions QueenMetaEngine::getExtraGuiOptions(const Common::String &  	return options;  } -/* FIXME - Migrate this code (Use as falllback): -GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const { -	GameList detectedGames; +const ADGameDescription *QueenMetaEngine::fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const { +	static ADGameDescription desc;  	// Iterate over all files in the given directory  	for (Common::FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) { @@ -417,27 +416,31 @@ GameList QueenMetaEngine::detectGames(const Common::FSList &fslist) const {  			}  			Queen::DetectedGameVersion version;  			if (Queen::Resource::detectVersion(&version, &dataFile)) { -				GameDescriptor dg(queenGameDescriptor.gameid, queenGameDescriptor.description, version.language, version.platform); +				desc.gameid = "queen"; +				desc.language = version.language; +				desc.platform = version.platform; +				desc.flags = ADGF_NO_FLAGS; +				desc.guioptions = GUIO0();  				if (version.features & Queen::GF_DEMO) { -					dg.updateDesc("Demo"); -					dg.setGUIOptions(GUIO_NOSPEECH); +					desc.extra = "Demo"; +					desc.flags = ADGF_DEMO; +					desc.guioptions = GUIO_NOSPEECH;  				} else if (version.features & Queen::GF_INTERVIEW) { -					dg.updateDesc("Interview"); -					dg.setGUIOptions(GUIO_NOSPEECH); +					desc.extra = "Interview"; +					desc.flags = ADGF_DEMO; +					desc.guioptions = GUIO_NOSPEECH;  				} else if (version.features & Queen::GF_FLOPPY) { -					dg.updateDesc("Floppy"); -					dg.setGUIOptions(GUIO_NOSPEECH); +					desc.extra = "Floppy"; +					desc.guioptions = GUIO_NOSPEECH;  				} else if (version.features & Queen::GF_TALKIE) { -					dg.updateDesc("Talkie"); +					desc.extra = "Talkie";  				} -				detectedGames.push_back(dg); -				break; +				return (const ADGameDescription *)&desc;  			}  		}  	} -	return detectedGames; +	return 0;  } -*/  SaveStateList QueenMetaEngine::listSaves(const char *target) const {  	Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); | 
