ScummVM API documentation
Advanced Detector

Description

The Advanced Detector (AD) provides a standard framework for filename and MD5-based game detection.

Classes

struct  ADGameFileDescription
 
struct  ADGameDescription
 
struct  ADDetectedGame
 
struct  ADFileBasedFallback
 
struct  ADExtraGuiOptionsMap
 
class  AdvancedMetaEngineDetection
 
class  AdvancedMetaEngine
 

Macros

#define AD_LISTEND   {NULL, 0, NULL, 0}
 
#define AD_ENTRY1(f, x)   {{ f, 0, x, -1}, AD_LISTEND}
 
#define AD_ENTRY1s(f, x, s)   {{ f, 0, x, s}, AD_LISTEND}
 
#define AD_TABLE_END_MARKER   { NULL, NULL, { { NULL, 0, NULL, 0 } }, Common::UNK_LANG, Common::kPlatformUnknown, ADGF_NO_FLAGS, GUIO0() }
 
#define AD_EXTRA_GUI_OPTIONS_TERMINATOR   { 0, { 0, 0, 0, 0 } }
 

Typedefs

typedef Common::Array< ADDetectedGameADDetectedGames
 

Enumerations

enum  ADGameFlags {
  ADGF_NO_FLAGS = 0, ADGF_REMASTERED = (1 << 18), ADGF_AUTOGENTARGET = (1 << 19), ADGF_UNSTABLE = (1 << 20),
  ADGF_TESTING = (1 << 21), ADGF_PIRATED = (1 << 22), ADGF_UNSUPPORTED = (1 << 23), ADGF_ADDENGLISH = (1 << 24),
  ADGF_MACRESFORK = (1 << 25), ADGF_USEEXTRAASTITLE = (1 << 26), ADGF_DROPLANGUAGE = (1 << 27), ADGF_DROPPLATFORM = (1 << 28),
  ADGF_CD = (1 << 29), ADGF_DEMO = (1 << 30)
}
 
enum  ADFlags { kADFlagUseExtraAsHint = (1 << 0) }
 

Macro Definition Documentation

◆ AD_LISTEND

#define AD_LISTEND   {NULL, 0, NULL, 0}

A shortcut to produce an empty ADGameFileDescription record. Used to mark the end of a list of these.

◆ AD_ENTRY1

#define AD_ENTRY1 (   f,
 
)    {{ f, 0, x, -1}, AD_LISTEND}

A shortcut to produce a list of ADGameFileDescription records with only one record that contains just a filename with an MD5, and no file size.

◆ AD_ENTRY1s

#define AD_ENTRY1s (   f,
  x,
 
)    {{ f, 0, x, s}, AD_LISTEND}

A shortcut to produce a list of ADGameFileDescription records with only one record that contains just a filename with an MD5, plus a file size.

◆ AD_TABLE_END_MARKER

#define AD_TABLE_END_MARKER   { NULL, NULL, { { NULL, 0, NULL, 0 } }, Common::UNK_LANG, Common::kPlatformUnknown, ADGF_NO_FLAGS, GUIO0() }

End marker for a table of ADGameDescription structures. Use this to terminate a list to be passed to the Advanced Detector API.

Typedef Documentation

◆ ADDetectedGames

typedef Common::Array<ADDetectedGame> ADDetectedGames

A list of games detected by the AD.

Enumeration Type Documentation

◆ ADGameFlags

Flags used in the game description.

Enumerator
ADGF_NO_FLAGS 

No flags.

ADGF_REMASTERED 

Add "-remastered' to gameid.

ADGF_AUTOGENTARGET 

Automatically generate gameid from ADGameDescription::extra.

ADGF_UNSTABLE 

Flag to designate not yet officially supported games that are not fit for public testing.

ADGF_TESTING 

Flag to designate not yet officially supported games that are fit for public testing.

ADGF_PIRATED 

Flag to designate well-known pirated versions with cracks.

ADGF_UNSUPPORTED 

Flag to mark certain versions (like fan translations) not to be run for various reasons. A custom message can be provided in the ADGameDescription::extra field.

ADGF_ADDENGLISH 

Always add English as a language option.

ADGF_MACRESFORK 

Calculate the MD5 for this entry from the resource fork.

ADGF_USEEXTRAASTITLE 

Use ADGameDescription::extra as the main game title, not gameid.

ADGF_DROPLANGUAGE 

Do not add language to gameid.

ADGF_DROPPLATFORM 

Do not add platform to gameid.

ADGF_CD 

Add "-cd" to gameid.

ADGF_DEMO 

Add "-demo" to gameid.

◆ ADFlags

enum ADFlags
Enumerator
kADFlagUseExtraAsHint 

Store the value of the ADGameDescription::extra field in the config file, and use it as a hint on subsequent runs.

This can be used when there is no way to autodetect the game (when more than one game are located in same directory), and the user picks up a variant manually. In addition, this is useful if two variants of a game sharing the same gameid are contained in a single directory.