ALL: Add MetaEngine::simpleSaveNames()

Engines with "simple" savenames would support "Run in background" in
save/load dialog and gradual save slots unlocking. Other engines
save/load feature would be locked until save sync is over.
This commit is contained in:
Alexander Tkachev 2016-06-07 19:33:00 +06:00
parent bf71ba9a1c
commit ab1d160ec8
52 changed files with 171 additions and 26 deletions

View file

@ -100,6 +100,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -171,6 +172,8 @@ SaveStateList AccessMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool AccessMetaEngine::simpleSaveNames() const { return true; }
int AccessMetaEngine::getMaximumSaveSlot() const { int AccessMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVES; return MAX_SAVES;
} }

View file

@ -175,6 +175,7 @@ public:
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
int getMaximumSaveSlot() const { return 'O' - 'A'; } int getMaximumSaveSlot() const { return 'O' - 'A'; }
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const; bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const;
@ -289,6 +290,8 @@ SaveStateList AdlMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool AdlMetaEngine::simpleSaveNames() const { return true; }
void AdlMetaEngine::removeSaveState(const char *target, int slot) const { void AdlMetaEngine::removeSaveState(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.s%02d", target, slot); Common::String fileName = Common::String::format("%s.s%02d", target, slot);
g_system->getSavefileManager()->removeSavefile(fileName); g_system->getSavefileManager()->removeSavefile(fileName);

View file

@ -216,6 +216,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -323,6 +324,8 @@ SaveStateList AgiMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool AgiMetaEngine::simpleSaveNames() const { return true; }
int AgiMetaEngine::getMaximumSaveSlot() const { return 999; } int AgiMetaEngine::getMaximumSaveSlot() const { return 999; }
void AgiMetaEngine::removeSaveState(const char *target, int slot) const { void AgiMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -120,6 +120,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
}; };
@ -207,6 +208,8 @@ SaveStateList AgosMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool AgosMetaEngine::simpleSaveNames() const { return true; }
int AgosMetaEngine::getMaximumSaveSlot() const { return 999; } int AgosMetaEngine::getMaximumSaveSlot() const { return 999; }
#if PLUGIN_ENABLED_DYNAMIC(AGOS) #if PLUGIN_ENABLED_DYNAMIC(AGOS)

View file

@ -83,6 +83,7 @@ public:
int getMaximumSaveSlot() const { return 99; } int getMaximumSaveSlot() const { return 99; }
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
}; };
@ -156,6 +157,8 @@ SaveStateList AvalancheMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool AvalancheMetaEngine::simpleSaveNames() const { return true; }
void AvalancheMetaEngine::removeSaveState(const char *target, int slot) const { void AvalancheMetaEngine::removeSaveState(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::String fileName = Common::String::format("%s.%03d", target, slot);
g_system->getSavefileManager()->removeSavefile(fileName); g_system->getSavefileManager()->removeSavefile(fileName);

View file

@ -86,6 +86,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -135,6 +136,8 @@ SaveStateList BbvsMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool BbvsMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor BbvsMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor BbvsMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String filename = Bbvs::BbvsEngine::getSavegameFilename(target, slot); Common::String filename = Bbvs::BbvsEngine::getSavegameFilename(target, slot);
Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(filename.c_str()); Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(filename.c_str());

View file

@ -131,7 +131,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual Common::String getSavefilesPattern(Common::String &target) const; virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -240,9 +240,7 @@ SaveStateList CGEMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
Common::String CGEMetaEngine::getSavefilesPattern(Common::String &target) const { bool CGEMetaEngine::simpleSaveNames() const { return true; }
return target + ".###";
}
SaveStateDescriptor CGEMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor CGEMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::String fileName = Common::String::format("%s.%03d", target, slot);

View file

@ -127,6 +127,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -239,6 +240,8 @@ SaveStateList CGE2MetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool CGE2MetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor CGE2MetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor CGE2MetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::String fileName = Common::String::format("%s.%03d", target, slot);
Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(fileName); Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -104,6 +104,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -173,6 +174,8 @@ SaveStateList CineMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool CineMetaEngine::simpleSaveNames() const { return false; }
int CineMetaEngine::getMaximumSaveSlot() const { return 9; } int CineMetaEngine::getMaximumSaveSlot() const { return 9; }
void CineMetaEngine::removeSaveState(const char *target, int slot) const { void CineMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -211,6 +211,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const { return 99; } virtual int getMaximumSaveSlot() const { return 99; }
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
@ -254,6 +255,8 @@ SaveStateList CruiseMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool CruiseMetaEngine::simpleSaveNames() const { return false; }
void CruiseMetaEngine::removeSaveState(const char *target, int slot) const { void CruiseMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(Cruise::CruiseEngine::getSavegameFile(slot)); g_system->getSavefileManager()->removeSavefile(Cruise::CruiseEngine::getSavegameFile(slot));
} }

View file

@ -98,6 +98,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const { return 99; } virtual int getMaximumSaveSlot() const { return 99; }
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
@ -147,6 +148,8 @@ SaveStateList DraciMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool DraciMetaEngine::simpleSaveNames() const { return false; }
void DraciMetaEngine::removeSaveState(const char *target, int slot) const { void DraciMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(Draci::DraciEngine::getSavegameFile(slot)); g_system->getSavefileManager()->removeSavefile(Draci::DraciEngine::getSavegameFile(slot));
} }

View file

@ -326,6 +326,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -382,6 +383,8 @@ SaveStateList DrasculaMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool DrasculaMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor DrasculaMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor DrasculaMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::String fileName = Common::String::format("%s.%03d", target, slot);

View file

@ -86,6 +86,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -151,6 +152,8 @@ SaveStateList DreamWebMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool DreamWebMetaEngine::simpleSaveNames() const { return false; }
int DreamWebMetaEngine::getMaximumSaveSlot() const { return 99; } int DreamWebMetaEngine::getMaximumSaveSlot() const { return 99; }
void DreamWebMetaEngine::removeSaveState(const char *target, int slot) const { void DreamWebMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -90,6 +90,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const { return 8; } virtual int getMaximumSaveSlot() const { return 8; }
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
@ -134,6 +135,8 @@ SaveStateList FullpipeMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool FullpipeMetaEngine::simpleSaveNames() const { return false; }
void FullpipeMetaEngine::removeSaveState(const char *target, int slot) const { void FullpipeMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(Fullpipe::getSavegameFile(slot)); g_system->getSavefileManager()->removeSavefile(Fullpipe::getSavegameFile(slot));
} }

View file

@ -78,6 +78,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -141,6 +142,8 @@ SaveStateList GnapMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool GnapMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor GnapMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor GnapMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::String fileName = Common::String::format("%s.%03d", target, slot);
Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName); Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -352,6 +352,7 @@ public:
bool hasFeature(MetaEngineFeature f) const; bool hasFeature(MetaEngineFeature f) const;
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
int getMaximumSaveSlot() const; int getMaximumSaveSlot() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -376,6 +377,8 @@ SaveStateList GroovieMetaEngine::listSaves(const char *target) const {
return SaveLoad::listValidSaves(target); return SaveLoad::listValidSaves(target);
} }
bool GroovieMetaEngine::simpleSaveNames() const { return false; }
int GroovieMetaEngine::getMaximumSaveSlot() const { int GroovieMetaEngine::getMaximumSaveSlot() const {
return SaveLoad::getMaximumSlot(); return SaveLoad::getMaximumSlot();
} }

