Added "querySaveMetaInfos" to MetaEngine.
-> Allows easy addition of save state specific infos like playtime, save date atc. -> Removed MetaEngine::loadThumbnailFromSlot, superseded by meta infos -> Changed SCUMM / KYRA to implement the newly added functionallity -> Removed hack in KYRAs listSavefiles, which is now handled via meta infos svn-id: r34581
This commit is contained in:
parent
9d96d9d380
commit
259d87a8a6
9 changed files with 170 additions and 76 deletions
|
@ -683,7 +683,7 @@ public:
|
|||
|
||||
virtual SaveStateList listSaves(const char *target) const;
|
||||
virtual void removeSaveState(const char *target, int slot) const;
|
||||
virtual Graphics::Surface *loadThumbnailFromSlot(const char *target, int slot) const;
|
||||
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
|
||||
};
|
||||
|
||||
bool ScummMetaEngine::hasFeature(MetaEngineFeature f) const {
|
||||
|
@ -692,6 +692,7 @@ bool ScummMetaEngine::hasFeature(MetaEngineFeature f) const {
|
|||
(f == kSupportsListSaves) ||
|
||||
(f == kSupportsDirectLoad) ||
|
||||
(f == kSupportsDeleteSave) ||
|
||||
(f == kSupportsMetaInfos) ||
|
||||
(f == kSupportsThumbnails);
|
||||
}
|
||||
|
||||
|
@ -983,8 +984,25 @@ void ScummMetaEngine::removeSaveState(const char *target, int slot) const {
|
|||
g_system->getSavefileManager()->removeSavefile(filename.c_str());
|
||||
}
|
||||
|
||||
Graphics::Surface *ScummMetaEngine::loadThumbnailFromSlot(const char *target, int slot) const {
|
||||
return ScummEngine::loadThumbnailFromSlot(target, slot);
|
||||
SaveStateDescriptor ScummMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
|
||||
Common::String filename = ScummEngine::makeSavegameName(target, slot, false);
|
||||
Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(filename.c_str());
|
||||
|
||||
if (!in)
|
||||
return SaveStateDescriptor();
|
||||
|
||||
Common::String saveDesc;
|
||||
Scumm::getSavegameName(in, saveDesc, 0); // FIXME: heversion?!?
|
||||
delete in;
|
||||
|
||||
// TODO: Cleanup
|
||||
Graphics::Surface *thumbnail = ScummEngine::loadThumbnailFromSlot(target, slot);
|
||||
|
||||
SaveStateDescriptor desc(slot, saveDesc, filename);
|
||||
desc.setDeletableFlag(true);
|
||||
desc.setThumbnail(thumbnail);
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
#if PLUGIN_ENABLED_DYNAMIC(SCUMM)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue