diff options
Diffstat (limited to 'engines/zvision/core/save_manager.cpp')
| -rw-r--r-- | engines/zvision/core/save_manager.cpp | 23 | 
1 files changed, 23 insertions, 0 deletions
| diff --git a/engines/zvision/core/save_manager.cpp b/engines/zvision/core/save_manager.cpp index 8ec4f4d628..6e8b6b5ff3 100644 --- a/engines/zvision/core/save_manager.cpp +++ b/engines/zvision/core/save_manager.cpp @@ -67,6 +67,13 @@ void SaveManager::saveGame(uint slot, const Common::String &saveName, Common::Me  	delete file;  } +void SaveManager::saveGameBuffered(uint slot, const Common::String &saveName) { +	if (_tempSave) { +		saveGame(slot, saveName, _tempSave); +		flushSaveBuffer(); +	} +} +  void SaveManager::autoSave() {  	Common::OutSaveFile *file = g_system->getSavefileManager()->openForSaving(_engine->generateAutoSaveFileName()); @@ -231,4 +238,20 @@ Common::SeekableReadStream *SaveManager::getSlotFile(uint slot) {  	return saveFile;  } +void SaveManager::prepareSaveBuffer() { +	if (_tempSave) +		delete _tempSave; + +	_tempSave = new Common::MemoryWriteStreamDynamic; + +	_engine->getScriptManager()->serialize(_tempSave); +} + +void SaveManager::flushSaveBuffer() { +	if (_tempSave) +		delete _tempSave; + +	_tempSave = NULL; +} +  } // End of namespace ZVision | 