View file

@ -117,6 +117,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -182,6 +183,8 @@ SaveStateList HopkinsMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool HopkinsMetaEngine::simpleSaveNames() const { return true; }
int HopkinsMetaEngine::getMaximumSaveSlot() const { int HopkinsMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVES; return MAX_SAVES;
} }

View file

@ -149,6 +149,7 @@ public:
int getMaximumSaveSlot() const; int getMaximumSaveSlot() const;
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
}; };
@ -221,6 +222,8 @@ SaveStateList HugoMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool HugoMetaEngine::simpleSaveNames() const { return false; }
SaveStateDescriptor HugoMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor HugoMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s-%02d.SAV", target, slot); Common::String fileName = Common::String::format("%s-%02d.SAV", target, slot);
Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName); Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -162,6 +162,7 @@ public:
bool hasFeature(MetaEngineFeature f) const; bool hasFeature(MetaEngineFeature f) const;
bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -273,6 +274,8 @@ SaveStateList KyraMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool KyraMetaEngine::simpleSaveNames() const { return true; }
int KyraMetaEngine::getMaximumSaveSlot() const { int KyraMetaEngine::getMaximumSaveSlot() const {
return 999; return 999;
} }

View file

@ -138,6 +138,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -191,6 +192,8 @@ SaveStateList LabMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool LabMetaEngine::simpleSaveNames() const { return true; }
int LabMetaEngine::getMaximumSaveSlot() const { int LabMetaEngine::getMaximumSaveSlot() const {
return 999; return 999;
} }

