[Scummvm-cvs-logs] SF.net SVN: scummvm:[36132] scummvm/trunk
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Thu Jan 29 23:13:02 CET 2009
Revision: 36132
http://scummvm.svn.sourceforge.net/scummvm/?rev=36132&view=rev
Author: fingolfin
Date: 2009-01-29 22:13:01 +0000 (Thu, 29 Jan 2009)
Log Message:
-----------
Moved AdvancedDetector from common/ to engines/
Modified Paths:
--------------
scummvm/trunk/common/module.mk
scummvm/trunk/engines/agi/detection.cpp
scummvm/trunk/engines/agos/detection.cpp
scummvm/trunk/engines/agos/detection_tables.h
scummvm/trunk/engines/cine/detection.cpp
scummvm/trunk/engines/cruise/detection.cpp
scummvm/trunk/engines/drascula/detection.cpp
scummvm/trunk/engines/gob/detection.cpp
scummvm/trunk/engines/groovie/detection.cpp
scummvm/trunk/engines/groovie/groovie.h
scummvm/trunk/engines/igor/detection.cpp
scummvm/trunk/engines/kyra/detection.cpp
scummvm/trunk/engines/lure/detection.cpp
scummvm/trunk/engines/m4/detection.cpp
scummvm/trunk/engines/made/detection.cpp
scummvm/trunk/engines/module.mk
scummvm/trunk/engines/parallaction/detection.cpp
scummvm/trunk/engines/saga/detection.cpp
scummvm/trunk/engines/saga/detection_tables.h
scummvm/trunk/engines/saga/resource.cpp
scummvm/trunk/engines/saga/resource_hrs.cpp
scummvm/trunk/engines/saga/resource_res.cpp
scummvm/trunk/engines/saga/resource_rsc.cpp
scummvm/trunk/engines/saga/saga.h
scummvm/trunk/engines/scumm/detection.cpp
scummvm/trunk/engines/scumm/detection_tables.h
scummvm/trunk/engines/sky/detection.cpp
scummvm/trunk/engines/tinsel/detection.cpp
scummvm/trunk/engines/touche/detection.cpp
scummvm/trunk/engines/tucker/detection.cpp
Added Paths:
-----------
scummvm/trunk/engines/advancedDetector.cpp
scummvm/trunk/engines/advancedDetector.h
Removed Paths:
-------------
scummvm/trunk/common/advancedDetector.cpp
scummvm/trunk/common/advancedDetector.h
Deleted: scummvm/trunk/common/advancedDetector.cpp
===================================================================
--- scummvm/trunk/common/advancedDetector.cpp 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/common/advancedDetector.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -1,519 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-#include "base/plugins.h"
-
-#include "common/util.h"
-#include "common/hash-str.h"
-#include "common/file.h"
-#include "common/md5.h"
-#include "common/advancedDetector.h"
-#include "common/config-manager.h"
-
-namespace Common {
-
-/**
- * A list of pointers to ADGameDescription structs (or subclasses thereof).
- */
-typedef Array<const ADGameDescription*> ADGameDescList;
-
-
-/**
- * Detect games in specified directory.
- * Parameters language and platform are used to pass on values
- * specified by the user. I.e. this is used to restrict search scope.
- *
- * @param fslist FSList to scan or NULL for scanning all specified
- * default directories.
- * @param params a ADParams struct containing various parameters
- * @param language restrict results to specified language only
- * @param platform restrict results to specified platform only
- * @return list of ADGameDescription (or subclass) pointers corresponding to matched games
- */
-static ADGameDescList detectGame(const FSList &fslist, const Common::ADParams ¶ms, Language language, Platform platform, const Common::String extra);
-
-
-/**
- * Returns list of targets supported by the engine.
- * Distinguishes engines with single ID
- */
-static GameList gameIDList(const Common::ADParams ¶ms) {
- if (params.singleid != NULL) {
- GameList gl;
-
- const PlainGameDescriptor *g = params.list;
- while (g->gameid) {
- if (0 == scumm_stricmp(params.singleid, g->gameid)) {
- gl.push_back(GameDescriptor(g->gameid, g->description));
-
- return gl;
- }
- g++;
- }
- error("Engine %s doesn't have its singleid specified in ids list", params.singleid);
- }
-
- return GameList(params.list);
-}
-
-static void upgradeTargetIfNecessary(const Common::ADParams ¶ms) {
- if (params.obsoleteList == 0)
- return;
-
- String gameid = ConfMan.get("gameid");
-
- for (const Common::ADObsoleteGameID *o = params.obsoleteList; o->from; ++o) {
- if (gameid.equalsIgnoreCase(o->from)) {
- gameid = o->to;
- ConfMan.set("gameid", gameid);
-
- if (o->platform != Common::kPlatformUnknown)
- ConfMan.set("platform", Common::getPlatformCode(o->platform));
-
- warning("Target upgraded from %s to %s", o->from, o->to);
-
- // WORKAROUND: Fix for bug #1719463: "DETECTOR: Launching
- // undefined target adds launcher entry"
- if (ConfMan.hasKey("id_came_from_command_line")) {
- warning("Target came from command line. Skipping save");
- } else {
- ConfMan.flushToDisk();
- }
- break;
- }
- }
-}
-
-namespace AdvancedDetector {
-
-GameDescriptor findGameID(
- const char *gameid,
- const PlainGameDescriptor *list,
- const Common::ADObsoleteGameID *obsoleteList
- ) {
- // First search the list of supported game IDs for a match.
- const PlainGameDescriptor *g = findPlainGameDescriptor(gameid, list);
- if (g)
- return GameDescriptor(*g);
-
- // If we didn't find the gameid in the main list, check if it
- // is an obsolete game id.
- if (obsoleteList != 0) {
- const Common::ADObsoleteGameID *o = obsoleteList;
- while (o->from) {
- if (0 == scumm_stricmp(gameid, o->from)) {
- g = findPlainGameDescriptor(o->to, list);
- if (g && g->description)
- return GameDescriptor(gameid, "Obsolete game ID (" + Common::String(g->description) + ")");
- else
- return GameDescriptor(gameid, "Obsolete game ID");
- }
- o++;
- }
- }
-
- // No match found
- return GameDescriptor();
-}
-
-} // End of namespace AdvancedDetector
-
-static GameDescriptor toGameDescriptor(const ADGameDescription &g, const PlainGameDescriptor *sg) {
- const char *title = 0;
-
- while (sg->gameid) {
- if (!scumm_stricmp(g.gameid, sg->gameid))
- title = sg->description;
- sg++;
- }
-
- GameDescriptor gd(g.gameid, title, g.language, g.platform);
- gd.updateDesc(g.extra);
- return gd;
-}
-
-/**
- * Generate a preferred target value as
- * GAMEID-PLAFORM-LANG
- * or (if ADGF_DEMO has been set)
- * GAMEID-demo-PLAFORM-LANG
- */
-static String generatePreferredTarget(const String &id, const ADGameDescription *desc) {
- String res(id);
-
- if (desc->flags & ADGF_DEMO) {
- res = res + "-demo";
- }
-
- if (desc->flags & ADGF_CD) {
- res = res + "-cd";
- }
-
- if (desc->platform != kPlatformPC && desc->platform != kPlatformUnknown) {
- res = res + "-" + getPlatformAbbrev(desc->platform);
- }
-
- if (desc->language != EN_ANY && desc->language != UNK_LANG && !(desc->flags & ADGF_DROPLANGUAGE)) {
- res = res + "-" + getLanguageCode(desc->language);
- }
-
- return res;
-}
-
-static void updateGameDescriptor(GameDescriptor &desc, const ADGameDescription *realDesc, const Common::ADParams ¶ms) {
- if (params.singleid != NULL) {
- desc["preferredtarget"] = desc["gameid"];
- desc["gameid"] = params.singleid;
- }
-
- if (!(params.flags & kADFlagDontAugmentPreferredTarget)) {
- if (!desc.contains("preferredtarget"))
- desc["preferredtarget"] = desc["gameid"];
-
- desc["preferredtarget"] = generatePreferredTarget(desc["preferredtarget"], realDesc);
- }
-
- if (params.flags & kADFlagUseExtraAsHint)
- desc["extra"] = realDesc->extra;
-}
-
-GameList AdvancedMetaEngine::detectGames(const FSList &fslist) const {
- ADGameDescList matches = detectGame(fslist, params, Common::UNK_LANG, Common::kPlatformUnknown, "");
- GameList detectedGames;
-
- // Use fallback detector if there were no matches by other means
- if (matches.empty()) {
- const Common::ADGameDescription *fallbackDesc = fallbackDetect(fslist);
- if (fallbackDesc != 0) {
- GameDescriptor desc(toGameDescriptor(*fallbackDesc, params.list));
- updateGameDescriptor(desc, fallbackDesc, params);
- detectedGames.push_back(desc);
- }
- } else for (uint i = 0; i < matches.size(); i++) { // Otherwise use the found matches
- GameDescriptor desc(toGameDescriptor(*matches[i], params.list));
- updateGameDescriptor(desc, matches[i], params);
- detectedGames.push_back(desc);
- }
-
- return detectedGames;
-}
-
-Common::Error AdvancedMetaEngine::createInstance(OSystem *syst, Engine **engine) const {
- assert(engine);
- upgradeTargetIfNecessary(params);
-
- const ADGameDescription *agdDesc = 0;
- Common::Language language = Common::UNK_LANG;
- Common::Platform platform = Common::kPlatformUnknown;
- Common::String extra;
-
- if (ConfMan.hasKey("language"))
- language = Common::parseLanguage(ConfMan.get("language"));
- if (ConfMan.hasKey("platform"))
- platform = Common::parsePlatform(ConfMan.get("platform"));
- if (params.flags & kADFlagUseExtraAsHint)
- if (ConfMan.hasKey("extra"))
- extra = ConfMan.get("extra");
-
- Common::String gameid = ConfMan.get("gameid");
-
- Common::String path;
- if (ConfMan.hasKey("path")) {
- path = ConfMan.get("path");
- } else {
- path = ".";
- warning("No path was provided. Assuming the data files are in the current directory");
- }
- FSNode dir(path);
- FSList files;
- if (!dir.isDirectory() || !dir.getChildren(files, FSNode::kListAll)) {
- warning("Game data path does not exist or is not a directory (%s)", path.c_str());
- return kNoGameDataFoundError;
- }
-
- ADGameDescList matches = detectGame(files, params, language, platform, extra);
-
- if (params.singleid == NULL) {
- for (uint i = 0; i < matches.size(); i++) {
- if (matches[i]->gameid == gameid) {
- agdDesc = matches[i];
- break;
- }
- }
- } else if (matches.size() > 0) {
- agdDesc = matches[0];
- }
-
- if (agdDesc == 0) {
- // Use fallback detector if there were no matches by other means
- agdDesc = fallbackDetect(files);
- if (agdDesc != 0) {
- // Seems we found a fallback match. But first perform a basic
- // sanity check: the gameid must match.
- if (params.singleid == NULL && agdDesc->gameid != gameid)
- agdDesc = 0;
- }
- }
-
- if (agdDesc == 0) {
- return kNoGameDataFoundError;
- }
-
- debug(2, "Running %s", toGameDescriptor(*agdDesc, params.list).description().c_str());
- if (!createInstance(syst, engine, agdDesc)) {
- return kNoGameDataFoundError;
- }
- return kNoError;
-}
-
-struct SizeMD5 {
- int size;
- char md5[32+1];
-};
-
-typedef HashMap<String, SizeMD5, IgnoreCase_Hash, IgnoreCase_EqualTo> SizeMD5Map;
-typedef HashMap<String, FSNode, IgnoreCase_Hash, IgnoreCase_EqualTo> FileMap;
-
-static void reportUnknown(const SizeMD5Map &filesSizeMD5) {
- // TODO: This message should be cleaned up / made more specific.
- // For example, we should specify at least which engine triggered this.
- //
- // Might also be helpful to display the full path (for when this is used
- // from the mass detector).
- printf("Your game version appears to be unknown. Please, report the following\n");
- printf("data to the ScummVM team along with name of the game you tried to add\n");
- printf("and its version/language/etc.:\n");
-
- for (SizeMD5Map::const_iterator file = filesSizeMD5.begin(); file != filesSizeMD5.end(); ++file)
- printf(" \"%s\", \"%s\", %d\n", file->_key.c_str(), file->_value.md5, file->_value.size);
-
- printf("\n");
-}
-
-static ADGameDescList detectGameFilebased(const FileMap &allFiles, const Common::ADParams ¶ms);
-
-static ADGameDescList detectGame(const FSList &fslist, const Common::ADParams ¶ms, Language language, Platform platform, const Common::String extra) {
- FileMap allFiles;
- SizeMD5Map filesSizeMD5;
-
- const ADGameFileDescription *fileDesc;
- const ADGameDescription *g;
- const byte *descPtr;
-
- debug(3, "Starting detection");
-
- // First we compose a hashmap of all files in fslist.
- // Includes nifty stuff like removing trailing dots and ignoring case.
- for (FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
- if (file->isDirectory())
- continue;
-
- String tstr = file->getName();
-
- // Strip any trailing dot
- if (tstr.lastChar() == '.')
- tstr.deleteLastChar();
-
- allFiles[tstr] = *file; // Record the presence of this file
- }
-
- // Check which files are included in some ADGameDescription *and* present
- // in fslist. Compute MD5s and file sizes for these files.
- for (descPtr = params.descs; ((const ADGameDescription *)descPtr)->gameid != 0; descPtr += params.descItemSize) {
- g = (const ADGameDescription *)descPtr;
-
- for (fileDesc = g->filesDescriptions; fileDesc->fileName; fileDesc++) {
- String fname = fileDesc->fileName;
- if (allFiles.contains(fname) && !filesSizeMD5.contains(fname)) {
- debug(3, "+ %s", fname.c_str());
-
- SizeMD5 tmp;
- if (!md5_file_string(allFiles[fname], tmp.md5, params.md5Bytes))
- tmp.md5[0] = 0;
-
- debug(3, "> '%s': '%s'", fname.c_str(), tmp.md5);
-
- File testFile;
- if (testFile.open(allFiles[fname]))
- tmp.size = (int32)testFile.size();
- else
- tmp.size = -1;
-
- filesSizeMD5[fname] = tmp;
- }
- }
- }
-
- ADGameDescList matched;
- int maxFilesMatched = 0;
-
- // MD5 based matching
- uint i;
- for (i = 0, descPtr = params.descs; ((const ADGameDescription *)descPtr)->gameid != 0; descPtr += params.descItemSize, ++i) {
- g = (const ADGameDescription *)descPtr;
- bool fileMissing = false;
-
- // Do not even bother to look at entries which do not have matching
- // language and platform (if specified).
- if ((language != UNK_LANG && g->language != UNK_LANG && g->language != language) ||
- (platform != kPlatformUnknown && g->platform != kPlatformUnknown && g->platform != platform)) {
- continue;
- }
-
- if ((params.flags & kADFlagUseExtraAsHint) && !extra.empty() && g->extra != extra)
- continue;
-
- // Try to match all files for this game
- for (fileDesc = g->filesDescriptions; fileDesc->fileName; fileDesc++) {
- String tstr = fileDesc->fileName;
-
- if (!filesSizeMD5.contains(tstr)) {
- fileMissing = true;
- break;
- }
-
- if (fileDesc->md5 != NULL && 0 != strcmp(fileDesc->md5, filesSizeMD5[tstr].md5)) {
- debug(3, "MD5 Mismatch. Skipping (%s) (%s)", fileDesc->md5, filesSizeMD5[tstr].md5);
- fileMissing = true;
- break;
- }
-
- if (fileDesc->fileSize != -1 && fileDesc->fileSize != filesSizeMD5[tstr].size) {
- debug(3, "Size Mismatch. Skipping");
- fileMissing = true;
- break;
- }
-
- debug(3, "Matched file: %s", tstr.c_str());
- }
- if (!fileMissing) {
- debug(2, "Found game: %s (%s %s/%s) (%d)", g->gameid, g->extra,
- getPlatformDescription(g->platform), getLanguageDescription(g->language), i);
-
- // Count the number of matching files. Then, only keep those
- // entries which match a maximal amount of files.
- int curFilesMatched = 0;
- for (fileDesc = g->filesDescriptions; fileDesc->fileName; fileDesc++)
- curFilesMatched++;
-
- if (curFilesMatched > maxFilesMatched) {
- debug(2, " ... new best match, removing all previous candidates");
- maxFilesMatched = curFilesMatched;
-
- for (uint j = 0; j < matched.size();) {
- if (matched[j]->flags & ADGF_KEEPMATCH)
- ++j;
- else
- matched.remove_at(j);
- }
- matched.push_back(g);
- } else if (curFilesMatched == maxFilesMatched) {
- matched.push_back(g);
- } else {
- debug(2, " ... skipped");
- }
-
- } else {
- debug(5, "Skipping game: %s (%s %s/%s) (%d)", g->gameid, g->extra,
- getPlatformDescription(g->platform), getLanguageDescription(g->language), i);
- }
- }
-
- // We didn't find a match
- if (matched.empty()) {
- if (!filesSizeMD5.empty())
- reportUnknown(filesSizeMD5);
-
- // Filename based fallback
- if (params.fileBasedFallback != 0)
- matched = detectGameFilebased(allFiles, params);
- }
-
- return matched;
-}
-
-/**
- * Check for each ADFileBasedFallback record whether all files listed
- * in it are present. If multiple pass this test, we pick the one with
- * the maximal number of matching files. In case of a tie, the entry
- * coming first in the list is chosen.
- */
-static ADGameDescList detectGameFilebased(const FileMap &allFiles, const Common::ADParams ¶ms) {
- const ADFileBasedFallback *ptr;
- const char* const* filenames;
-
- int maxNumMatchedFiles = 0;
- const ADGameDescription *matchedDesc = 0;
-
- for (ptr = params.fileBasedFallback; ptr->desc; ++ptr) {
- const ADGameDescription *agdesc = (const ADGameDescription *)ptr->desc;
- int numMatchedFiles = 0;
- bool fileMissing = false;
-
- for (filenames = ptr->filenames; *filenames; ++filenames) {
- debug(3, "++ %s", *filenames);
- if (!allFiles.contains(*filenames)) {
- fileMissing = true;
- break;
- }
-
- numMatchedFiles++;
- }
-
- if (!fileMissing) {
- debug(4, "Matched: %s", agdesc->gameid);
-
- if (numMatchedFiles > maxNumMatchedFiles) {
- matchedDesc = agdesc;
- maxNumMatchedFiles = numMatchedFiles;
-
- debug(4, "and overriden");
- }
- }
- }
-
- ADGameDescList matched;
-
- if (matchedDesc) { // We got a match
- matched.push_back(matchedDesc);
- if (params.flags & kADFlagPrintWarningOnFileBasedFallback) {
- printf("Your game version has been detected using filename matching as a\n");
- printf("variant of %s.\n", matchedDesc->gameid);
- printf("If this is an original and unmodified version, please report any\n");
- printf("information previously printed by ScummVM to the team.\n");
- }
- }
-
- return matched;
-}
-
-GameList AdvancedMetaEngine::getSupportedGames() const {
- return gameIDList(params);
-}
-GameDescriptor AdvancedMetaEngine::findGame(const char *gameid) const {
- return AdvancedDetector::findGameID(gameid, params.list, params.obsoleteList);
-}
-
-} // End of namespace Common
Deleted: scummvm/trunk/common/advancedDetector.h
===================================================================
--- scummvm/trunk/common/advancedDetector.h 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/common/advancedDetector.h 2009-01-29 22:13:01 UTC (rev 36132)
@@ -1,221 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-#ifndef COMMON_ADVANCED_DETECTOR_H
-#define COMMON_ADVANCED_DETECTOR_H
-
-#include "common/fs.h"
-#include "common/error.h"
-
-#include "engines/metaengine.h"
-
-namespace Common {
-
-struct ADGameFileDescription {
- const char *fileName;
- uint16 fileType; // Optional. Not used during detection, only by engines.
- const char *md5; // Optional. May be NULL.
- int32 fileSize; // Optional. Set to -1 to ignore.
-};
-
-#define AD_ENTRY1(f, x) {{ f, 0, x, -1}, {NULL, 0, NULL, 0}}
-#define AD_ENTRY1s(f, x, s) {{ f, 0, x, s}, {NULL, 0, NULL, 0}}
-
-enum ADGameFlags {
- ADGF_NO_FLAGS = 0,
- ADGF_KEEPMATCH = (1 << 27), // this entry is kept even when there are matched
- // entries with more files
- ADGF_DROPLANGUAGE = (1 << 28), // don't add language to gameid
- ADGF_CD = (1 << 29), // add "-cd" to gameid
- ADGF_DEMO = (1 << 30) // add "-demo" to gameid
-};
-
-struct ADGameDescription {
- const char *gameid;
- const char *extra;
- ADGameFileDescription filesDescriptions[14];
- Language language;
- Platform platform;
-
- /**
- * A bitmask of extra flags. The top 8 bits are reserved for generic flags
- * defined in the ADGameFlags. This leaves 24 flags to be used by client
- * code.
- */
- uint32 flags;
-};
-
-/**
- * End marker for a table of ADGameDescription structs. Use this to
- * terminate a list to be passed to the AdvancedDetector API.
- */
-#define AD_TABLE_END_MARKER \
- { NULL, NULL, { { NULL, 0, NULL, 0 } }, Common::UNK_LANG, Common::kPlatformUnknown, Common::ADGF_NO_FLAGS }
-
-
-struct ADObsoleteGameID {
- const char *from;
- const char *to;
- Common::Platform platform;
-};
-
-struct ADFileBasedFallback {
- /**
- * Pointer to an ADGameDescription or subclass thereof which will get
- * returned if there's a detection match.
- */
- const void *desc;
-
- /**
- * A zero-terminated list of filenames used for matching. All files in
- * the list must be present to get a detection match.
- */
- const char *filenames[10];
-};
-
-
-enum ADFlags {
- /**
- * Generate/augment preferred target with information on the language (if
- * not equal to english) and platform (if not equal to PC).
- */
- kADFlagDontAugmentPreferredTarget = (1 << 0),
- kADFlagPrintWarningOnFileBasedFallback = (1 << 1),
- kADFlagUseExtraAsHint = (1 << 2)
-};
-
-/**
- * A structure containing all parameters for the AdvancedDetector.
- * Typically, an engine will have a single instance of this which is
- * used by its AdvancedMetaEngine subclass as a parameter to the
- * primary AdvancedMetaEngine constructor.
- */
-struct ADParams {
- /**
- * Pointer to an array of objects which are either ADGameDescription
- * or superset structures (i.e. start with an ADGameDescription member.
- * The list is terminated by an entry with a gameid equal to 0
- * (see AD_TABLE_END_MARKER).
- */
- const byte *descs;
-
- /**
- * The size of a single entry of the above descs array. Always
- * must be >= sizeof(ADGameDescription).
- */
- uint descItemSize;
-
- /**
- * The number of bytes to compute MD5 sum for. The AdvancedDetector
- * is primarily based on computing and matching MD5 checksums of files.
- * Since doing that for large files can be slow, it can be restricted
- * to a subset of all files.
- * Typically this will be set to something between 5 and 50 kilobyte,
- * but arbitrary non-zero values are possible.
- */
- uint md5Bytes;
-
- /**
- * A list of all gameids (and their corresponding descriptions) supported
- * by this engine.
- */
- const PlainGameDescriptor *list;
-
- /**
- * Structure for autoupgrading obsolete targets (optional).
- *
- * @todo Properly explain this.
- */
- const Common::ADObsoleteGameID *obsoleteList;
-
- /**
- * Name of single gameid (optional).
- *
- * @todo Properly explain this -- what does it do?
- */
- const char *singleid;
-
- /**
- * List of files for file-based fallback detection (optional).
- * This is used if the regular MD5 based detection failed to
- * detect anything.
- * As usual this list is terminated by an all-zero entry.
- *
- * @todo Properly explain this
- */
- const ADFileBasedFallback *fileBasedFallback;
-
- /**
- * A bitmask of flags which can be used to configure the behavior
- * of the AdvancedDetector. Refer to ADFlags for a list of flags
- * that can be ORed together and passed here.
- */
- uint32 flags;
-};
-
-
-namespace AdvancedDetector {
-
-/**
- * Scan through the game descriptors specified in params and search for
- * 'gameid' in there. If a match is found, returns a GameDescriptor
- * with gameid and description set.
- */
-GameDescriptor findGameID(
- const char *gameid,
- const PlainGameDescriptor *list,
- const Common::ADObsoleteGameID *obsoleteList = 0
- );
-
-} // End of namespace AdvancedDetector
-
-/**
- * A MetaEngine implementation based around the advanced detector code.
- */
-class AdvancedMetaEngine : public MetaEngine {
- const Common::ADParams ¶ms;
-public:
- AdvancedMetaEngine(const Common::ADParams &dp) : params(dp) {}
-
- virtual GameList getSupportedGames() const;
- virtual GameDescriptor findGame(const char *gameid) const;
- virtual GameList detectGames(const FSList &fslist) const;
- virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
-
- // To be provided by subclasses
- virtual bool createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const = 0;
-
- /**
- * An (optional) generic fallback detect function which is invoked
- * if both the regular MD5 based detection as well as the file
- * based fallback failed to detect anything.
- */
- virtual const Common::ADGameDescription *fallbackDetect(const FSList &fslist) const {
- return 0;
- }
-};
-
-} // End of namespace Common
-
-#endif
Modified: scummvm/trunk/common/module.mk
===================================================================
--- scummvm/trunk/common/module.mk 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/common/module.mk 2009-01-29 22:13:01 UTC (rev 36132)
@@ -1,7 +1,6 @@
MODULE := common
MODULE_OBJS := \
- advancedDetector.o \
archive.o \
config-file.o \
config-manager.o \
Copied: scummvm/trunk/engines/advancedDetector.cpp (from rev 36127, scummvm/trunk/common/advancedDetector.cpp)
===================================================================
--- scummvm/trunk/engines/advancedDetector.cpp (rev 0)
+++ scummvm/trunk/engines/advancedDetector.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -0,0 +1,515 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#include "base/plugins.h"
+
+#include "common/util.h"
+#include "common/hash-str.h"
+#include "common/file.h"
+#include "common/md5.h"
+#include "engines/advancedDetector.h"
+#include "common/config-manager.h"
+
+/**
+ * A list of pointers to ADGameDescription structs (or subclasses thereof).
+ */
+typedef Common::Array<const ADGameDescription*> ADGameDescList;
+
+
+/**
+ * Detect games in specified directory.
+ * Parameters language and platform are used to pass on values
+ * specified by the user. I.e. this is used to restrict search scope.
+ *
+ * @param fslist FSList to scan or NULL for scanning all specified
+ * default directories.
+ * @param params a ADParams struct containing various parameters
+ * @param language restrict results to specified language only
+ * @param platform restrict results to specified platform only
+ * @return list of ADGameDescription (or subclass) pointers corresponding to matched games
+ */
+static ADGameDescList detectGame(const Common::FSList &fslist, const ADParams ¶ms, Common::Language language, Common::Platform platform, const Common::String extra);
+
+
+/**
+ * Returns list of targets supported by the engine.
+ * Distinguishes engines with single ID
+ */
+static GameList gameIDList(const ADParams ¶ms) {
+ if (params.singleid != NULL) {
+ GameList gl;
+
+ const PlainGameDescriptor *g = params.list;
+ while (g->gameid) {
+ if (0 == scumm_stricmp(params.singleid, g->gameid)) {
+ gl.push_back(GameDescriptor(g->gameid, g->description));
+
+ return gl;
+ }
+ g++;
+ }
+ error("Engine %s doesn't have its singleid specified in ids list", params.singleid);
+ }
+
+ return GameList(params.list);
+}
+
+static void upgradeTargetIfNecessary(const ADParams ¶ms) {
+ if (params.obsoleteList == 0)
+ return;
+
+ Common::String gameid = ConfMan.get("gameid");
+
+ for (const ADObsoleteGameID *o = params.obsoleteList; o->from; ++o) {
+ if (gameid.equalsIgnoreCase(o->from)) {
+ gameid = o->to;
+ ConfMan.set("gameid", gameid);
+
+ if (o->platform != Common::kPlatformUnknown)
+ ConfMan.set("platform", Common::getPlatformCode(o->platform));
+
+ warning("Target upgraded from %s to %s", o->from, o->to);
+
+ // WORKAROUND: Fix for bug #1719463: "DETECTOR: Launching
+ // undefined target adds launcher entry"
+ if (ConfMan.hasKey("id_came_from_command_line")) {
+ warning("Target came from command line. Skipping save");
+ } else {
+ ConfMan.flushToDisk();
+ }
+ break;
+ }
+ }
+}
+
+namespace AdvancedDetector {
+
+GameDescriptor findGameID(
+ const char *gameid,
+ const PlainGameDescriptor *list,
+ const ADObsoleteGameID *obsoleteList
+ ) {
+ // First search the list of supported game IDs for a match.
+ const PlainGameDescriptor *g = findPlainGameDescriptor(gameid, list);
+ if (g)
+ return GameDescriptor(*g);
+
+ // If we didn't find the gameid in the main list, check if it
+ // is an obsolete game id.
+ if (obsoleteList != 0) {
+ const ADObsoleteGameID *o = obsoleteList;
+ while (o->from) {
+ if (0 == scumm_stricmp(gameid, o->from)) {
+ g = findPlainGameDescriptor(o->to, list);
+ if (g && g->description)
+ return GameDescriptor(gameid, "Obsolete game ID (" + Common::String(g->description) + ")");
+ else
+ return GameDescriptor(gameid, "Obsolete game ID");
+ }
+ o++;
+ }
+ }
+
+ // No match found
+ return GameDescriptor();
+}
+
+} // End of namespace AdvancedDetector
+
+static GameDescriptor toGameDescriptor(const ADGameDescription &g, const PlainGameDescriptor *sg) {
+ const char *title = 0;
+
+ while (sg->gameid) {
+ if (!scumm_stricmp(g.gameid, sg->gameid))
+ title = sg->description;
+ sg++;
+ }
+
+ GameDescriptor gd(g.gameid, title, g.language, g.platform);
+ gd.updateDesc(g.extra);
+ return gd;
+}
+
+/**
+ * Generate a preferred target value as
+ * GAMEID-PLAFORM-LANG
+ * or (if ADGF_DEMO has been set)
+ * GAMEID-demo-PLAFORM-LANG
+ */
+static Common::String generatePreferredTarget(const Common::String &id, const ADGameDescription *desc) {
+ Common::String res(id);
+
+ if (desc->flags & ADGF_DEMO) {
+ res = res + "-demo";
+ }
+
+ if (desc->flags & ADGF_CD) {
+ res = res + "-cd";
+ }
+
+ if (desc->platform != Common::kPlatformPC && desc->platform != Common::kPlatformUnknown) {
+ res = res + "-" + getPlatformAbbrev(desc->platform);
+ }
+
+ if (desc->language != Common::EN_ANY && desc->language != Common::UNK_LANG && !(desc->flags & ADGF_DROPLANGUAGE)) {
+ res = res + "-" + getLanguageCode(desc->language);
+ }
+
+ return res;
+}
+
+static void updateGameDescriptor(GameDescriptor &desc, const ADGameDescription *realDesc, const ADParams ¶ms) {
+ if (params.singleid != NULL) {
+ desc["preferredtarget"] = desc["gameid"];
+ desc["gameid"] = params.singleid;
+ }
+
+ if (!(params.flags & kADFlagDontAugmentPreferredTarget)) {
+ if (!desc.contains("preferredtarget"))
+ desc["preferredtarget"] = desc["gameid"];
+
+ desc["preferredtarget"] = generatePreferredTarget(desc["preferredtarget"], realDesc);
+ }
+
+ if (params.flags & kADFlagUseExtraAsHint)
+ desc["extra"] = realDesc->extra;
+}
+
+GameList AdvancedMetaEngine::detectGames(const Common::FSList &fslist) const {
+ ADGameDescList matches = detectGame(fslist, params, Common::UNK_LANG, Common::kPlatformUnknown, "");
+ GameList detectedGames;
+
+ // Use fallback detector if there were no matches by other means
+ if (matches.empty()) {
+ const ADGameDescription *fallbackDesc = fallbackDetect(fslist);
+ if (fallbackDesc != 0) {
+ GameDescriptor desc(toGameDescriptor(*fallbackDesc, params.list));
+ updateGameDescriptor(desc, fallbackDesc, params);
+ detectedGames.push_back(desc);
+ }
+ } else for (uint i = 0; i < matches.size(); i++) { // Otherwise use the found matches
+ GameDescriptor desc(toGameDescriptor(*matches[i], params.list));
+ updateGameDescriptor(desc, matches[i], params);
+ detectedGames.push_back(desc);
+ }
+
+ return detectedGames;
+}
+
+Common::Error AdvancedMetaEngine::createInstance(OSystem *syst, Engine **engine) const {
+ assert(engine);
+ upgradeTargetIfNecessary(params);
+
+ const ADGameDescription *agdDesc = 0;
+ Common::Language language = Common::UNK_LANG;
+ Common::Platform platform = Common::kPlatformUnknown;
+ Common::String extra;
+
+ if (ConfMan.hasKey("language"))
+ language = Common::parseLanguage(ConfMan.get("language"));
+ if (ConfMan.hasKey("platform"))
+ platform = Common::parsePlatform(ConfMan.get("platform"));
+ if (params.flags & kADFlagUseExtraAsHint)
+ if (ConfMan.hasKey("extra"))
+ extra = ConfMan.get("extra");
+
+ Common::String gameid = ConfMan.get("gameid");
+
+ Common::String path;
+ if (ConfMan.hasKey("path")) {
+ path = ConfMan.get("path");
+ } else {
+ path = ".";
+ warning("No path was provided. Assuming the data files are in the current directory");
+ }
+ Common::FSNode dir(path);
+ Common::FSList files;
+ if (!dir.isDirectory() || !dir.getChildren(files, Common::FSNode::kListAll)) {
+ warning("Game data path does not exist or is not a directory (%s)", path.c_str());
+ return Common::kNoGameDataFoundError;
+ }
+
+ ADGameDescList matches = detectGame(files, params, language, platform, extra);
+
+ if (params.singleid == NULL) {
+ for (uint i = 0; i < matches.size(); i++) {
+ if (matches[i]->gameid == gameid) {
+ agdDesc = matches[i];
+ break;
+ }
+ }
+ } else if (matches.size() > 0) {
+ agdDesc = matches[0];
+ }
+
+ if (agdDesc == 0) {
+ // Use fallback detector if there were no matches by other means
+ agdDesc = fallbackDetect(files);
+ if (agdDesc != 0) {
+ // Seems we found a fallback match. But first perform a basic
+ // sanity check: the gameid must match.
+ if (params.singleid == NULL && agdDesc->gameid != gameid)
+ agdDesc = 0;
+ }
+ }
+
+ if (agdDesc == 0) {
+ return Common::kNoGameDataFoundError;
+ }
+
+ debug(2, "Running %s", toGameDescriptor(*agdDesc, params.list).description().c_str());
+ if (!createInstance(syst, engine, agdDesc)) {
+ return Common::kNoGameDataFoundError;
+ }
+ return Common::kNoError;
+}
+
+struct SizeMD5 {
+ int size;
+ char md5[32+1];
+};
+
+typedef Common::HashMap<Common::String, SizeMD5, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> SizeMD5Map;
+typedef Common::HashMap<Common::String, Common::FSNode, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> FileMap;
+
+static void reportUnknown(const SizeMD5Map &filesSizeMD5) {
+ // TODO: This message should be cleaned up / made more specific.
+ // For example, we should specify at least which engine triggered this.
+ //
+ // Might also be helpful to display the full path (for when this is used
+ // from the mass detector).
+ printf("Your game version appears to be unknown. Please, report the following\n");
+ printf("data to the ScummVM team along with name of the game you tried to add\n");
+ printf("and its version/language/etc.:\n");
+
+ for (SizeMD5Map::const_iterator file = filesSizeMD5.begin(); file != filesSizeMD5.end(); ++file)
+ printf(" \"%s\", \"%s\", %d\n", file->_key.c_str(), file->_value.md5, file->_value.size);
+
+ printf("\n");
+}
+
+static ADGameDescList detectGameFilebased(const FileMap &allFiles, const ADParams ¶ms);
+
+static ADGameDescList detectGame(const Common::FSList &fslist, const ADParams ¶ms, Common::Language language, Common::Platform platform, const Common::String extra) {
+ FileMap allFiles;
+ SizeMD5Map filesSizeMD5;
+
+ const ADGameFileDescription *fileDesc;
+ const ADGameDescription *g;
+ const byte *descPtr;
+
+ debug(3, "Starting detection");
+
+ // First we compose a hashmap of all files in fslist.
+ // Includes nifty stuff like removing trailing dots and ignoring case.
+ for (Common::FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
+ if (file->isDirectory())
+ continue;
+
+ Common::String tstr = file->getName();
+
+ // Strip any trailing dot
+ if (tstr.lastChar() == '.')
+ tstr.deleteLastChar();
+
+ allFiles[tstr] = *file; // Record the presence of this file
+ }
+
+ // Check which files are included in some ADGameDescription *and* present
+ // in fslist. Compute MD5s and file sizes for these files.
+ for (descPtr = params.descs; ((const ADGameDescription *)descPtr)->gameid != 0; descPtr += params.descItemSize) {
+ g = (const ADGameDescription *)descPtr;
+
+ for (fileDesc = g->filesDescriptions; fileDesc->fileName; fileDesc++) {
+ Common::String fname = fileDesc->fileName;
+ if (allFiles.contains(fname) && !filesSizeMD5.contains(fname)) {
+ debug(3, "+ %s", fname.c_str());
+
+ SizeMD5 tmp;
+ if (!md5_file_string(allFiles[fname], tmp.md5, params.md5Bytes))
+ tmp.md5[0] = 0;
+
+ debug(3, "> '%s': '%s'", fname.c_str(), tmp.md5);
+
+ Common::File testFile;
+ if (testFile.open(allFiles[fname]))
+ tmp.size = (int32)testFile.size();
+ else
+ tmp.size = -1;
+
+ filesSizeMD5[fname] = tmp;
+ }
+ }
+ }
+
+ ADGameDescList matched;
+ int maxFilesMatched = 0;
+
+ // MD5 based matching
+ uint i;
+ for (i = 0, descPtr = params.descs; ((const ADGameDescription *)descPtr)->gameid != 0; descPtr += params.descItemSize, ++i) {
+ g = (const ADGameDescription *)descPtr;
+ bool fileMissing = false;
+
+ // Do not even bother to look at entries which do not have matching
+ // language and platform (if specified).
+ if ((language != Common::UNK_LANG && g->language != Common::UNK_LANG && g->language != language) ||
+ (platform != Common::kPlatformUnknown && g->platform != Common::kPlatformUnknown && g->platform != platform)) {
+ continue;
+ }
+
+ if ((params.flags & kADFlagUseExtraAsHint) && !extra.empty() && g->extra != extra)
+ continue;
+
+ // Try to match all files for this game
+ for (fileDesc = g->filesDescriptions; fileDesc->fileName; fileDesc++) {
+ Common::String tstr = fileDesc->fileName;
+
+ if (!filesSizeMD5.contains(tstr)) {
+ fileMissing = true;
+ break;
+ }
+
+ if (fileDesc->md5 != NULL && 0 != strcmp(fileDesc->md5, filesSizeMD5[tstr].md5)) {
+ debug(3, "MD5 Mismatch. Skipping (%s) (%s)", fileDesc->md5, filesSizeMD5[tstr].md5);
+ fileMissing = true;
+ break;
+ }
+
+ if (fileDesc->fileSize != -1 && fileDesc->fileSize != filesSizeMD5[tstr].size) {
+ debug(3, "Size Mismatch. Skipping");
+ fileMissing = true;
+ break;
+ }
+
+ debug(3, "Matched file: %s", tstr.c_str());
+ }
+ if (!fileMissing) {
+ debug(2, "Found game: %s (%s %s/%s) (%d)", g->gameid, g->extra,
+ getPlatformDescription(g->platform), getLanguageDescription(g->language), i);
+
+ // Count the number of matching files. Then, only keep those
+ // entries which match a maximal amount of files.
+ int curFilesMatched = 0;
+ for (fileDesc = g->filesDescriptions; fileDesc->fileName; fileDesc++)
+ curFilesMatched++;
+
+ if (curFilesMatched > maxFilesMatched) {
+ debug(2, " ... new best match, removing all previous candidates");
+ maxFilesMatched = curFilesMatched;
+
+ for (uint j = 0; j < matched.size();) {
+ if (matched[j]->flags & ADGF_KEEPMATCH)
+ ++j;
+ else
+ matched.remove_at(j);
+ }
+ matched.push_back(g);
+ } else if (curFilesMatched == maxFilesMatched) {
+ matched.push_back(g);
+ } else {
+ debug(2, " ... skipped");
+ }
+
+ } else {
+ debug(5, "Skipping game: %s (%s %s/%s) (%d)", g->gameid, g->extra,
+ getPlatformDescription(g->platform), getLanguageDescription(g->language), i);
+ }
+ }
+
+ // We didn't find a match
+ if (matched.empty()) {
+ if (!filesSizeMD5.empty())
+ reportUnknown(filesSizeMD5);
+
+ // Filename based fallback
+ if (params.fileBasedFallback != 0)
+ matched = detectGameFilebased(allFiles, params);
+ }
+
+ return matched;
+}
+
+/**
+ * Check for each ADFileBasedFallback record whether all files listed
+ * in it are present. If multiple pass this test, we pick the one with
+ * the maximal number of matching files. In case of a tie, the entry
+ * coming first in the list is chosen.
+ */
+static ADGameDescList detectGameFilebased(const FileMap &allFiles, const ADParams ¶ms) {
+ const ADFileBasedFallback *ptr;
+ const char* const* filenames;
+
+ int maxNumMatchedFiles = 0;
+ const ADGameDescription *matchedDesc = 0;
+
+ for (ptr = params.fileBasedFallback; ptr->desc; ++ptr) {
+ const ADGameDescription *agdesc = (const ADGameDescription *)ptr->desc;
+ int numMatchedFiles = 0;
+ bool fileMissing = false;
+
+ for (filenames = ptr->filenames; *filenames; ++filenames) {
+ debug(3, "++ %s", *filenames);
+ if (!allFiles.contains(*filenames)) {
+ fileMissing = true;
+ break;
+ }
+
+ numMatchedFiles++;
+ }
+
+ if (!fileMissing) {
+ debug(4, "Matched: %s", agdesc->gameid);
+
+ if (numMatchedFiles > maxNumMatchedFiles) {
+ matchedDesc = agdesc;
+ maxNumMatchedFiles = numMatchedFiles;
+
+ debug(4, "and overriden");
+ }
+ }
+ }
+
+ ADGameDescList matched;
+
+ if (matchedDesc) { // We got a match
+ matched.push_back(matchedDesc);
+ if (params.flags & kADFlagPrintWarningOnFileBasedFallback) {
+ printf("Your game version has been detected using filename matching as a\n");
+ printf("variant of %s.\n", matchedDesc->gameid);
+ printf("If this is an original and unmodified version, please report any\n");
+ printf("information previously printed by ScummVM to the team.\n");
+ }
+ }
+
+ return matched;
+}
+
+GameList AdvancedMetaEngine::getSupportedGames() const {
+ return gameIDList(params);
+}
+GameDescriptor AdvancedMetaEngine::findGame(const char *gameid) const {
+ return AdvancedDetector::findGameID(gameid, params.list, params.obsoleteList);
+}
Copied: scummvm/trunk/engines/advancedDetector.h (from rev 36127, scummvm/trunk/common/advancedDetector.h)
===================================================================
--- scummvm/trunk/engines/advancedDetector.h (rev 0)
+++ scummvm/trunk/engines/advancedDetector.h 2009-01-29 22:13:01 UTC (rev 36132)
@@ -0,0 +1,218 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+#ifndef ENGINES_ADVANCED_DETECTOR_H
+#define ENGINES_ADVANCED_DETECTOR_H
+
+#include "common/fs.h"
+#include "common/error.h"
+
+#include "engines/metaengine.h"
+
+
+struct ADGameFileDescription {
+ const char *fileName;
+ uint16 fileType; // Optional. Not used during detection, only by engines.
+ const char *md5; // Optional. May be NULL.
+ int32 fileSize; // Optional. Set to -1 to ignore.
+};
+
+#define AD_ENTRY1(f, x) {{ f, 0, x, -1}, {NULL, 0, NULL, 0}}
+#define AD_ENTRY1s(f, x, s) {{ f, 0, x, s}, {NULL, 0, NULL, 0}}
+
+enum ADGameFlags {
+ ADGF_NO_FLAGS = 0,
+ ADGF_KEEPMATCH = (1 << 27), // this entry is kept even when there are matched
+ // entries with more files
+ ADGF_DROPLANGUAGE = (1 << 28), // don't add language to gameid
+ ADGF_CD = (1 << 29), // add "-cd" to gameid
+ ADGF_DEMO = (1 << 30) // add "-demo" to gameid
+};
+
+struct ADGameDescription {
+ const char *gameid;
+ const char *extra;
+ ADGameFileDescription filesDescriptions[14];
+ Common::Language language;
+ Common::Platform platform;
+
+ /**
+ * A bitmask of extra flags. The top 8 bits are reserved for generic flags
+ * defined in the ADGameFlags. This leaves 24 flags to be used by client
+ * code.
+ */
+ uint32 flags;
+};
+
+/**
+ * End marker for a table of ADGameDescription structs. Use this to
+ * terminate a list to be passed to the AdvancedDetector API.
+ */
+#define AD_TABLE_END_MARKER \
+ { NULL, NULL, { { NULL, 0, NULL, 0 } }, Common::UNK_LANG, Common::kPlatformUnknown, ADGF_NO_FLAGS }
+
+
+struct ADObsoleteGameID {
+ const char *from;
+ const char *to;
+ Common::Platform platform;
+};
+
+struct ADFileBasedFallback {
+ /**
+ * Pointer to an ADGameDescription or subclass thereof which will get
+ * returned if there's a detection match.
+ */
+ const void *desc;
+
+ /**
+ * A zero-terminated list of filenames used for matching. All files in
+ * the list must be present to get a detection match.
+ */
+ const char *filenames[10];
+};
+
+
+enum ADFlags {
+ /**
+ * Generate/augment preferred target with information on the language (if
+ * not equal to english) and platform (if not equal to PC).
+ */
+ kADFlagDontAugmentPreferredTarget = (1 << 0),
+ kADFlagPrintWarningOnFileBasedFallback = (1 << 1),
+ kADFlagUseExtraAsHint = (1 << 2)
+};
+
+/**
+ * A structure containing all parameters for the AdvancedDetector.
+ * Typically, an engine will have a single instance of this which is
+ * used by its AdvancedMetaEngine subclass as a parameter to the
+ * primary AdvancedMetaEngine constructor.
+ */
+struct ADParams {
+ /**
+ * Pointer to an array of objects which are either ADGameDescription
+ * or superset structures (i.e. start with an ADGameDescription member.
+ * The list is terminated by an entry with a gameid equal to 0
+ * (see AD_TABLE_END_MARKER).
+ */
+ const byte *descs;
+
+ /**
+ * The size of a single entry of the above descs array. Always
+ * must be >= sizeof(ADGameDescription).
+ */
+ uint descItemSize;
+
+ /**
+ * The number of bytes to compute MD5 sum for. The AdvancedDetector
+ * is primarily based on computing and matching MD5 checksums of files.
+ * Since doing that for large files can be slow, it can be restricted
+ * to a subset of all files.
+ * Typically this will be set to something between 5 and 50 kilobyte,
+ * but arbitrary non-zero values are possible.
+ */
+ uint md5Bytes;
+
+ /**
+ * A list of all gameids (and their corresponding descriptions) supported
+ * by this engine.
+ */
+ const PlainGameDescriptor *list;
+
+ /**
+ * Structure for autoupgrading obsolete targets (optional).
+ *
+ * @todo Properly explain this.
+ */
+ const ADObsoleteGameID *obsoleteList;
+
+ /**
+ * Name of single gameid (optional).
+ *
+ * @todo Properly explain this -- what does it do?
+ */
+ const char *singleid;
+
+ /**
+ * List of files for file-based fallback detection (optional).
+ * This is used if the regular MD5 based detection failed to
+ * detect anything.
+ * As usual this list is terminated by an all-zero entry.
+ *
+ * @todo Properly explain this
+ */
+ const ADFileBasedFallback *fileBasedFallback;
+
+ /**
+ * A bitmask of flags which can be used to configure the behavior
+ * of the AdvancedDetector. Refer to ADFlags for a list of flags
+ * that can be ORed together and passed here.
+ */
+ uint32 flags;
+};
+
+
+namespace AdvancedDetector {
+
+/**
+ * Scan through the game descriptors specified in params and search for
+ * 'gameid' in there. If a match is found, returns a GameDescriptor
+ * with gameid and description set.
+ */
+GameDescriptor findGameID(
+ const char *gameid,
+ const PlainGameDescriptor *list,
+ const ADObsoleteGameID *obsoleteList = 0
+ );
+
+} // End of namespace AdvancedDetector
+
+/**
+ * A MetaEngine implementation based around the advanced detector code.
+ */
+class AdvancedMetaEngine : public MetaEngine {
+ const ADParams ¶ms;
+public:
+ AdvancedMetaEngine(const ADParams &dp) : params(dp) {}
+
+ virtual GameList getSupportedGames() const;
+ virtual GameDescriptor findGame(const char *gameid) const;
+ virtual GameList detectGames(const Common::FSList &fslist) const;
+ virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
+
+ // To be provided by subclasses
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const = 0;
+
+ /**
+ * An (optional) generic fallback detect function which is invoked
+ * if both the regular MD5 based detection as well as the file
+ * based fallback failed to detect anything.
+ */
+ virtual const ADGameDescription *fallbackDetect(const Common::FSList &fslist) const {
+ return 0;
+ }
+};
+
+#endif
Modified: scummvm/trunk/engines/agi/detection.cpp
===================================================================
--- scummvm/trunk/engines/agi/detection.cpp 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/engines/agi/detection.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -25,7 +25,7 @@
#include "base/plugins.h"
-#include "common/advancedDetector.h"
+#include "engines/advancedDetector.h"
#include "common/config-manager.h"
#include "common/file.h"
#include "graphics/thumbnail.h"
@@ -38,7 +38,7 @@
namespace Agi {
struct AGIGameDescription {
- Common::ADGameDescription desc;
+ ADGameDescription desc;
int gameID;
int gameType;
@@ -114,7 +114,7 @@
AD_ENTRY1s(fname,md5,size), \
lang, \
platform, \
- Common::ADGF_NO_FLAGS \
+ ADGF_NO_FLAGS \
}, \
gid, \
interp, \
@@ -237,7 +237,7 @@
},
Common::EN_ANY,
Common::kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GID_GOLDRUSH,
GType_V3,
@@ -484,7 +484,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GID_SQ2,
GType_V2,
@@ -612,7 +612,7 @@
AD_ENTRY1("logdir", "421da3a18004122a966d64ab6bd86d2e"),
Common::RU_RUS,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GID_FANMADE,
GType_V2,
@@ -628,7 +628,7 @@
AD_ENTRY1("logdir", "aaea5b4a348acb669d13b0e6f22d4dc9"),
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GID_GETOUTTASQ,
GType_V2,
@@ -787,7 +787,7 @@
AD_ENTRY1(0, 0), // This should always be AD_ENTRY1(0, 0) in the fallback descriptor
Common::UNK_LANG,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GID_FANMADE,
GType_V2,
@@ -795,7 +795,7 @@
0x2917,
};
-static const Common::ADParams detectionParams = {
+static const ADParams detectionParams = {
// Pointer to ADGameDescription or its superset structure
(const byte *)Agi::gameDescriptions,
// Size of that superset structure
@@ -818,12 +818,12 @@
using namespace Agi;
-class AgiMetaEngine : public Common::AdvancedMetaEngine {
+class AgiMetaEngine : public AdvancedMetaEngine {
mutable Common::String _gameid;
mutable Common::String _extra;
public:
- AgiMetaEngine() : Common::AdvancedMetaEngine(detectionParams) {}
+ AgiMetaEngine() : AdvancedMetaEngine(detectionParams) {}
virtual const char *getName() const {
return "AGI preAGI + v2 + v3 Engine";
@@ -833,13 +833,13 @@
}
virtual bool hasFeature(MetaEngineFeature f) const;
- virtual bool createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const;
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
- const Common::ADGameDescription *fallbackDetect(const Common::FSList &fslist) const;
+ const ADGameDescription *fallbackDetect(const Common::FSList &fslist) const;
};
bool AgiMetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -860,7 +860,7 @@
}
-bool AgiMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const {
+bool AgiMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
const Agi::AGIGameDescription *gd = (const Agi::AGIGameDescription *)desc;
bool res = true;
@@ -977,7 +977,7 @@
return SaveStateDescriptor();
}
-const Common::ADGameDescription *AgiMetaEngine::fallbackDetect(const Common::FSList &fslist) const {
+const ADGameDescription *AgiMetaEngine::fallbackDetect(const Common::FSList &fslist) const {
typedef Common::HashMap<Common::String, int32> IntMap;
IntMap allFiles;
bool matchedUsingFilenames = false;
@@ -994,7 +994,7 @@
// Set the default values for the fallback descriptor's ADGameDescription part.
g_fallbackDesc.desc.language = Common::UNK_LANG;
g_fallbackDesc.desc.platform = Common::kPlatformPC;
- g_fallbackDesc.desc.flags = Common::ADGF_NO_FLAGS;
+ g_fallbackDesc.desc.flags = ADGF_NO_FLAGS;
// Set default values for the fallback descriptor's AGIGameDescription part.
g_fallbackDesc.gameID = GID_FANMADE;
@@ -1135,7 +1135,7 @@
printf("If this is an original and unmodified version or new made Fanmade game,\n");
printf("please report any, information previously printed by ScummVM to the team.\n");
- return (const Common::ADGameDescription *)&g_fallbackDesc;
+ return (const ADGameDescription *)&g_fallbackDesc;
}
return 0;
Modified: scummvm/trunk/engines/agos/detection.cpp
===================================================================
--- scummvm/trunk/engines/agos/detection.cpp 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/engines/agos/detection.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -25,7 +25,7 @@
#include "base/plugins.h"
-#include "common/advancedDetector.h"
+#include "engines/advancedDetector.h"
#include "common/config-manager.h"
#include "common/savefile.h"
#include "common/system.h"
@@ -35,7 +35,7 @@
namespace AGOS {
struct AGOSGameDescription {
- Common::ADGameDescription desc;
+ ADGameDescription desc;
int gameType;
int gameId;
@@ -49,7 +49,7 @@
* corresponding new target and platform combination.
*
*/
-static const Common::ADObsoleteGameID obsoleteGameIDsTable[] = {
+static const ADObsoleteGameID obsoleteGameIDsTable[] = {
{"simon1acorn", "simon1", Common::kPlatformAcorn},
{"simon1amiga", "simon1", Common::kPlatformAmiga},
{"simon1cd32", "simon1", Common::kPlatformAmiga},
@@ -80,7 +80,7 @@
#include "agos/detection_tables.h"
-static const Common::ADParams detectionParams = {
+static const ADParams detectionParams = {
// Pointer to ADGameDescription or its superset structure
(const byte *)AGOS::gameDescriptions,
// Size of that superset structure
@@ -99,9 +99,9 @@
0
};
-class AgosMetaEngine : public Common::AdvancedMetaEngine {
+class AgosMetaEngine : public AdvancedMetaEngine {
public:
- AgosMetaEngine() : Common::AdvancedMetaEngine(detectionParams) {}
+ AgosMetaEngine() : AdvancedMetaEngine(detectionParams) {}
virtual const char *getName() const {
return "AGOS";
@@ -112,7 +112,7 @@
}
virtual bool hasFeature(MetaEngineFeature f) const;
- virtual bool createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const;
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual int getMaximumSaveSlot() const;
};
@@ -127,7 +127,7 @@
(f == kSupportsRTL);
}
-bool AgosMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const {
+bool AgosMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
const AGOS::AGOSGameDescription *gd = (const AGOS::AGOSGameDescription *)desc;
bool res = true;
Modified: scummvm/trunk/engines/agos/detection_tables.h
===================================================================
--- scummvm/trunk/engines/agos/detection_tables.h 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/engines/agos/detection_tables.h 2009-01-29 22:13:01 UTC (rev 36132)
@@ -40,7 +40,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_ELVIRA1,
@@ -60,7 +60,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -80,7 +80,7 @@
},
Common::FR_FRA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -100,7 +100,7 @@
},
Common::DE_DEU,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -122,7 +122,7 @@
},
Common::EN_ANY,
Common::kPlatformAtariST,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_ELVIRA1,
@@ -144,7 +144,7 @@
},
Common::EN_ANY,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -166,7 +166,7 @@
},
Common::EN_ANY,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -188,7 +188,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -210,7 +210,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -232,7 +232,7 @@
},
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -254,7 +254,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA1,
@@ -279,7 +279,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -304,7 +304,7 @@
},
Common::FR_FRA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -329,7 +329,7 @@
},
Common::DE_DEU,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -354,7 +354,7 @@
},
Common::IT_ITA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -379,7 +379,7 @@
},
Common::ES_ESP,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -404,7 +404,7 @@
},
Common::EN_ANY,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -429,7 +429,7 @@
},
Common::FR_FRA,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -455,7 +455,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -480,7 +480,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -505,7 +505,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -530,7 +530,7 @@
},
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -555,7 +555,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -580,7 +580,7 @@
},
Common::IT_ITA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -605,7 +605,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -630,7 +630,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_ELVIRA2,
@@ -656,7 +656,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_WW,
@@ -682,7 +682,7 @@
},
Common::DE_DEU,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_WW,
@@ -704,7 +704,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_WW,
@@ -732,7 +732,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_WW,
@@ -760,7 +760,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_WW,
@@ -783,7 +783,7 @@
},
Common::EN_ANY,
Common::kPlatformAcorn,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -807,7 +807,7 @@
},
Common::EN_ANY,
Common::kPlatformAcorn,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_SIMON1,
@@ -831,7 +831,7 @@
},
Common::EN_ANY,
Common::kPlatformAcorn,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -854,7 +854,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -877,7 +877,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_SIMON1,
@@ -900,7 +900,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -923,7 +923,7 @@
},
Common::FR_FRA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -946,7 +946,7 @@
},
Common::DE_DEU,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -969,7 +969,7 @@
},
Common::IT_ITA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -992,7 +992,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1015,7 +1015,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1038,7 +1038,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_SIMON1,
@@ -1061,7 +1061,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1084,7 +1084,7 @@
},
Common::CZ_CZE,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1107,7 +1107,7 @@
},
Common::RU_RUS,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1130,7 +1130,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1153,7 +1153,7 @@
},
Common::CZ_CZE,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1176,7 +1176,7 @@
},
Common::RU_RUS,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1199,7 +1199,7 @@
},
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1222,7 +1222,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1245,7 +1245,7 @@
},
Common::IT_ITA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1268,7 +1268,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1292,7 +1292,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_SIMON1,
@@ -1316,7 +1316,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1340,7 +1340,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1364,7 +1364,7 @@
},
Common::RU_RUS,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1388,7 +1388,7 @@
},
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1412,7 +1412,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1436,7 +1436,7 @@
},
Common::HB_ISR,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1460,7 +1460,7 @@
},
Common::IT_ITA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1485,7 +1485,7 @@
// FIXME: DOS version which uses WAV format
Common::IT_ITA,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1509,7 +1509,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1533,7 +1533,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1557,7 +1557,7 @@
},
Common::DE_DEU,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON1,
@@ -1581,7 +1581,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1605,7 +1605,7 @@
},
Common::RU_RUS,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1629,7 +1629,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1653,7 +1653,7 @@
},
Common::IT_ITA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1677,7 +1677,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_SIMON2,
@@ -1701,7 +1701,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_SIMON2,
@@ -1725,7 +1725,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1749,7 +1749,7 @@
},
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1773,7 +1773,7 @@
},
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1797,7 +1797,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1821,7 +1821,7 @@
},
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1845,7 +1845,7 @@
},
Common::HB_ISR,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1870,7 +1870,7 @@
// FIXME: DOS version which uses WAV format
Common::IT_ITA,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1894,7 +1894,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1918,7 +1918,7 @@
},
Common::CZ_CZE,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1942,7 +1942,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1966,7 +1966,7 @@
},
Common::FR_FRA,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -1990,7 +1990,7 @@
},
Common::DE_DEU,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -2014,7 +2014,7 @@
},
Common::PL_POL,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_SIMON2,
@@ -2037,7 +2037,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2060,7 +2060,7 @@
},
Common::DE_DEU,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2083,7 +2083,7 @@
},
Common::EN_ANY,
Common::kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2106,7 +2106,7 @@
},
Common::FR_FRA,
Common::kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2129,7 +2129,7 @@
},
Common::DE_DEU,
Common::kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2152,7 +2152,7 @@
},
Common::ES_ESP,
Common::kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2174,7 +2174,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2196,7 +2196,7 @@
},
Common::PL_POL,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2218,7 +2218,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2240,7 +2240,7 @@
},
Common::FR_FRA,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2262,7 +2262,7 @@
},
Common::DE_DEU,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2284,7 +2284,7 @@
},
Common::IT_ITA,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2306,7 +2306,7 @@
},
Common::ES_ESP,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FF,
@@ -2326,7 +2326,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_PP,
@@ -2346,7 +2346,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_PP,
@@ -2366,7 +2366,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_PP,
@@ -2386,7 +2386,7 @@
},
Common::EN_ANY,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_PP,
@@ -2406,7 +2406,7 @@
},
Common::DE_DEU,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_PP,
@@ -2426,7 +2426,7 @@
},
Common::ES_ESP,
Common::kPlatformWindows,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_PP,
Modified: scummvm/trunk/engines/cine/detection.cpp
===================================================================
--- scummvm/trunk/engines/cine/detection.cpp 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/engines/cine/detection.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -27,7 +27,7 @@
#include "base/plugins.h"
-#include "common/advancedDetector.h"
+#include "engines/advancedDetector.h"
#include "common/system.h"
#include "cine/cine.h"
@@ -36,7 +36,7 @@
namespace Cine {
struct CINEGameDescription {
- Common::ADGameDescription desc;
+ ADGameDescription desc;
int gameType;
uint32 features;
@@ -56,7 +56,7 @@
{0, 0}
};
-static const Common::ADObsoleteGameID obsoleteGameIDsTable[] = {
+static const ADObsoleteGameID obsoleteGameIDsTable[] = {
{"fw", "cine", Common::kPlatformUnknown},
{"os", "cine", Common::kPlatformUnknown},
{0, 0, Common::kPlatformUnknown}
@@ -72,7 +72,7 @@
AD_ENTRY1("part01", "61d003202d301c29dd399acfb1354310"),
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -91,7 +91,7 @@
},
Common::EN_USA,
Common::kPlatformPC,
- Common::ADGF_CD
+ ADGF_CD
},
GType_FW,
GF_CD | GF_CRYPTED_BOOT_PRC,
@@ -105,7 +105,7 @@
AD_ENTRY1("part01", "91d7271155520eae6915a9dd2dac120c"),
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -118,7 +118,7 @@
AD_ENTRY1("part01", "f5e98fcca3fb5e7afa284c81c39d8b14"),
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
GF_ALT_FONT,
@@ -131,7 +131,7 @@
AD_ENTRY1("part01", "570109f965c7f53984b98c83d86eb206"),
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
GF_ALT_FONT,
@@ -144,7 +144,7 @@
AD_ENTRY1("part01", "5d1acb97abe9591f9008e00d07add95a"),
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -157,7 +157,7 @@
AD_ENTRY1("part01", "57afd280b598b4180fda6689fbedc4b8"),
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -170,7 +170,7 @@
AD_ENTRY1("part01", "3a87a913e0e33963a48a7f822ca0eb0e"),
Common::DE_DEU,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
GF_ALT_FONT,
@@ -183,7 +183,7 @@
AD_ENTRY1("part01", "5ad0007ccd5f7b3dd6b15ea7f281f9e1"),
Common::ES_ESP,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -196,7 +196,7 @@
AD_ENTRY1("part01", "460f2da8793bc581a2d4b6fc19ccb5ae"),
Common::FR_FRA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -209,7 +209,7 @@
AD_ENTRY1("part01", "1c8e5207743172134409ac58860021af"),
Common::IT_ITA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -226,7 +226,7 @@
},
Common::EN_ANY,
Common::kPlatformAmiga,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_FW,
0,
@@ -239,7 +239,7 @@
AD_ENTRY1("part01", "36050db13af57e462ca1adc4df99de4e"),
Common::EN_ANY,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -252,7 +252,7 @@
AD_ENTRY1("part01", "ef245573b7dab0d4825ceb98e37cef4d"),
Common::FR_FRA,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_FW,
0,
@@ -265,7 +265,7 @@
AD_ENTRY1("procs00", "d6752e7d25924cb866b61eb7cb0c8b56"),
Common::EN_GRB,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -280,7 +280,7 @@
AD_ENTRY1("procs1", "9629129b86979fa592c1787385bf3695"),
Common::EN_GRB,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -293,7 +293,7 @@
AD_ENTRY1("procs1", "d8c3a9d05a63e4cfa801826a7063a126"),
Common::EN_USA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -306,7 +306,7 @@
AD_ENTRY1("procs00", "862a75d76fb7fffec30e52be9ad1c474"),
Common::EN_USA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
GF_CD,
@@ -319,7 +319,7 @@
AD_ENTRY1("procs1", "39b91ae35d1297ce0a76a1a803ca1593"),
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -332,7 +332,7 @@
AD_ENTRY1("procs1", "74c2dabd9d212525fca8875a5f6d8994"),
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -349,7 +349,7 @@
},
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
GF_CD,
@@ -362,7 +362,7 @@
AD_ENTRY1("procs00", "f143567f08cfd1a9b1c9a41c89eadfef"),
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -375,7 +375,7 @@
AD_ENTRY1("procs1", "da066e6b8dd93f2502c2a3755f08dc12"),
Common::IT_ITA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -388,7 +388,7 @@
AD_ENTRY1("procs0", "a9da5531ead0ebf9ad387fa588c0cbb0"),
Common::EN_GRB,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -401,7 +401,7 @@
AD_ENTRY1("procs0", "8a429ced2f4acff8a15ae125174042e8"),
Common::EN_GRB,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -414,7 +414,7 @@
AD_ENTRY1("procs0", "d5f27e33fc29c879f36f15b86ccfa58c"),
Common::EN_USA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -427,7 +427,7 @@
AD_ENTRY1("procs0", "8b7dce249821d3a62b314399c4334347"),
Common::DE_DEU,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -440,7 +440,7 @@
AD_ENTRY1("procs0", "35fc295ddd0af9da932d256ba799a4b0"),
Common::ES_ESP,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -453,7 +453,7 @@
AD_ENTRY1("procs0", "d4ea4a97e01fa67ea066f9e785050ed2"),
Common::FR_FRA,
Common::kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -466,7 +466,7 @@
AD_ENTRY1("demo", "8d3a750d1c840b1b1071e42f9e6f6aa2"),
Common::EN_GRB,
Common::kPlatformAmiga,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
GType_OS,
GF_DEMO,
@@ -479,7 +479,7 @@
AD_ENTRY1("procs0", "1501d5ae364b2814a33ed19347c3fcae"),
Common::EN_GRB,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -492,7 +492,7 @@
AD_ENTRY1("procs0", "2148d25de3219dd4a36580ca735d0afa"),
Common::FR_FRA,
Common::kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_OS,
0,
@@ -503,7 +503,7 @@
} // End of namespace Cine
-static const Common::ADParams detectionParams = {
+static const ADParams detectionParams = {
// Pointer to ADGameDescription or its superset structure
(const byte *)Cine::gameDescriptions,
// Size of that superset structure
@@ -522,9 +522,9 @@
0
};
-class CineMetaEngine : public Common::AdvancedMetaEngine {
+class CineMetaEngine : public AdvancedMetaEngine {
public:
- CineMetaEngine() : Common::AdvancedMetaEngine(detectionParams) {}
+ CineMetaEngine() : AdvancedMetaEngine(detectionParams) {}
virtual const char *getName() const {
return "Cinematique evo 1 engine";
@@ -534,7 +534,7 @@
return "Future Wars & Operation Stealth (C) Delphine Software";
}
- virtual bool createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const;
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual bool hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const;
virtual int getMaximumSaveSlot() const;
@@ -555,7 +555,7 @@
(f == kSupportsSavingDuringRuntime);
}
-bool CineMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const {
+bool CineMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
const Cine::CINEGameDescription *gd = (const Cine::CINEGameDescription *)desc;
if (gd) {
*engine = new Cine::CineEngine(syst, gd);
Modified: scummvm/trunk/engines/cruise/detection.cpp
===================================================================
--- scummvm/trunk/engines/cruise/detection.cpp 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/engines/cruise/detection.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -27,14 +27,14 @@
#include "base/plugins.h"
-#include "common/advancedDetector.h"
+#include "engines/advancedDetector.h"
#include "cruise/cruise.h"
namespace Cruise {
struct CRUISEGameDescription {
- Common::ADGameDescription desc;
+ ADGameDescription desc;
int gameType;
uint32 features;
@@ -61,7 +61,7 @@
{0, 0}
};
-static const Common::ADObsoleteGameID obsoleteGameIDsTable[] = {
+static const ADObsoleteGameID obsoleteGameIDsTable[] = {
{"cruise", "cruise", Common::kPlatformUnknown},
{0, 0, Common::kPlatformUnknown}
};
@@ -76,7 +76,7 @@
AD_ENTRY1("D1", "41a7a4d426dbd048eb369cfee4bb2717"),
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_CRUISE,
0,
@@ -88,7 +88,7 @@
AD_ENTRY1("D1", "a90d2b9ead6b4d812cd14268672cf178"),
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_CRUISE,
0,
@@ -100,7 +100,7 @@
AD_ENTRY1("D1", "e258865807ea31b2d523340e6f0a606b"),
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_CRUISE,
0,
@@ -112,7 +112,7 @@
AD_ENTRY1("D1", "f2a26522d49983c4ae32bcccbb801b02"),
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_CRUISE,
0,
@@ -124,7 +124,7 @@
AD_ENTRY1("D1", "e19a4ab2e24a69087e4ea994a5506231"),
Common::IT_ITA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_CRUISE,
0,
@@ -136,7 +136,7 @@
AD_ENTRY1("D1", "9a302ada55600d96061fda1d63a6ccda"),
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
GType_CRUISE,
0,
@@ -146,7 +146,7 @@
}
-static const Common::ADParams detectionParams = {
+static const ADParams detectionParams = {
// Pointer to ADGameDescription or its superset structure
(const byte *)Cruise::gameDescriptions,
// Size of that superset structure
@@ -165,9 +165,9 @@
0
};
-class CruiseMetaEngine : public Common::AdvancedMetaEngine {
+class CruiseMetaEngine : public AdvancedMetaEngine {
public:
- CruiseMetaEngine() : Common::AdvancedMetaEngine(detectionParams) {}
+ CruiseMetaEngine() : AdvancedMetaEngine(detectionParams) {}
virtual const char *getName() const {
return "Cinematique evo 2 engine";
@@ -177,10 +177,10 @@
return "Cruise for a Corpse (C) Delphine Software";
}
- virtual bool createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const;
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
};
-bool CruiseMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const {
+bool CruiseMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
const Cruise::CRUISEGameDescription *gd = (const Cruise::CRUISEGameDescription *)desc;
if (gd) {
*engine = new Cruise::CruiseEngine(syst, gd);
Modified: scummvm/trunk/engines/drascula/detection.cpp
===================================================================
--- scummvm/trunk/engines/drascula/detection.cpp 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/engines/drascula/detection.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -25,7 +25,7 @@
#include "base/plugins.h"
-#include "common/advancedDetector.h"
+#include "engines/advancedDetector.h"
#include "common/file.h"
#include "drascula/drascula.h"
@@ -34,7 +34,7 @@
namespace Drascula {
struct DrasculaGameDescription {
- Common::ADGameDescription desc;
+ ADGameDescription desc;
};
uint32 DrasculaEngine::getFeatures() const {
@@ -46,7 +46,7 @@
}
void DrasculaEngine::loadArchives() {
- const Common::ADGameFileDescription *ag;
+ const ADGameFileDescription *ag;
if (getFeatures() & GF_PACKED) {
for (ag = _gameDescription->desc.filesDescriptions; ag->fileName; ag++)
@@ -76,7 +76,7 @@
AD_ENTRY1s("14.ald", "09b2735953edcd43af115c65ae00b10e", 1595),
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
},
@@ -88,7 +88,7 @@
AD_ENTRY1s("packet.001", "c6a8697396e213a18472542d5f547cb4", 32847563),
Common::EN_ANY,
Common::kPlatformPC,
- Common::ADGF_KEEPMATCH | GF_PACKED
+ ADGF_KEEPMATCH | GF_PACKED
},
},
@@ -144,7 +144,7 @@
AD_ENTRY1s("14.ald", "0746ed1a5cc8d9728f790c29813f4b43", 23059),
Common::ES_ESP,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
},
@@ -156,7 +156,7 @@
AD_ENTRY1s("14.ald", "72e46089033d56bad1c179ac36e2a9d2", 610),
Common::DE_DEU,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
},
@@ -168,7 +168,7 @@
AD_ENTRY1s("14.ald", "eeeee96b82169003630e08992248296c", 608),
Common::FR_FRA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
},
@@ -191,7 +191,7 @@
AD_ENTRY1s("14.ald", "02b49a18328d0bf2efe6ba658c9c7a1d", 2098),
Common::IT_ITA,
Common::kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
},
@@ -232,7 +232,7 @@
} // End of namespace Drascula
-static const Common::ADParams detectionParams = {
+static const ADParams detectionParams = {
// Pointer to ADGameDescription or its superset structure
(const byte *)Drascula::gameDescriptions,
// Size of that superset structure
@@ -251,9 +251,9 @@
0
};
-class DrasculaMetaEngine : public Common::AdvancedMetaEngine {
+class DrasculaMetaEngine : public AdvancedMetaEngine {
public:
- DrasculaMetaEngine() : Common::AdvancedMetaEngine(detectionParams) {}
+ DrasculaMetaEngine() : AdvancedMetaEngine(detectionParams) {}
virtual const char *getName() const {
return "Drascula Engine";
@@ -263,10 +263,10 @@
return "Drascula Engine (C) 2000 Alcachofa Soft, 1996 (C) Digital Dreams Multimedia, 1994 (C) Emilio de Paz";
}
- virtual bool createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const;
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
};
-bool DrasculaMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::ADGameDescription *desc) const {
+bool DrasculaMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
const Drascula::DrasculaGameDescription *gd = (const Drascula::DrasculaGameDescription *)desc;
if (gd) {
*engine = new Drascula::DrasculaEngine(syst, gd);
Modified: scummvm/trunk/engines/gob/detection.cpp
===================================================================
--- scummvm/trunk/engines/gob/detection.cpp 2009-01-29 22:09:06 UTC (rev 36131)
+++ scummvm/trunk/engines/gob/detection.cpp 2009-01-29 22:13:01 UTC (rev 36132)
@@ -24,14 +24,14 @@
*/
#include "base/plugins.h"
-#include "common/advancedDetector.h"
+#include "engines/advancedDetector.h"
#include "gob/gob.h"
namespace Gob {
struct GOBGameDescription {
- Common::ADGameDescription desc;
+ ADGameDescription desc;
GameType gameType;
int32 features;
@@ -77,7 +77,7 @@
AD_ENTRY1("intro.stk", "c65e9cc8ba23a38456242e1f2b1caad4"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesEGA,
@@ -90,7 +90,7 @@
AD_ENTRY1("intro.stk", "f9233283a0be2464248d83e14b95f09c"),
RU_RUS,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesEGA,
@@ -103,7 +103,7 @@
AD_ENTRY1("intro.stk", "26a9118c0770fa5ac93a9626761600b2"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesNone,
@@ -116,7 +116,7 @@
AD_ENTRY1s("intro.stk", "e157cb59c6d330ca70d12ab0ef1dd12b", 288972),
EN_GRB,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesAdlib,
@@ -129,7 +129,7 @@
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -142,7 +142,7 @@
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -155,7 +155,7 @@
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -168,7 +168,7 @@
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
IT_ITA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -181,7 +181,7 @@
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -194,7 +194,7 @@
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -207,7 +207,7 @@
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -220,7 +220,7 @@
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -233,7 +233,7 @@
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
IT_ITA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -246,7 +246,7 @@
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesCD,
@@ -259,7 +259,7 @@
AD_ENTRY1("intro.stk", "972f22c6ff8144a6636423f0354ca549"),
UNK_LANG,
kPlatformAmiga,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeGob1,
kFeaturesNone,
@@ -272,7 +272,7 @@
AD_ENTRY1("intro.stk", "e72bd1e3828c7dec4c8a3e58c48bdfdb"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeGob1,
kFeaturesNone,
@@ -285,7 +285,7 @@
AD_ENTRY1s("intro.stk", "a796096280d5efd48cf8e7dfbe426eb5", 193595),
UNK_LANG,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeGob1,
kFeaturesNone,
@@ -298,7 +298,7 @@
AD_ENTRY1s("intro.stk", "6d837c6380d8f4d984c9f6cc0026df4f", 192712),
EN_ANY,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesNone,
@@ -311,7 +311,7 @@
AD_ENTRY1("intro.stk", "00a42a7d2d22e6b6ab1b8c673c4ed267"),
EN_ANY,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesAdlib,
@@ -324,7 +324,7 @@
AD_ENTRY1("intro.stk", "00a42a7d2d22e6b6ab1b8c673c4ed267"),
DE_DEU,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesAdlib,
@@ -337,7 +337,7 @@
AD_ENTRY1("intro.stk", "00a42a7d2d22e6b6ab1b8c673c4ed267"),
FR_FRA,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesAdlib,
@@ -350,7 +350,7 @@
AD_ENTRY1("intro.stk", "00a42a7d2d22e6b6ab1b8c673c4ed267"),
IT_ITA,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesAdlib,
@@ -363,7 +363,7 @@
AD_ENTRY1("intro.stk", "00a42a7d2d22e6b6ab1b8c673c4ed267"),
ES_ESP,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob1,
kFeaturesAdlib,
@@ -376,7 +376,7 @@
AD_ENTRY1s("intro.stk", "a13ecb4f6d8fd881ebbcc02e45cb5475", 837275),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -393,7 +393,7 @@
},
FR_FRA,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -406,7 +406,7 @@
AD_ENTRY1s("intro.stk", "5f53c56e3aa2f1e76c2e4f0caa15887f", 829232),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -419,7 +419,7 @@
AD_ENTRY1("intro.stk", "b45b984ee8017efd6ea965b9becd4d66"),
EN_GRB,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -436,7 +436,7 @@
},
UNK_LANG,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -449,7 +449,7 @@
AD_ENTRY1("intro.stk", "dedb5d31d8c8050a8cf77abedcc53dae"),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -462,7 +462,7 @@
AD_ENTRY1s("intro.stk", "25a99827cd59751a80bed9620fb677a0", 893302),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -475,7 +475,7 @@
AD_ENTRY1("intro.stk", "a13892cdf4badda85a6f6fb47603a128"),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -488,7 +488,7 @@
AD_ENTRY1("intro.stk", "cd3e1df8b273636ee32e34b7064f50e8"),
RU_RUS,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -501,7 +501,7 @@
AD_ENTRY1s("intro.stk", "eebf2810122cfd17399260cd1468e994", 554014),
EN_ANY,
kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesNone,
@@ -514,7 +514,7 @@
AD_ENTRY1("intro.stk", "d28b9e9b41f31acfa58dcd12406c7b2c"),
DE_DEU,
kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesNone,
@@ -527,7 +527,7 @@
AD_ENTRY1("intro.stk", "3e4e7db0d201587dd2df4003b2993ef6"),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -540,7 +540,7 @@
AD_ENTRY1s("intro.stk", "4b13c02d1069b86bcfec80f4e474b98b", 554680),
FR_FRA,
kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesNone,
@@ -553,7 +553,7 @@
AD_ENTRY1("intro.stk", "9de5fbb41cf97182109e5fecc9d90347"),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesCD,
@@ -566,7 +566,7 @@
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
EN_ANY,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesCD,
@@ -579,7 +579,7 @@
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesCD,
@@ -592,7 +592,7 @@
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesCD,
@@ -605,7 +605,7 @@
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
IT_ITA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesCD,
@@ -618,7 +618,7 @@
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesCD,
@@ -631,7 +631,7 @@
AD_ENTRY1("intro.stk", "8b1c98ff2ab2e14f47a1b891e9b92217"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -644,7 +644,7 @@
AD_ENTRY1("intro.stk", "cf1c95b2939bd8ff58a25c756cb6125e"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -657,7 +657,7 @@
AD_ENTRY1("intro.stk", "4b278c2678ea01383fd5ca114d947eea"),
UNK_LANG,
kPlatformAmiga,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeGob2,
kFeaturesNone,
@@ -670,7 +670,7 @@
AD_ENTRY1s("intro.stk", "9fa85aea959fa8c582085855fbd99346", 553063),
UNK_LANG,
kPlatformAmiga,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeGob2,
kFeaturesNone,
@@ -683,7 +683,7 @@
AD_ENTRY1("intro.stk", "2bb8878a8042244dd2b96ff682381baa"),
EN_GRB,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -696,7 +696,7 @@
AD_ENTRY1s("intro.stk", "de92e5c6a8c163007ffceebef6e67f7d", 7117568),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -709,7 +709,7 @@
AD_ENTRY1s("intro.stk", "6d60f9205ecfbd8735da2ee7823a70dc", 7014426),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -726,7 +726,7 @@
},
EN_GRB,
kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesNone,
@@ -743,7 +743,7 @@
},
EN_GRB,
kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesNone,
@@ -756,7 +756,7 @@
AD_ENTRY1s("intro.stk", "af83debf2cbea21faa591c7b4608fe92", 458192),
DE_DEU,
kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesNone,
@@ -769,7 +769,7 @@
AD_ENTRY1s("intro.stk", "257fe669705ac4971efdfd5656eef16a", 457719),
FR_FRA,
kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesNone,
@@ -782,7 +782,7 @@
AD_ENTRY1s("intro.stk", "dffd1ab98fe76150d6933329ca6f4cc4", 459458),
FR_FRA,
kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesNone,
@@ -795,7 +795,7 @@
AD_ENTRY1("intro.stk", "e6d13fb3b858cb4f78a8780d184d5b2c"),
FR_FRA,
kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesNone,
@@ -808,7 +808,7 @@
AD_ENTRY1("intro.stk", "4b10525a3782aa7ecd9d833b5c1d308b"),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -821,7 +821,7 @@
AD_ENTRY1("intro.stk", "63170e71f04faba88673b3f510f9c4c8"),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -834,7 +834,7 @@
AD_ENTRY1s("intro.stk", "8b57cd510da8a3bbd99e3a0297a8ebd1", 7018771),
IT_ITA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -847,7 +847,7 @@
AD_ENTRY1("intro.stk", "2e9c2898f6bf206ede801e3b2e7ee428"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -860,7 +860,7 @@
AD_ENTRY1("intro.stk", "15fb91a1b9b09684b28ac75edf66e504"),
EN_USA,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeWeen,
kFeaturesAdlib,
@@ -873,7 +873,7 @@
AD_ENTRY1("intro.stk", "da3c54be18ab73fbdb32db24624a9c23"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeBargon,
kFeaturesNone,
@@ -886,7 +886,7 @@
AD_ENTRY1s("intro.stk", "2f54b330d21f65b04b7c1f8cca76426c", 262109),
FR_FRA,
kPlatformAtariST,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeBargon,
kFeaturesNone,
@@ -899,7 +899,7 @@
AD_ENTRY1s("intro.stk", "11103b304286c23945560b391fd37e7d", 3181890),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeBargon,
kFeaturesNone,
@@ -912,7 +912,7 @@
AD_ENTRY1s("intro.stk", "da3c54be18ab73fbdb32db24624a9c23", 3181825),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeBargon,
kFeaturesNone,
@@ -925,7 +925,7 @@
AD_ENTRY1s("intro.stk", "569d679fe41d49972d34c9fce5930dda", 269825),
EN_ANY,
kPlatformAmiga,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeBargon,
kFeaturesNone,
@@ -938,7 +938,7 @@
AD_ENTRY1s("intro.stk", "00f6b4e2ee26e5c40b488e2df5adcf03", 3975580),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeBargon,
kFeaturesNone,
@@ -951,7 +951,7 @@
AD_ENTRY1s("intro.stk", "da3c54be18ab73fbdb32db24624a9c23", 3181825),
IT_ITA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeBargon,
kFeaturesNone,
@@ -964,7 +964,7 @@
AD_ENTRY1s("intro.stk", "e453bea7b28a67c930764d945f64d898", 3913628),
EN_ANY,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob2,
kFeaturesAdlib,
@@ -977,7 +977,7 @@
AD_ENTRY1s("intro.stk", "7b7f48490dedc8a7cb999388e2fadbe3", 3930674),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesAdlib,
@@ -990,7 +990,7 @@
AD_ENTRY1s("intro.stk", "3712e7527ba8ce5637d2aadf62783005", 72318),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesAdlib,
@@ -1003,7 +1003,7 @@
AD_ENTRY1s("intro.stk", "f1f78b663893b58887add182a77df151", 3944090),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesAdlib,
@@ -1016,7 +1016,7 @@
AD_ENTRY1s("intro.stk", "cd322cb3c64ef2ba2f2134aa2122cfe9", 3936700),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesAdlib,
@@ -1033,7 +1033,7 @@
},
FR_FRA,
kPlatformMacintosh,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesAdlib,
@@ -1046,7 +1046,7 @@
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1059,7 +1059,7 @@
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1072,7 +1072,7 @@
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
IT_ITA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1085,7 +1085,7 @@
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1098,7 +1098,7 @@
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1111,7 +1111,7 @@
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
EN_GRB,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1124,7 +1124,7 @@
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
EN_USA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1137,7 +1137,7 @@
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
FR_FRA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1150,7 +1150,7 @@
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
IT_ITA,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1163,7 +1163,7 @@
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
DE_DEU,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1176,7 +1176,7 @@
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
ES_ESP,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1189,7 +1189,7 @@
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
EN_GRB,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeLostInTime,
kFeaturesCD,
@@ -1202,7 +1202,7 @@
AD_ENTRY1("demo.stk", "c06f8cc20eb239d4c71f225ce3093edf"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeLostInTime,
kFeaturesAdlib,
@@ -1215,7 +1215,7 @@
AD_ENTRY1("demo.stk", "2eba8abd9e3878c57307576012dd2fec"),
UNK_LANG,
kPlatformPC,
- Common::ADGF_DEMO
+ ADGF_DEMO
},
kGameTypeLostInTime,
kFeaturesAdlib,
@@ -1228,7 +1228,7 @@
AD_ENTRY1s("intro.stk", "32b0f57f5ae79a9ae97e8011df38af42", 157084),
EN_GRB,
kPlatformPC,
- Common::ADGF_NO_FLAGS
+ ADGF_NO_FLAGS
},
kGameTypeGob3,
kFeaturesAdlib,
@@ -1241,7 +1241,7 @@
@@ Diff output truncated at 100000 characters. @@
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