aboutsummaryrefslogtreecommitdiff
path: root/engines/metaengine.h
diff options
context:
space:
mode:
authorChristopher Page2008-08-15 07:10:23 +0000
committerChristopher Page2008-08-15 07:10:23 +0000
commit5bc5855ae9148672b242bd99f3faf5e7ede93ac8 (patch)
treeadb6be3529aa692e1f02f17f002846fc4ac2c31d /engines/metaengine.h
parent5acac50f54e1f927cd2b738c4f2feefb31a5e793 (diff)
downloadscummvm-rg350-5bc5855ae9148672b242bd99f3faf5e7ede93ac8.tar.gz
scummvm-rg350-5bc5855ae9148672b242bd99f3faf5e7ede93ac8.tar.bz2
scummvm-rg350-5bc5855ae9148672b242bd99f3faf5e7ede93ac8.zip
Added some MetaEngineFeatures, defined MEFs for the Scumm engine
svn-id: r33893
Diffstat (limited to 'engines/metaengine.h')
-rw-r--r--engines/metaengine.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/engines/metaengine.h b/engines/metaengine.h
index aef860e0f9..0d8a4a15c9 100644
--- a/engines/metaengine.h
+++ b/engines/metaengine.h
@@ -91,6 +91,44 @@ public:
virtual SaveStateList listSaves(const char *target) const {
return SaveStateList();
}
+
+ /**
+ * Remove the specified save state.
+ *
+ * For most engines this just involves a call removeSaveFile().
+ * Engines which keep an index file will also update it accordingly.
+ *
+ * @param slot slot number of the save state to be removed
+ * @param saveNames a list of all the save state description names
+ */
+ virtual void removeSaveState(int slot, Common::StringList saveNames) const {};
+
+
+ /** @name MetaEngineFeature flags */
+ //@{
+
+ /**
+ * A feature in this context means an ability of the engine which can be
+ * either on or off. Examples include:
+ * - Listing Save States (--list-saves)
+ * - Loading from the Launcher (-x)
+ * - Deleting Saves from the Launcher
+ *
+ * These determine whether the features will be available to the engine
+ * in the launcher.
+ */
+ enum MetaEngineFeature {
+ kSupportsListSaves,
+ kSupportsDirectLoad,
+ kSupportsDeleteSave
+ };
+
+ /**
+ * Determine whether the engine supports the specified feature
+ */
+ virtual bool hasFeature(MetaEngineFeature f) { return false; };
+
+ //@}
};