View file

@ -212,6 +212,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -266,6 +267,8 @@ SaveStateList LureMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool LureMetaEngine::simpleSaveNames() const { return false; }
int LureMetaEngine::getMaximumSaveSlot() const { return 999; } int LureMetaEngine::getMaximumSaveSlot() const { return 999; }
void LureMetaEngine::removeSaveState(const char *target, int slot) const { void LureMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -155,6 +155,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -217,6 +218,8 @@ SaveStateList MADSMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool MADSMetaEngine::simpleSaveNames() const { return true; }
int MADSMetaEngine::getMaximumSaveSlot() const { int MADSMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVES; return MAX_SAVES;
} }

View file

@ -116,14 +116,18 @@ public:
} }
/** /**
* Return a common pattern which all engine's save filenames should match. * Return whether engine's saves could be detected with
* "<target>.###" pattern and "###" corresponds to slot
* number.
* *
* @param target name of a config manager target * If that's not true or engine is using some unusual way
* @return a pattern for filenames * of detecting saves and slot numbers, this should return
* false. In that case Save/Load dialog would be unavailable
* during cloud saves sync.
*
* @return true, if "<target>.###" is OK for this engine
*/ */
virtual Common::String getSavefilesPattern(Common::String &target) const { virtual bool simpleSaveNames() const { return false; }
return target + ".s##";
}
/** /**
* Return a list of extra GUI options for the specified target. * Return a list of extra GUI options for the specified target.

View file

@ -200,6 +200,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
SaveStateList listSavesForPrefix(const char *prefix, const char *extension) const; SaveStateList listSavesForPrefix(const char *prefix, const char *extension) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const { return 999; } virtual int getMaximumSaveSlot() const { return 999; }
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -272,6 +273,8 @@ SaveStateList MohawkMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool MohawkMetaEngine::simpleSaveNames() const { return false; }
void MohawkMetaEngine::removeSaveState(const char *target, int slot) const { void MohawkMetaEngine::removeSaveState(const char *target, int slot) const {
// Removing saved games is only supported in Myst/Riven currently. // Removing saved games is only supported in Myst/Riven currently.

View file

@ -72,6 +72,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
}; };
@ -102,6 +103,8 @@ SaveStateList MortevielleMetaEngine::listSaves(const char *target) const {
return Mortevielle::SavegameManager::listSaves(target); return Mortevielle::SavegameManager::listSaves(target);
} }
bool MortevielleMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor MortevielleMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor MortevielleMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String filename = Mortevielle::MortevielleEngine::generateSaveFilename(target, slot); Common::String filename = Mortevielle::MortevielleEngine::generateSaveFilename(target, slot);
return Mortevielle::SavegameManager::querySaveMetaInfos(filename); return Mortevielle::SavegameManager::querySaveMetaInfos(filename);

View file

@ -214,6 +214,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -283,6 +284,8 @@ SaveStateList NeverhoodMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool NeverhoodMetaEngine::simpleSaveNames() const { return true; }
int NeverhoodMetaEngine::getMaximumSaveSlot() const { int NeverhoodMetaEngine::getMaximumSaveSlot() const {
return 999; return 999;
} }

View file

@ -234,6 +234,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -294,6 +295,8 @@ SaveStateList ParallactionMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool ParallactionMetaEngine::simpleSaveNames() const { return false; }
int ParallactionMetaEngine::getMaximumSaveSlot() const { return 99; } int ParallactionMetaEngine::getMaximumSaveSlot() const { return 99; }
void ParallactionMetaEngine::removeSaveState(const char *target, int slot) const { void ParallactionMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -148,6 +148,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const { return 999; } virtual int getMaximumSaveSlot() const { return 999; }
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -178,6 +179,8 @@ SaveStateList PegasusMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool PegasusMetaEngine::simpleSaveNames() const { return false; }
void PegasusMetaEngine::removeSaveState(const char *target, int slot) const { void PegasusMetaEngine::removeSaveState(const char *target, int slot) const {
// See listSaves() for info on the pattern // See listSaves() for info on the pattern
Common::StringArray fileNames = Pegasus::PegasusEngine::listSaveFiles(); Common::StringArray fileNames = Pegasus::PegasusEngine::listSaveFiles();

View file

@ -121,6 +121,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };

View file

@ -105,6 +105,8 @@ SaveStateList PrinceMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool PrinceMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor PrinceMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor PrinceMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::String fileName = Common::String::format("%s.%03d", target, slot);
Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(fileName); Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -444,6 +444,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const { return 99; } virtual int getMaximumSaveSlot() const { return 99; }
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
@ -529,6 +530,8 @@ SaveStateList QueenMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool QueenMetaEngine::simpleSaveNames() const { return false; }
void QueenMetaEngine::removeSaveState(const char *target, int slot) const { void QueenMetaEngine::removeSaveState(const char *target, int slot) const {
Common::String filename = Common::String::format("queen.s%02d", slot); Common::String filename = Common::String::format("queen.s%02d", slot);

View file

@ -144,6 +144,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -207,6 +208,8 @@ SaveStateList SagaMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool SagaMetaEngine::simpleSaveNames() const { return true; }
int SagaMetaEngine::getMaximumSaveSlot() const { return MAX_SAVES - 1; } int SagaMetaEngine::getMaximumSaveSlot() const { return MAX_SAVES - 1; }
void SagaMetaEngine::removeSaveState(const char *target, int slot) const { void SagaMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -518,6 +518,7 @@ public:
const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const; const ADGameDescription *fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const;
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -790,6 +791,8 @@ SaveStateList SciMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool SciMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int slotNr) const { SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int slotNr) const {
Common::String fileName = Common::String::format("%s.%03d", target, slotNr); Common::String fileName = Common::String::format("%s.%03d", target, slotNr);
Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fileName); Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -960,6 +960,7 @@ public:
virtual Common::Error createInstance(OSystem *syst, Engine **engine) const; virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -1299,6 +1300,8 @@ SaveStateList ScummMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool ScummMetaEngine::simpleSaveNames() const { return true; }
void ScummMetaEngine::removeSaveState(const char *target, int slot) const { void ScummMetaEngine::removeSaveState(const char *target, int slot) const {
Common::String filename = ScummEngine::makeSavegameName(target, slot, false); Common::String filename = ScummEngine::makeSavegameName(target, slot, false);
g_system->getSavefileManager()->removeSavefile(filename); g_system->getSavefileManager()->removeSavefile(filename);

View file

@ -159,6 +159,8 @@ public:
*/ */
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
/** /**
* Returns the maximum number of allowed save slots * Returns the maximum number of allowed save slots
*/ */
@ -217,6 +219,8 @@ SaveStateList SherlockMetaEngine::listSaves(const char *target) const {
return Sherlock::SaveManager::getSavegameList(target); return Sherlock::SaveManager::getSavegameList(target);
} }
bool SherlockMetaEngine::simpleSaveNames() const { return true; }
int SherlockMetaEngine::getMaximumSaveSlot() const { int SherlockMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVEGAME_SLOTS; return MAX_SAVEGAME_SLOTS;
} }

