aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/stateloader.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2017-12-02 00:51:53 +0100
committerEugene Sandulenko2017-12-02 00:53:57 +0100
commit1f2290cd30602b9e6602b38bf85bfb6da1b2c164 (patch)
treeae34471464edbeb1c973e98da161f2dea50c2d2a /engines/fullpipe/stateloader.cpp
parentdfbf27bd31dd584e7b974a860c0a99f40f852bda (diff)
downloadscummvm-rg350-1f2290cd30602b9e6602b38bf85bfb6da1b2c164.tar.gz
scummvm-rg350-1f2290cd30602b9e6602b38bf85bfb6da1b2c164.tar.bz2
scummvm-rg350-1f2290cd30602b9e6602b38bf85bfb6da1b2c164.zip
FULLPIPE: Fix bug #10317: Save game metadata is missing
Diffstat (limited to 'engines/fullpipe/stateloader.cpp')
-rw-r--r--engines/fullpipe/stateloader.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp
index 231379cddc..703190be0b 100644
--- a/engines/fullpipe/stateloader.cpp
+++ b/engines/fullpipe/stateloader.cpp
@@ -178,7 +178,7 @@ void parseSavegameHeader(Fullpipe::FullpipeSavegameHeader &header, SaveStateDesc
desc.setSaveTime(hour, minutes);
desc.setPlayTime(header.playtime * 1000);
- desc.setDescription(header.saveName);
+ desc.setDescription(header.description);
}
void fillDummyHeader(Fullpipe::FullpipeSavegameHeader &header) {
@@ -214,22 +214,23 @@ bool readSavegameHeader(Common::InSaveFile *in, FullpipeSavegameHeader &header)
}
header.version = in->readByte();
- if (header.version != FULLPIPE_SAVEGAME_VERSION) {
- in->seek(oldPos, SEEK_SET); // Rewind the file
- fillDummyHeader(header);
- return false;
- }
-
header.date = in->readUint32LE();
header.time = in->readUint16LE();
header.playtime = in->readUint32LE();
+ if (header.version > 1)
+ header.description = in->readPascalString();
+
// Generate savename
SaveStateDescriptor desc;
parseSavegameHeader(header, desc);
+
header.saveName = Common::String::format("%s %s", desc.getSaveDate().c_str(), desc.getSaveTime().c_str());
+ if (header.description.empty())
+ header.description = header.saveName;
+
// Get the thumbnail
header.thumbnail = Common::SharedPtr<Graphics::Surface>(Graphics::loadThumbnail(*in), Graphics::SurfaceDeleter());