diff options
author | Eugene Sandulenko | 2016-09-20 19:19:57 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-09-20 19:34:48 +0200 |
commit | cf4452388cc4104072801b2a0c74bdef03d419d5 (patch) | |
tree | 077f5efc87c9477cf0be9b98e4f6ced0ecea1cfa /engines/fullpipe/statesaver.cpp | |
parent | ac7eb25ef08de284a1ea06ae4179a40153f4415e (diff) | |
download | scummvm-rg350-cf4452388cc4104072801b2a0c74bdef03d419d5.tar.gz scummvm-rg350-cf4452388cc4104072801b2a0c74bdef03d419d5.tar.bz2 scummvm-rg350-cf4452388cc4104072801b2a0c74bdef03d419d5.zip |
FULLPIPE: Save ScummVM-specific header with the saves
Diffstat (limited to 'engines/fullpipe/statesaver.cpp')
-rw-r--r-- | engines/fullpipe/statesaver.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/engines/fullpipe/statesaver.cpp b/engines/fullpipe/statesaver.cpp index eaf0352cec..eb5de08422 100644 --- a/engines/fullpipe/statesaver.cpp +++ b/engines/fullpipe/statesaver.cpp @@ -22,6 +22,8 @@ #include "common/memstream.h" +#include "graphics/thumbnail.h" + #include "fullpipe/fullpipe.h" #include "fullpipe/gameloader.h" @@ -114,6 +116,30 @@ void GameLoader::writeSavegame(Scene *sc, const char *fname) { saveFile->write(stream.getData(), stream.size()); + uint headerPos = saveFile->pos(); + FullpipeSavegameHeader header2; + + strcpy(header2.id, "SVMCR"); + header2.version = FULLPIPE_SAVEGAME_VERSION; + + TimeDate curTime; + g_system->getTimeAndDate(curTime); + + header2.date = ((curTime.tm_mday & 0xFF) << 24) | (((curTime.tm_mon + 1) & 0xFF) << 16) | ((curTime.tm_year + 1900) & 0xFFFF); + header2.time = ((curTime.tm_hour & 0xFF) << 8) | ((curTime.tm_min) & 0xFF); + + header2.playtime = g_fp->getTotalPlayTime() / 1000; + + saveFile->write(header2.id, 6); + saveFile->writeByte(header2.version); + saveFile->writeUint32LE(header2.date); + saveFile->writeUint16LE(header2.time); + saveFile->writeUint32LE(header2.playtime); + + Graphics::saveThumbnail(*saveFile); // FIXME. Render proper screen + + saveFile->writeUint32LE(headerPos); // Store where the header starts + saveFile->finalize(); delete saveFile; |