diff options
author | Adrian Frühwirth | 2018-05-03 19:25:16 +0200 |
---|---|---|
committer | Adrian Frühwirth | 2018-05-03 19:25:22 +0200 |
commit | be351e2432486946c1def46a866240c77582eea4 (patch) | |
tree | f2f24acb52756b025a2a421124a0d50a2bf73575 /engines/zvision/file | |
parent | 4743ec44a7d04053929f2694c92d9004b65788d9 (diff) | |
download | scummvm-rg350-be351e2432486946c1def46a866240c77582eea4.tar.gz scummvm-rg350-be351e2432486946c1def46a866240c77582eea4.tar.bz2 scummvm-rg350-be351e2432486946c1def46a866240c77582eea4.zip |
ZVISION: Add play time metadata to savegames
Fixes Trac#10266.
Diffstat (limited to 'engines/zvision/file')
-rw-r--r-- | engines/zvision/file/save_manager.cpp | 17 | ||||
-rw-r--r-- | engines/zvision/file/save_manager.h | 7 |
2 files changed, 17 insertions, 7 deletions
diff --git a/engines/zvision/file/save_manager.cpp b/engines/zvision/file/save_manager.cpp index 4676272146..dd4425ae90 100644 --- a/engines/zvision/file/save_manager.cpp +++ b/engines/zvision/file/save_manager.cpp @@ -128,6 +128,8 @@ void SaveManager::writeSaveGameHeader(Common::OutSaveFile *file, const Common::S file->writeSint16LE(td.tm_mday); file->writeSint16LE(td.tm_hour); file->writeSint16LE(td.tm_min); + + file->writeUint32LE(g_engine->getTotalPlayTime() / 1000); } Common::Error SaveManager::loadGame(int slot) { @@ -184,6 +186,8 @@ Common::Error SaveManager::loadGame(int slot) { } } + g_engine->setTotalPlayTime(header.playTime * 1000); + return Common::kNoError; } @@ -193,6 +197,7 @@ bool SaveManager::readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &hea header.saveDay = 0; header.saveHour = 0; header.saveMinutes = 0; + header.playTime = 0; header.saveName.clear(); header.thumbnail = nullptr; header.version = 0; @@ -237,12 +242,16 @@ bool SaveManager::readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &hea } // Read in save date/time - header.saveYear = in->readSint16LE(); - header.saveMonth = in->readSint16LE(); - header.saveDay = in->readSint16LE(); - header.saveHour = in->readSint16LE(); + header.saveYear = in->readSint16LE(); + header.saveMonth = in->readSint16LE(); + header.saveDay = in->readSint16LE(); + header.saveHour = in->readSint16LE(); header.saveMinutes = in->readSint16LE(); + if (header.version >= 2) { + header.playTime = in->readUint32LE(); + } + return true; } diff --git a/engines/zvision/file/save_manager.h b/engines/zvision/file/save_manager.h index 94885b650b..e5bf47b47b 100644 --- a/engines/zvision/file/save_manager.h +++ b/engines/zvision/file/save_manager.h @@ -42,8 +42,9 @@ struct SaveGameHeader { byte version; Common::String saveName; Graphics::Surface *thumbnail; - int saveYear, saveMonth, saveDay; - int saveHour, saveMinutes; + int16 saveYear, saveMonth, saveDay; + int16 saveHour, saveMinutes; + uint32 playTime; }; class SaveManager { @@ -64,7 +65,7 @@ private: enum { SAVE_ORIGINAL = 0, - SAVE_VERSION = 1 + SAVE_VERSION = 2 }; Common::MemoryWriteStreamDynamic *_tempThumbnail; |