View file

@ -84,6 +84,7 @@ public:
virtual Common::Error createInstance(OSystem *syst, Engine **engine) const; virtual Common::Error createInstance(OSystem *syst, Engine **engine) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -247,6 +248,8 @@ SaveStateList SkyMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool SkyMetaEngine::simpleSaveNames() const { return false; }
int SkyMetaEngine::getMaximumSaveSlot() const { return MAX_SAVE_GAMES; } int SkyMetaEngine::getMaximumSaveSlot() const { return MAX_SAVE_GAMES; }
void SkyMetaEngine::removeSaveState(const char *target, int slot) const { void SkyMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -91,6 +91,7 @@ public:
virtual GameDescriptor findGame(const char *gameid) const; virtual GameDescriptor findGame(const char *gameid) const;
virtual GameList detectGames(const Common::FSList &fslist) const; virtual GameList detectGames(const Common::FSList &fslist) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -263,6 +264,8 @@ SaveStateList SwordMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool SwordMetaEngine::simpleSaveNames() const { return false; }
int SwordMetaEngine::getMaximumSaveSlot() const { return 999; } int SwordMetaEngine::getMaximumSaveSlot() const { return 999; }
void SwordMetaEngine::removeSaveState(const char *target, int slot) const { void SwordMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -97,6 +97,7 @@ public:
virtual GameDescriptor findGame(const char *gameid) const; virtual GameDescriptor findGame(const char *gameid) const;
virtual GameList detectGames(const Common::FSList &fslist) const; virtual GameList detectGames(const Common::FSList &fslist) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
@ -256,6 +257,8 @@ SaveStateList Sword2MetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool Sword2MetaEngine::simpleSaveNames() const { return true; }
int Sword2MetaEngine::getMaximumSaveSlot() const { return 999; } int Sword2MetaEngine::getMaximumSaveSlot() const { return 999; }
void Sword2MetaEngine::removeSaveState(const char *target, int slot) const { void Sword2MetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -69,6 +69,7 @@ public:
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
virtual int getMaximumSaveSlot() const { return Sword25::PersistenceService::getSlotCount(); } virtual int getMaximumSaveSlot() const { return Sword25::PersistenceService::getSlotCount(); }
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
}; };
bool Sword25MetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { bool Sword25MetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
@ -109,6 +110,8 @@ SaveStateList Sword25MetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool Sword25MetaEngine::simpleSaveNames() const { return false; }
#if PLUGIN_ENABLED_DYNAMIC(SWORD25) #if PLUGIN_ENABLED_DYNAMIC(SWORD25)
REGISTER_PLUGIN_DYNAMIC(SWORD25, PLUGIN_TYPE_ENGINE, Sword25MetaEngine); REGISTER_PLUGIN_DYNAMIC(SWORD25, PLUGIN_TYPE_ENGINE, Sword25MetaEngine);
#else #else

View file

@ -149,6 +149,8 @@ public:
return saveList; return saveList;
} }
virtual bool simpleSaveNames() const { return false; }
virtual int getMaximumSaveSlot() const { virtual int getMaximumSaveSlot() const {
return MAX_SAVES - 1; return MAX_SAVES - 1;
} }

