aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/statesaver.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2016-09-20 19:19:57 +0200
committerEugene Sandulenko2016-09-20 19:34:48 +0200
commitcf4452388cc4104072801b2a0c74bdef03d419d5 (patch)
tree077f5efc87c9477cf0be9b98e4f6ced0ecea1cfa /engines/fullpipe/statesaver.cpp
parentac7eb25ef08de284a1ea06ae4179a40153f4415e (diff)
downloadscummvm-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.cpp26
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;