mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-26 20:59:00 +00:00
Added thumbnail support for launcher to SCUMM engine.
svn-id: r34540
This commit is contained in:
parent
92fc264461
commit
725bd8b778
@ -683,6 +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;
|
||||
};
|
||||
|
||||
bool ScummMetaEngine::hasFeature(MetaEngineFeature f) const {
|
||||
@ -690,7 +691,8 @@ bool ScummMetaEngine::hasFeature(MetaEngineFeature f) const {
|
||||
(f == kSupportsRTL) ||
|
||||
(f == kSupportsListSaves) ||
|
||||
(f == kSupportsDirectLoad) ||
|
||||
(f == kSupportsDeleteSave);
|
||||
(f == kSupportsDeleteSave) ||
|
||||
(f == kSupportsThumbnails);
|
||||
}
|
||||
|
||||
GameList ScummMetaEngine::getSupportedGames() const {
|
||||
@ -986,6 +988,10 @@ 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);
|
||||
}
|
||||
|
||||
#if PLUGIN_ENABLED_DYNAMIC(SCUMM)
|
||||
REGISTER_PLUGIN_DYNAMIC(SCUMM, PLUGIN_TYPE_ENGINE, ScummMetaEngine);
|
||||
#else
|
||||
|
@ -73,20 +73,6 @@ struct SaveInfoSection {
|
||||
|
||||
#define INFOSECTION_VERSION 2
|
||||
|
||||
Graphics::Surface *ScummEngine::loadThumbnail(Common::SeekableReadStream *file) {
|
||||
if (!Graphics::checkThumbnailHeader(*file))
|
||||
return 0;
|
||||
|
||||
Graphics::Surface *thumb = new Graphics::Surface();
|
||||
assert(thumb);
|
||||
if (!Graphics::loadThumbnail(*file, *thumb)) {
|
||||
delete thumb;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return thumb;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
void ScummEngine::requestSave(int slot, const char *name, bool temporary) {
|
||||
@ -494,7 +480,7 @@ bool getSavegameName(Common::InSaveFile *in, Common::String &desc, int heversion
|
||||
return true;
|
||||
}
|
||||
|
||||
Graphics::Surface *ScummEngine::loadThumbnailFromSlot(int slot) {
|
||||
Graphics::Surface *ScummEngine::loadThumbnailFromSlot(const char *target, int slot) {
|
||||
char filename[256];
|
||||
Common::SeekableReadStream *in;
|
||||
SaveGameHeader hdr;
|
||||
@ -502,8 +488,9 @@ Graphics::Surface *ScummEngine::loadThumbnailFromSlot(int slot) {
|
||||
if (slot < 0)
|
||||
return 0;
|
||||
|
||||
makeSavegameName(filename, slot, false);
|
||||
if (!(in = _saveFileMan->openForLoading(filename))) {
|
||||
// TODO: Remove code duplication (check: makeSavegameName)
|
||||
snprintf(filename, sizeof(filename), "%s.s%02d", target, slot);
|
||||
if (!(in = g_system->getSavefileManager()->openForLoading(filename))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -519,7 +506,15 @@ Graphics::Surface *ScummEngine::loadThumbnailFromSlot(int slot) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Graphics::Surface *thumb = loadThumbnail(in);
|
||||
Graphics::Surface *thumb = 0;
|
||||
if (Graphics::checkThumbnailHeader(*in)) {
|
||||
thumb = new Graphics::Surface();
|
||||
assert(thumb);
|
||||
if (!Graphics::loadThumbnail(*in, *thumb)) {
|
||||
delete thumb;
|
||||
thumb = 0;
|
||||
}
|
||||
}
|
||||
|
||||
delete in;
|
||||
return thumb;
|
||||
|
@ -627,12 +627,14 @@ public:
|
||||
|
||||
// thumbnail + info stuff
|
||||
public:
|
||||
Graphics::Surface *loadThumbnailFromSlot(int slot);
|
||||
Graphics::Surface *loadThumbnailFromSlot(int slot) {
|
||||
return loadThumbnailFromSlot(_targetName.c_str(), slot);
|
||||
}
|
||||
static Graphics::Surface *loadThumbnailFromSlot(const char *target, int slot);
|
||||
|
||||
bool loadInfosFromSlot(int slot, InfoStuff *stuff);
|
||||
|
||||
protected:
|
||||
Graphics::Surface *loadThumbnail(Common::SeekableReadStream *file);
|
||||
|
||||
void saveInfos(Common::WriteStream* file);
|
||||
bool loadInfos(Common::SeekableReadStream *file, InfoStuff *stuff);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user