View file

@ -101,6 +101,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -164,6 +165,8 @@ SaveStateList TinselMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool TinselMetaEngine::simpleSaveNames() const { return true; }
bool TinselMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { bool TinselMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
const Tinsel::TinselGameDescription *gd = (const Tinsel::TinselGameDescription *)desc; const Tinsel::TinselGameDescription *gd = (const Tinsel::TinselGameDescription *)desc;
if (gd) { if (gd) {

View file

@ -221,6 +221,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -288,6 +289,8 @@ SaveStateList ToltecsMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool ToltecsMetaEngine::simpleSaveNames() const { return true; }
int ToltecsMetaEngine::getMaximumSaveSlot() const { int ToltecsMetaEngine::getMaximumSaveSlot() const {
return 999; return 999;
} }

View file

@ -82,6 +82,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -141,6 +142,8 @@ SaveStateList TonyMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool TonyMetaEngine::simpleSaveNames() const { return false; }
int TonyMetaEngine::getMaximumSaveSlot() const { int TonyMetaEngine::getMaximumSaveSlot() const {
return 99; return 99;
} }

View file

@ -148,6 +148,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -212,6 +213,8 @@ SaveStateList ToonMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool ToonMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor ToonMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor ToonMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::String fileName = Common::String::format("%s.%03d", target, slot);
Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName); Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -155,6 +155,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -210,6 +211,8 @@ SaveStateList ToucheMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool ToucheMetaEngine::simpleSaveNames() const { return false; }
int ToucheMetaEngine::getMaximumSaveSlot() const { int ToucheMetaEngine::getMaximumSaveSlot() const {
return Touche::kMaxSaveStates - 1; return Touche::kMaxSaveStates - 1;
} }

View file

@ -145,6 +145,8 @@ public:
return saveList; return saveList;
} }
virtual bool simpleSaveNames() const { return true; }
virtual int getMaximumSaveSlot() const { virtual int getMaximumSaveSlot() const {
return MAX_SAVES - 1; return MAX_SAVES - 1;
} }

