ScummVM API documentation
MetaEngineDetection Class Referenceabstract

#include <metaengine.h>

Inheritance diagram for MetaEngineDetection:
PluginObject AdvancedMetaEngineDetectionBase AdvancedMetaEngineDetection< Descriptor > AdvancedMetaEngineDetection< ADGameDescription > AdvancedMetaEngineDetection< AGS::AGSGameDescription > AdvancedMetaEngineDetection< M4::M4GameDescription > AdvancedMetaEngineDetection< Twp::TwpGameDescription > AdvancedMetaEngineDetection< Ultima::UltimaGameDescription > BagelMetaEngineDetection CrabMetaEngineDetection DarkseedMetaEngineDetection Hpl1MetaEngineDetection ImmortalMetaEngineDetection TetraedgeMetaEngineDetection AGSMetaEngineDetection M4MetaEngineDetection TwpMetaEngineDetection UltimaMetaEngineDetection

Public Member Functions

virtual const char * getName () const override=0
 
virtual const char * getEngineName () const =0
 
virtual const char * getOriginalCopyright () const =0
 
virtual PlainGameList getSupportedGames () const =0
 
virtual PlainGameDescriptor findGame (const char *gameId) const =0
 
virtual Common::Error identifyGame (DetectedGame &game, const void **descriptor)=0
 
virtual DetectedGames detectGames (const Common::FSList &fslist, uint32 skipADFlags=0, bool skipIncomplete=false)=0
 
virtual uint getMD5Bytes () const =0
 
virtual int getGameVariantCount () const
 
virtual void dumpDetectionEntries () const =0
 
virtual const DebugChannelDefgetDebugChannels () const
 

Static Public Attributes

static const char GAME_NOT_IMPLEMENTED []
 

Detailed Description

A meta engine factory for Engine instances with the added ability of listing and detecting supported games.

Every engine "plugin" provides a hook to get an instance of a MetaEngineDetection subclass for that "engine plugin". For example, SCUMM provides ScummMetaEngineDetection. This is then in turn used by the frontend code to detect games, and other useful functionality.

To instantiate actual Engine objects, see the class MetaEngine.

Member Function Documentation

◆ getName()

◆ getEngineName()

◆ getOriginalCopyright()

virtual const char* MetaEngineDetection::getOriginalCopyright ( ) const
pure virtual

◆ getSupportedGames()

virtual PlainGameList MetaEngineDetection::getSupportedGames ( ) const
pure virtual

Return a list of games supported by this engine.

Implemented in AdvancedMetaEngineDetectionBase.

◆ findGame()

virtual PlainGameDescriptor MetaEngineDetection::findGame ( const char *  gameId) const
pure virtual

Query the engine for a PlainGameDescriptor for the specified gameid, if any.

Implemented in AdvancedMetaEngineDetectionBase.

◆ identifyGame()

◆ detectGames()

virtual DetectedGames MetaEngineDetection::detectGames ( const Common::FSList fslist,
uint32  skipADFlags = 0,
bool  skipIncomplete = false 
)
pure virtual

Run the engine's game detector on the given list of files, and return a (possibly empty) list of games supported by the engine that were found among the given files.

Implemented in AdvancedMetaEngineDetectionBase, and AGSMetaEngineDetection.

◆ getMD5Bytes()

virtual uint MetaEngineDetection::getMD5Bytes ( ) const
pure virtual

Returns the number of bytes used for MD5-based detection, or 0 if not supported.

Implemented in AdvancedMetaEngineDetectionBase.

◆ getGameVariantCount()

virtual int MetaEngineDetection::getGameVariantCount ( ) const
inlinevirtual

Returns the number of game variants or -1 if unknown

Reimplemented in AdvancedMetaEngineDetectionBase.

◆ dumpDetectionEntries()

virtual void MetaEngineDetection::dumpDetectionEntries ( ) const
pure virtual

Returns formatted data from game descriptor for dumping into a file

Implemented in AdvancedMetaEngineDetectionBase.

◆ getDebugChannels()

virtual const DebugChannelDef* MetaEngineDetection::getDebugChannels ( ) const
inlinevirtual

Return a list of engine specified debug channels

If engine has no specified debug channels or not supported yet, then it will return NULL

Returns
A list of engine specified debug channels

Reimplemented in UltimaMetaEngineDetection, AGSMetaEngineDetection, TwpMetaEngineDetection, M4MetaEngineDetection, DarkseedMetaEngineDetection, TetraedgeMetaEngineDetection, BagelMetaEngineDetection, CrabMetaEngineDetection, and Hpl1MetaEngineDetection.

Member Data Documentation

◆ GAME_NOT_IMPLEMENTED

const char MetaEngineDetection::GAME_NOT_IMPLEMENTED[]
static

This is the message to use in detection tables when the game logic is not implemented


The documentation for this class was generated from the following file: