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 createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool AccessMetaEngine::simpleSaveNames() const { return true; }
int AccessMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVES;
}

View file

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

View file

@ -216,6 +216,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool AgiMetaEngine::simpleSaveNames() const { return true; }
int AgiMetaEngine::getMaximumSaveSlot() const { return 999; }
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 SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
};
@ -207,6 +208,8 @@ SaveStateList AgosMetaEngine::listSaves(const char *target) const {
return saveList;
}
bool AgosMetaEngine::simpleSaveNames() const { return true; }
int AgosMetaEngine::getMaximumSaveSlot() const { return 999; }
#if PLUGIN_ENABLED_DYNAMIC(AGOS)

View file

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

View file

@ -86,6 +86,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(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;
}
bool BbvsMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor BbvsMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String filename = Bbvs::BbvsEngine::getSavegameFilename(target, slot);
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 int getMaximumSaveSlot() 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;
virtual void removeSaveState(const char *target, int slot) const;
};
@ -240,9 +240,7 @@ SaveStateList CGEMetaEngine::listSaves(const char *target) const {
return saveList;
}
Common::String CGEMetaEngine::getSavefilesPattern(Common::String &target) const {
return target + ".###";
}
bool CGEMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor CGEMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot);

View file

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

View file

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

View file

@ -211,6 +211,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const { return 99; }
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual void removeSaveState(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;
@ -254,6 +255,8 @@ SaveStateList CruiseMetaEngine::listSaves(const char *target) const {
return saveList;
}
bool CruiseMetaEngine::simpleSaveNames() const { return false; }
void CruiseMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(Cruise::CruiseEngine::getSavegameFile(slot));
}

View file

@ -98,6 +98,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const { return 99; }
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual void removeSaveState(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;
@ -147,6 +148,8 @@ SaveStateList DraciMetaEngine::listSaves(const char *target) const {
return saveList;
}
bool DraciMetaEngine::simpleSaveNames() const { return false; }
void DraciMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(Draci::DraciEngine::getSavegameFile(slot));
}

View file

@ -326,6 +326,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool DrasculaMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor DrasculaMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
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 hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool DreamWebMetaEngine::simpleSaveNames() const { return false; }
int DreamWebMetaEngine::getMaximumSaveSlot() const { return 99; }
void DreamWebMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -90,6 +90,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const { return 8; }
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual void removeSaveState(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;
@ -134,6 +135,8 @@ SaveStateList FullpipeMetaEngine::listSaves(const char *target) const {
return saveList;
}
bool FullpipeMetaEngine::simpleSaveNames() const { return false; }
void FullpipeMetaEngine::removeSaveState(const char *target, int slot) const {
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 int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(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;
}
bool GnapMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor GnapMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot);
Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -352,6 +352,7 @@ public:
bool hasFeature(MetaEngineFeature f) const;
SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
int getMaximumSaveSlot() const;
void removeSaveState(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);
}
bool GroovieMetaEngine::simpleSaveNames() const { return false; }
int GroovieMetaEngine::getMaximumSaveSlot() const {
return SaveLoad::getMaximumSlot();
}

View file

@ -117,6 +117,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool HopkinsMetaEngine::simpleSaveNames() const { return true; }
int HopkinsMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVES;
}

View file

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

View file

@ -162,6 +162,7 @@ public:
bool hasFeature(MetaEngineFeature f) const;
bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
void removeSaveState(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;
}
bool KyraMetaEngine::simpleSaveNames() const { return true; }
int KyraMetaEngine::getMaximumSaveSlot() const {
return 999;
}

View file

@ -138,6 +138,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
void removeSaveState(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;
}
bool LabMetaEngine::simpleSaveNames() const { return true; }
int LabMetaEngine::getMaximumSaveSlot() const {
return 999;
}

View file

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

View file