View file

@ -187,6 +187,8 @@ public:
return saveList; return saveList;
} }
virtual bool simpleSaveNames() const { return false; }
virtual int getMaximumSaveSlot() const { virtual int getMaximumSaveSlot() const {
return Tucker::kLastSaveSlot; return Tucker::kLastSaveSlot;
} }

View file

@ -81,6 +81,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -143,6 +144,8 @@ SaveStateList VoyeurMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool VoyeurMetaEngine::simpleSaveNames() const { return true; }
int VoyeurMetaEngine::getMaximumSaveSlot() const { int VoyeurMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVES; return MAX_SAVES;
} }

View file

@ -70,6 +70,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const; virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const; virtual void removeSaveState(const char *target, int slot) const;
}; };
@ -136,6 +137,8 @@ SaveStateList WageMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool WageMetaEngine::simpleSaveNames() const { return true; }
int WageMetaEngine::getMaximumSaveSlot() const { return 999; } int WageMetaEngine::getMaximumSaveSlot() const { return 999; }
void WageMetaEngine::removeSaveState(const char *target, int slot) const { void WageMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -164,6 +164,8 @@ public:
return saves; return saves;
} }
virtual bool simpleSaveNames() const { return false; }
int getMaximumSaveSlot() const { int getMaximumSaveSlot() const {
return 100; return 100;
} }

View file

@ -75,6 +75,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const; virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
SaveStateList listSaves(const char *target) const; SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const; virtual int getMaximumSaveSlot() const;
void removeSaveState(const char *target, int slot) const; void removeSaveState(const char *target, int slot) const;
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
@ -159,6 +160,8 @@ SaveStateList ZVisionMetaEngine::listSaves(const char *target) const {
return saveList; return saveList;
} }
bool ZVisionMetaEngine::simpleSaveNames() const { return true; }
int ZVisionMetaEngine::getMaximumSaveSlot() const { int ZVisionMetaEngine::getMaximumSaveSlot() const {
return 999; return 999;
} }

View file

@ -266,25 +266,27 @@ void SaveLoadChooserDialog::listSaves() {
if (!_metaEngine) return; //very strange if (!_metaEngine) return; //very strange
_saveList = _metaEngine->listSaves(_target.c_str()); _saveList = _metaEngine->listSaves(_target.c_str());
Common::String pattern = _metaEngine->getSavefilesPattern(_target); if (_metaEngine->simpleSaveNames()) {
Common::Array<Common::String> files = CloudMan.getSyncingFiles(); //returns empty array if not syncing Common::String pattern = _target + ".###";
for (uint32 i = 0; i < files.size(); ++i) { Common::Array<Common::String> files = CloudMan.getSyncingFiles(); //returns empty array if not syncing
if (!files[i].matchString(pattern, true)) continue; for (uint32 i = 0; i < files.size(); ++i) {
if (!files[i].matchString(pattern, true)) continue;
//make up some slot number //make up some slot number
int slotNum = 0; int slotNum = 0;
for (uint32 j = (files[i].size() > 3 ? files[i].size() - 3 : 0); j < files[i].size(); ++j) { //3 last chars for (uint32 j = (files[i].size() > 3 ? files[i].size() - 3 : 0); j < files[i].size(); ++j) { //3 last chars
char c = files[i][j]; char c = files[i][j];
if (c < '0' || c > '9') continue; if (c < '0' || c > '9') continue;
slotNum = slotNum * 10 + (c - '0'); slotNum = slotNum * 10 + (c - '0');
}
SaveStateDescriptor slot(slotNum, files[i]);
slot.setLocked(true);
_saveList.push_back(slot);
} }
SaveStateDescriptor slot(slotNum, files[i]); Common::sort(_saveList.begin(), _saveList.end(), SaveStateDescriptorSlotComparator());
slot.setLocked(true);
_saveList.push_back(slot);
} }
Common::sort(_saveList.begin(), _saveList.end(), SaveStateDescriptorSlotComparator());
} }
#ifndef DISABLE_SAVELOADCHOOSER_GRID #ifndef DISABLE_SAVELOADCHOOSER_GRID