[Scummvm-git-logs] scummvm master -> 9bf2b5d03e8a15d86ccb6b7dd156b91ae99c2311
dafioram
dafioram at gmail.com
Mon May 27 12:54:44 CEST 2019
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9bf2b5d03e BLADERUNNER: Show saved game creation date and add play time
Commit: 9bf2b5d03e8a15d86ccb6b7dd156b91ae99c2311
https://github.com/scummvm/scummvm/commit/9bf2b5d03e8a15d86ccb6b7dd156b91ae99c2311
Author: David Fioramonti (dafioram at gmail.com)
Date: 2019-05-27T06:54:40-04:00
Commit Message:
BLADERUNNER: Show saved game creation date and add play time
Bumped saved game version to 2 to add play time.
Can load version 1 saves and save/load version 2 saves.
Changed paths:
engines/bladerunner/bladerunner.cpp
engines/bladerunner/detection.cpp
engines/bladerunner/savefile.cpp
engines/bladerunner/savefile.h
engines/bladerunner/ui/kia_section_save.cpp
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index c0f2544..ec0017e 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -254,7 +254,7 @@ Common::Error BladeRunnerEngine::loadGameState(int slot) {
if (!BladeRunner::SaveFileManager::readHeader(*saveFile, header)) {
error("Invalid savegame");
}
-
+ setTotalPlayTime(header._playTime);
loadGame(*saveFile);
delete saveFile;
@@ -284,6 +284,7 @@ Common::Error BladeRunnerEngine::saveGameState(int slot, const Common::String &d
BladeRunner::SaveFileHeader header;
header._name = desc;
+ header._playTime = getTotalPlayTime();
BladeRunner::SaveFileManager::writeHeader(*saveFile, header);
_time->pause();
diff --git a/engines/bladerunner/detection.cpp b/engines/bladerunner/detection.cpp
index a353e96..33c3dda 100644
--- a/engines/bladerunner/detection.cpp
+++ b/engines/bladerunner/detection.cpp
@@ -108,6 +108,8 @@ bool BladeRunnerMetaEngine::hasFeature(MetaEngineFeature f) const {
f == kSupportsDeleteSave ||
f == kSavesSupportMetaInfo ||
f == kSavesSupportThumbnail ||
+ f == kSavesSupportCreationDate ||
+ f == kSavesSupportPlayTime ||
f == kSimpleSavesNames;
}
diff --git a/engines/bladerunner/savefile.cpp b/engines/bladerunner/savefile.cpp
index 6cc4bdd..3caf3bd 100644
--- a/engines/bladerunner/savefile.cpp
+++ b/engines/bladerunner/savefile.cpp
@@ -79,6 +79,7 @@ SaveStateDescriptor SaveFileManager::queryMetaInfos(const Common::String &target
desc.setThumbnail(header._thumbnail);
desc.setSaveDate(header._year, header._month, header._day);
desc.setSaveTime(header._hour, header._minute);
+ desc.setPlayTime(header._playTime);
return desc;
}
@@ -105,7 +106,7 @@ bool SaveFileManager::readHeader(Common::SeekableReadStream &in, SaveFileHeader
}
header._version = s.readByte();
- if (header._version != kVersion) {
+ if (header._version > kVersion) {
warning("Unsupported version of save file %u, supported is %u", header._version, kVersion);
return false;
}
@@ -118,6 +119,11 @@ bool SaveFileManager::readHeader(Common::SeekableReadStream &in, SaveFileHeader
header._hour = s.readUint16LE();
header._minute = s.readUint16LE();
+ header._playTime = 0;
+ if (header._version >= 2) {
+ header._playTime = s.readUint32LE();
+ }
+
header._thumbnail = nullptr;
// Early check of possible corrupted save file (missing thumbnail and other data)
@@ -167,6 +173,8 @@ bool SaveFileManager::writeHeader(Common::WriteStream &out, SaveFileHeader &head
s.writeUint16LE(td.tm_hour);
s.writeUint16LE(td.tm_min);
+ s.writeUint32LE(header._playTime);
+
return true;
}
diff --git a/engines/bladerunner/savefile.h b/engines/bladerunner/savefile.h
index 529be37..b3a5f25 100644
--- a/engines/bladerunner/savefile.h
+++ b/engines/bladerunner/savefile.h
@@ -53,13 +53,14 @@ struct SaveFileHeader {
int _day;
int _hour;
int _minute;
+ uint32 _playTime;
Graphics::Surface *_thumbnail;
};
class SaveFileManager {
private:
static const uint32 kTag = MKTAG('B', 'R', 'S', 'V');
- static const uint32 kVersion = 1;
+ static const uint32 kVersion = 2;
public:
static const uint32 kNameLength = 32;
diff --git a/engines/bladerunner/ui/kia_section_save.cpp b/engines/bladerunner/ui/kia_section_save.cpp
index 17320c4..aeff2b4 100644
--- a/engines/bladerunner/ui/kia_section_save.cpp
+++ b/engines/bladerunner/ui/kia_section_save.cpp
@@ -407,6 +407,7 @@ void KIASectionSave::save() {
BladeRunner::SaveFileHeader header;
header._name = _inputBox->getText();
+ header._playTime = _vm->getTotalPlayTime();
BladeRunner::SaveFileManager::writeHeader(*saveFile, header);
More information about the Scummvm-git-logs
mailing list