@ -155,6 +155,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool MADSMetaEngine::simpleSaveNames() const { return true; }
int MADSMetaEngine::getMaximumSaveSlot() const {
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
* @return a pattern for filenames
* If that's not true or engine is using some unusual way
* 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 {
return target + ".s##";
}
virtual bool simpleSaveNames() const { return false; }
/**
* 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 SaveStateList listSaves(const char *target) const;
SaveStateList listSavesForPrefix(const char *prefix, const char *extension) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const { return 999; }
virtual void removeSaveState(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;
}
bool MohawkMetaEngine::simpleSaveNames() const { return false; }
void MohawkMetaEngine::removeSaveState(const char *target, int slot) const {
// Removing saved games is only supported in Myst/Riven currently.

View file

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

View file

@ -214,6 +214,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
void removeSaveState(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;
}
bool NeverhoodMetaEngine::simpleSaveNames() const { return true; }
int NeverhoodMetaEngine::getMaximumSaveSlot() const {
return 999;
}

View file

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

View file

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

View file

@ -121,6 +121,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual int getMaximumSaveSlot() const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
SaveStateDescriptor querySaveMetaInfos(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;
}
bool PrinceMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor PrinceMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("%s.%03d", target, slot);
Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(fileName);

View file

@ -444,6 +444,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const { return 99; }
virtual void removeSaveState(const char *target, int slot) const;
@ -529,6 +530,8 @@ SaveStateList QueenMetaEngine::listSaves(const char *target) const {
return saveList;
}
bool QueenMetaEngine::simpleSaveNames() const { return false; }
void QueenMetaEngine::removeSaveState(const char *target, int slot) const {
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 SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool SagaMetaEngine::simpleSaveNames() const { return true; }
int SagaMetaEngine::getMaximumSaveSlot() const { return MAX_SAVES - 1; }
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;
virtual bool hasFeature(MetaEngineFeature f) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool SciMetaEngine::simpleSaveNames() const { return true; }
SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int slotNr) const {
Common::String fileName = Common::String::format("%s.%03d", target, slotNr);
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 SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool ScummMetaEngine::simpleSaveNames() const { return true; }
void ScummMetaEngine::removeSaveState(const char *target, int slot) const {
Common::String filename = ScummEngine::makeSavegameName(target, slot, false);
g_system->getSavefileManager()->removeSavefile(filename);

View file

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

View file

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

View file

@ -91,6 +91,7 @@ public:
virtual GameDescriptor findGame(const char *gameid) const;
virtual GameList detectGames(const Common::FSList &fslist) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool SwordMetaEngine::simpleSaveNames() const { return false; }
int SwordMetaEngine::getMaximumSaveSlot() const { return 999; }
void SwordMetaEngine::removeSaveState(const char *target, int slot) const {

View file

@ -97,6 +97,7 @@ public:
virtual GameDescriptor findGame(const char *gameid) const;
virtual GameList detectGames(const Common::FSList &fslist) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const;
@ -256,6 +257,8 @@ SaveStateList Sword2MetaEngine::listSaves(const char *target) const {
return saveList;
}
bool Sword2MetaEngine::simpleSaveNames() const { return true; }
int Sword2MetaEngine::getMaximumSaveSlot() const { return 999; }
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 int getMaximumSaveSlot() const { return Sword25::PersistenceService::getSlotCount(); }
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() 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;
}
bool Sword25MetaEngine::simpleSaveNames() const { return false; }
#if PLUGIN_ENABLED_DYNAMIC(SWORD25)
REGISTER_PLUGIN_DYNAMIC(SWORD25, PLUGIN_TYPE_ENGINE, Sword25MetaEngine);
#else

View file

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

View file

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

View file

@ -221,6 +221,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
void removeSaveState(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;
}
bool ToltecsMetaEngine::simpleSaveNames() const { return true; }
int ToltecsMetaEngine::getMaximumSaveSlot() const {
return 999;
}

View file

@ -82,6 +82,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool TonyMetaEngine::simpleSaveNames() const { return false; }
int TonyMetaEngine::getMaximumSaveSlot() const {
return 99;
}

View file

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

View file

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

View file

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

View file

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

View file

@ -81,6 +81,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(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;
}
bool VoyeurMetaEngine::simpleSaveNames() const { return true; }
int VoyeurMetaEngine::getMaximumSaveSlot() const {
return MAX_SAVES;
}

View file

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

View file

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

View file

@ -75,6 +75,7 @@ public:
virtual bool hasFeature(MetaEngineFeature f) const;
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
SaveStateList listSaves(const char *target) const;
virtual bool simpleSaveNames() const;
virtual int getMaximumSaveSlot() const;
void removeSaveState(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;
}
bool ZVisionMetaEngine::simpleSaveNames() const { return true; }
int ZVisionMetaEngine::getMaximumSaveSlot() const {
return 999;
}

View file

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