diff options
Diffstat (limited to 'engines/zvision/file/save_manager.cpp')
-rw-r--r-- | engines/zvision/file/save_manager.cpp | 17 |
1 files changed, 13 insertions, 4 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; } |