aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/detection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage/detection.cpp')
-rw-r--r--engines/tsage/detection.cpp37
1 files changed, 21 insertions, 16 deletions
diff --git a/engines/tsage/detection.cpp b/engines/tsage/detection.cpp
index f12efc02e8..44a25085fa 100644
--- a/engines/tsage/detection.cpp
+++ b/engines/tsage/detection.cpp
@@ -58,7 +58,7 @@ Common::String TSageEngine::getPrimaryFilename() const {
} // End of namespace TsAGE
static const PlainGameDescriptor tSageGameTitles[] = {
- { "tsage", "Unknown Tsunami TSAGE-based Game" },
+ { "tsage", "Tsunami TsAGE-based Game" },
{ "ringworld", "Ringworld: Revenge of the Patriarch" },
{ "blueforce", "Blue Force" },
{ 0, 0 }
@@ -131,6 +131,8 @@ public:
if (in) {
if (TsAGE::Saver::readSavegameHeader(in, header)) {
saveList.push_back(SaveStateDescriptor(slot, header.saveName));
+
+ header.thumbnail->free();
delete header.thumbnail;
}
@@ -154,22 +156,25 @@ public:
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const {
Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading(
generateGameStateFileName(target, slot));
- assert(f);
+
+ if (f) {
+ TsAGE::tSageSavegameHeader header;
+ TsAGE::Saver::readSavegameHeader(f, header);
+ delete f;
+
+ // Create the return descriptor
+ SaveStateDescriptor desc(slot, header.saveName);
+ desc.setDeletableFlag(true);
+ desc.setWriteProtectedFlag(false);
+ desc.setThumbnail(header.thumbnail);
+ desc.setSaveDate(header.saveYear, header.saveMonth, header.saveDay);
+ desc.setSaveTime(header.saveHour, header.saveMinutes);
+ desc.setPlayTime(header.totalFrames * GAME_FRAME_TIME);
+
+ return desc;
+ }
- TsAGE::tSageSavegameHeader header;
- TsAGE::Saver::readSavegameHeader(f, header);
- delete f;
-
- // Create the return descriptor
- SaveStateDescriptor desc(slot, header.saveName);
- desc.setDeletableFlag(true);
- desc.setWriteProtectedFlag(false);
- desc.setThumbnail(header.thumbnail);
- desc.setSaveDate(header.saveYear, header.saveMonth, header.saveDay);
- desc.setSaveTime(header.saveHour, header.saveMinutes);
- desc.setPlayTime(header.totalFrames * GAME_FRAME_TIME);
-
- return desc;
+ return SaveStateDescriptor();
}
};