aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision/file
diff options
context:
space:
mode:
authorFilippos Karapetis2014-12-26 18:22:18 +0200
committerFilippos Karapetis2014-12-26 18:22:18 +0200
commite5f0ee2271f4a43ff05b82380ab22eade9763702 (patch)
tree532f71c8140cf5d98375330b2198c72998ac9695 /engines/zvision/file
parenteea1ee445fcac7ecc53e31d258aac697d6b242f1 (diff)
downloadscummvm-rg350-e5f0ee2271f4a43ff05b82380ab22eade9763702.tar.gz
scummvm-rg350-e5f0ee2271f4a43ff05b82380ab22eade9763702.tar.bz2
scummvm-rg350-e5f0ee2271f4a43ff05b82380ab22eade9763702.zip
ZVISION: Implement auto-saving
Diffstat (limited to 'engines/zvision/file')
-rw-r--r--engines/zvision/file/save_manager.cpp14
-rw-r--r--engines/zvision/file/save_manager.h10
2 files changed, 12 insertions, 12 deletions
diff --git a/engines/zvision/file/save_manager.cpp b/engines/zvision/file/save_manager.cpp
index 05df834497..042fafd38e 100644
--- a/engines/zvision/file/save_manager.cpp
+++ b/engines/zvision/file/save_manager.cpp
@@ -87,6 +87,8 @@ void SaveManager::saveGame(uint slot, const Common::String &saveName) {
file->finalize();
delete file;
+
+ _lastSaveTime = g_system->getMillis();
}
void SaveManager::saveGame(uint slot, const Common::String &saveName, Common::MemoryWriteStreamDynamic *stream) {
@@ -99,6 +101,8 @@ void SaveManager::saveGame(uint slot, const Common::String &saveName, Common::Me
file->finalize();
delete file;
+
+ _lastSaveTime = g_system->getMillis();
}
void SaveManager::saveGameBuffered(uint slot, const Common::String &saveName) {
@@ -109,15 +113,7 @@ void SaveManager::saveGameBuffered(uint slot, const Common::String &saveName) {
}
void SaveManager::autoSave() {
- Common::OutSaveFile *file = g_system->getSavefileManager()->openForSaving(_engine->generateAutoSaveFileName());
-
- writeSaveGameHeader(file, "auto");
-
- _engine->getScriptManager()->serialize(file);
-
- // Cleanup
- file->finalize();
- delete file;
+ saveGame(0, "Auto save");
}
void SaveManager::writeSaveGameHeader(Common::OutSaveFile *file, const Common::String &saveName) {
diff --git a/engines/zvision/file/save_manager.h b/engines/zvision/file/save_manager.h
index 75841331e7..fc8db67566 100644
--- a/engines/zvision/file/save_manager.h
+++ b/engines/zvision/file/save_manager.h
@@ -48,13 +48,18 @@ struct SaveGameHeader {
class SaveManager {
public:
- SaveManager(ZVision *engine) : _engine(engine), _tempSave(NULL) {}
+ SaveManager(ZVision *engine) : _engine(engine), _tempSave(NULL), _lastSaveTime(0) {}
~SaveManager() {
flushSaveBuffer();
}
+ uint32 getLastSaveTime() const {
+ return _lastSaveTime;
+ }
+
private:
ZVision *_engine;
+ uint32 _lastSaveTime;
static const uint32 SAVEGAME_ID;
enum {
@@ -67,8 +72,7 @@ private:
public:
/**
* Called every room change. Saves the state of the room just before
- * we switched rooms. Uses ZVision::generateAutoSaveFileName() to
- * create the save file name.
+ * the room changes.
*/
void autoSave();
/**