aboutsummaryrefslogtreecommitdiff
path: root/engines/advancedDetector.h
diff options
context:
space:
mode:
authorEugene Sandulenko2012-03-25 01:38:46 -0700
committerEugene Sandulenko2012-03-25 01:38:46 -0700
commit9b2471aeee6c83cc157a6ad8bd5d103bdaf40eff (patch)
tree0e1f4631f3021a73a58a6742504a3df60f0db6c2 /engines/advancedDetector.h
parentf3ab94f3924f23cc4ba798230dfcd430fd50af82 (diff)
parent72ccb6eea91ae590c02947ff6ce1ad8fbbdef0d8 (diff)
downloadscummvm-rg350-9b2471aeee6c83cc157a6ad8bd5d103bdaf40eff.tar.gz
scummvm-rg350-9b2471aeee6c83cc157a6ad8bd5d103bdaf40eff.tar.bz2
scummvm-rg350-9b2471aeee6c83cc157a6ad8bd5d103bdaf40eff.zip
Merge pull request #211 from lordhoto/game-gui-options-v2
GUI: Game gui options
Diffstat (limited to 'engines/advancedDetector.h')
-rw-r--r--engines/advancedDetector.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/engines/advancedDetector.h b/engines/advancedDetector.h
index 0cec039b5e..45a9f183e8 100644
--- a/engines/advancedDetector.h
+++ b/engines/advancedDetector.h
@@ -134,6 +134,24 @@ enum ADFlags {
/**
+ * Map entry for mapping GUIO_GAMEOPTIONS* to their ExtraGuiOption
+ * description.
+ */
+struct ADExtraGuiOptionsMap {
+ /**
+ * GUIO_GAMEOPTION* string.
+ */
+ const char *guioFlag;
+
+ /**
+ * The associated option.
+ */
+ ExtraGuiOption option;
+};
+
+#define AD_EXTRA_GUI_OPTIONS_TERMINATOR { 0, { 0, 0, 0, 0 } }
+
+/**
* A MetaEngine implementation based around the advanced detector code.
*/
class AdvancedMetaEngine : public MetaEngine {
@@ -159,6 +177,11 @@ protected:
const PlainGameDescriptor *_gameids;
/**
+ * A map containing all the extra game GUI options the engine supports.
+ */
+ const ADExtraGuiOptionsMap * const _extraGuiOptions;
+
+ /**
* 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
@@ -211,7 +234,7 @@ protected:
const char * const *_directoryGlobs;
public:
- AdvancedMetaEngine(const void *descs, uint descItemSize, const PlainGameDescriptor *gameids);
+ AdvancedMetaEngine(const void *descs, uint descItemSize, const PlainGameDescriptor *gameids, const ADExtraGuiOptionsMap *extraGuiOptions = 0);
/**
* Returns list of targets supported by the engine.
@@ -225,6 +248,8 @@ public:
virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
+ virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
+
protected:
// To be implemented by subclasses
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const = 0;