23 #ifndef ENGINES_METAENGINE_H 24 #define ENGINES_METAENGINE_H 26 #include "common/achievements.h" 27 #include "common/scummsys.h" 28 #include "common/error.h" 29 #include "common/array.h" 31 #include "engines/game.h" 32 #include "engines/savestate.h" 34 #include "base/plugins.h" 45 typedef SeekableReadStream InSaveFile;
54 class OptionsContainerWidget;
85 enum { kSavegameFilePattern = -99 };
87 #define EXTENDED_SAVE_VERSION 4 130 virtual const char *getEngineId()
const = 0;
133 virtual const char *getOriginalCopyright()
const = 0;
146 virtual DetectedGames detectGames(
const Common::FSList &fslist)
const = 0;
172 virtual void registerDefaultSettings(
const Common::String &target)
const;
188 virtual GUI::OptionsContainerWidget *buildEngineOptionsWidgetStatic(GUI::GuiObject *boss,
const Common::String &name,
const Common::String &target)
const;
209 static void saveScreenThumbnail(Common::OutSaveFile *saveFile);
223 virtual const char *getName()
const = 0;
238 virtual Common::Error createInstance(OSystem *syst,
Engine **engine)
const = 0;
271 SaveStateList listSaves(
const char *target,
bool saveMode)
const;
294 return hasFeature(kSavesUseExtendedFormat) ? 99 : 0;
309 virtual void removeSaveState(
const char *target,
int slot)
const;
330 virtual Common::String getSavegameFile(
int saveGameIdx,
const char *target =
nullptr)
const;
338 return getSavegameFile(kSavegameFilePattern, target);
344 virtual Common::Array<Common::Keymap *> initKeymaps(
const char *target)
const;
369 virtual GUI::OptionsContainerWidget *buildEngineOptionsWidgetDynamic(GUI::GuiObject *boss,
const Common::String &name,
const Common::String &target)
const;
467 kSavesUseExtendedFormat
480 return Common::AchievementsInfo();
493 static void appendExtendedSave(Common::OutSaveFile *saveFile, uint32 playtime, Common::String desc,
bool isAutosave);
505 static WARN_UNUSED_RESULT
bool readSavegameHeader(Common::InSaveFile *in,
ExtendedSavegameHeader *header,
bool skipThumbnail =
true);
521 const Plugin *findPlugin(
const Common::String &engineId)
const;
530 const PluginList &getPlugins(
const PluginType fetchPluginType = PLUGIN_TYPE_ENGINE_DETECTION)
const;
542 QualifiedGameList findGamesMatching(
const Common::String &engineId,
const Common::String &gameId)
const;
549 Common::String createTargetForGame(
const DetectedGame &game);
552 void upgradeTargetIfNecessary(
const Common::String &target)
const;
556 QualifiedGameList findGameInLoadedPlugins(
const Common::String &gameId)
const;
559 const Plugin *findLoadedPlugin(
const Common::String &engineId)
const;
562 void upgradeTargetForEngineId(
const Common::String &target)
const;
566 #define EngineMan EngineManager::instance()
Common::Array< SaveStateDescriptor > SaveStateList
Definition: savestate.h:275
Definition: metaengine.h:511
Definition: metaengine.h:52
Definition: savestate.h:55
Definition: advancedDetector.h:33
Definition: metaengine.h:48
Common::Array< DetectedGame > DetectedGames
Definition: game.h:203