[Scummvm-cvs-logs] scummvm master -> 79b92fe04698d3336f1d5232d4701133ff3ac10c

bluegr bluegr at gmail.com
Fri Jan 9 00:14:40 CET 2015


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9e1510e715 ZVISION: Provide a better description for the double FPS game option
345b33d9f0 ZVISION: Remove dead code
79b92fe046 ZVISION: Clean up save logic, and fix a thumbnail-related FIXME


Commit: 9e1510e715465db8930d8d241bdad2ca6020326d
    https://github.com/scummvm/scummvm/commit/9e1510e715465db8930d8d241bdad2ca6020326d
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-01-09T00:37:16+02:00

Commit Message:
ZVISION: Provide a better description for the double FPS game option

Changed paths:
    engines/zvision/detection.cpp



diff --git a/engines/zvision/detection.cpp b/engines/zvision/detection.cpp
index 6615240..0385a0f 100644
--- a/engines/zvision/detection.cpp
+++ b/engines/zvision/detection.cpp
@@ -175,7 +175,7 @@ static const ADExtraGuiOptionsMap optionsList[] = {
 		GAMEOPTION_DOUBLE_FPS,
 		{
 			_s("Double FPS"),
-			_s("Halve the update delay"),
+			_s("Increase game FPS from 30 to 60"),
 			"doublefps",
 			false
 		}


Commit: 345b33d9f0ea971e0ca69f1165d9d3b69d67984c
    https://github.com/scummvm/scummvm/commit/345b33d9f0ea971e0ca69f1165d9d3b69d67984c
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-01-09T00:38:15+02:00

Commit Message:
ZVISION: Remove dead code

Changed paths:
    engines/zvision/file/save_manager.cpp
    engines/zvision/file/save_manager.h



diff --git a/engines/zvision/file/save_manager.cpp b/engines/zvision/file/save_manager.cpp
index 042fafd..022b088 100644
--- a/engines/zvision/file/save_manager.cpp
+++ b/engines/zvision/file/save_manager.cpp
@@ -162,33 +162,6 @@ Common::Error SaveManager::loadGame(uint slot) {
 	return Common::kNoError;
 }
 
-Common::Error SaveManager::loadGame(const Common::String &saveName) {
-	Common::File *saveFile = _engine->getSearchManager()->openFile(saveName);
-	if (saveFile == NULL) {
-		saveFile = new Common::File;
-		if (!saveFile->open(saveName)) {
-			delete saveFile;
-			return Common::kPathDoesNotExist;
-		}
-	}
-
-	// Read the header
-	SaveGameHeader header;
-	if (!readSaveGameHeader(saveFile, header)) {
-		return Common::kUnknownError;
-	}
-
-	ScriptManager *scriptManager = _engine->getScriptManager();
-	// Update the state table values
-	scriptManager->deserialize(saveFile);
-
-	delete saveFile;
-	if (header.thumbnail)
-		delete header.thumbnail;
-
-	return Common::kNoError;
-}
-
 bool SaveManager::readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &header) {
 	uint32 tag = in->readUint32BE();
 	// Check if it's original savegame than fill header structure
diff --git a/engines/zvision/file/save_manager.h b/engines/zvision/file/save_manager.h
index fc8db67..516d0e7 100644
--- a/engines/zvision/file/save_manager.h
+++ b/engines/zvision/file/save_manager.h
@@ -93,7 +93,6 @@ public:
 	 * @param slot    The save slot to load. Must be [1, 20]
 	 */
 	Common::Error loadGame(uint slot);
-	Common::Error loadGame(const Common::String &saveName);
 
 	Common::SeekableReadStream *getSlotFile(uint slot);
 	bool readSaveGameHeader(Common::SeekableReadStream *in, SaveGameHeader &header);


Commit: 79b92fe04698d3336f1d5232d4701133ff3ac10c
    https://github.com/scummvm/scummvm/commit/79b92fe04698d3336f1d5232d4701133ff3ac10c
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-01-09T01:09:53+02:00

Commit Message:
ZVISION: Clean up save logic, and fix a thumbnail-related FIXME

This fixes the save game thumbnails when using the original save/load
screens

Changed paths:
    engines/zvision/detection.cpp
    engines/zvision/file/save_manager.cpp
    engines/zvision/file/save_manager.h
    engines/zvision/scripting/controls/save_control.cpp



diff --git a/engines/zvision/detection.cpp b/engines/zvision/detection.cpp
index 0385a0f..1295f76 100644
--- a/engines/zvision/detection.cpp
+++ b/engines/zvision/detection.cpp
@@ -261,7 +261,7 @@ Common::Error ZVision::ZVision::loadGameState(int slot) {
 }
 
 Common::Error ZVision::ZVision::saveGameState(int slot, const Common::String &desc) {
-	_saveManager->saveGame(slot, desc);
+	_saveManager->saveGame(slot, desc, false);
 	return Common::kNoError;
 }
 
diff --git a/engines/zvision/file/save_manager.cpp b/engines/zvision/file/save_manager.cpp
index 022b088..fb9ccee 100644
--- a/engines/zvision/file/save_manager.cpp
+++ b/engines/zvision/file/save_manager.cpp
@@ -69,7 +69,7 @@ bool SaveManager::scummVMSaveLoadDialog(bool isSave) {
 		return false;
 
 	if (isSave) {
-		saveGame(slot, desc);
+		saveGame(slot, desc, false);
 		return true;
 	} else {
 		Common::ErrorCode result = loadGame(slot).getCode();
@@ -77,46 +77,34 @@ bool SaveManager::scummVMSaveLoadDialog(bool isSave) {
 	}
 }
 
-void SaveManager::saveGame(uint slot, const Common::String &saveName) {
-	Common::SaveFileManager *saveFileManager = g_system->getSavefileManager();
-	Common::OutSaveFile *file = saveFileManager->openForSaving(_engine->generateSaveFileName(slot));
-
-	writeSaveGameHeader(file, saveName);
+void SaveManager::saveGame(uint slot, const Common::String &saveName, bool useSaveBuffer) {
+	if (!_tempSave && useSaveBuffer)
+		return;
 
-	_engine->getScriptManager()->serialize(file);
-
-	file->finalize();
-	delete file;
-
-	_lastSaveTime = g_system->getMillis();
-}
-
-void SaveManager::saveGame(uint slot, const Common::String &saveName, Common::MemoryWriteStreamDynamic *stream) {
 	Common::SaveFileManager *saveFileManager = g_system->getSavefileManager();
 	Common::OutSaveFile *file = saveFileManager->openForSaving(_engine->generateSaveFileName(slot));
 
-	writeSaveGameHeader(file, saveName);
+	writeSaveGameHeader(file, saveName, useSaveBuffer);
 
-	file->write(stream->getData(), stream->size());
+	if (useSaveBuffer)
+		file->write(_tempSave->getData(), _tempSave->size());
+	else
+		_engine->getScriptManager()->serialize(file);
 
 	file->finalize();
 	delete file;
 
-	_lastSaveTime = g_system->getMillis();
-}
-
-void SaveManager::saveGameBuffered(uint slot, const Common::String &saveName) {
-	if (_tempSave) {
-		saveGame(slot, saveName, _tempSave);
+	if (useSaveBuffer)
 		flushSaveBuffer();
-	}
+
+	_lastSaveTime = g_system->getMillis();
 }
 
 void SaveManager::autoSave() {
-	saveGame(0, "Auto save");
+	saveGame(0, "Auto save", false);
 }
 
-void SaveManager::writeSaveGameHeader(Common::OutSaveFile *file, const Common::String &saveName) {
+void SaveManager::writeSaveGameHeader(Common::OutSaveFile *file, const Common::String &saveName, bool useSaveBuffer) {
 	file->writeUint32BE(SAVEGAME_ID);
 
 	// Write version
@@ -126,8 +114,11 @@ void SaveManager::writeSaveGameHeader(Common::OutSaveFile *file, const Common::S
 	file->writeString(saveName);
 	file->writeByte(0);
 
-	// Create a thumbnail and save it
-	Graphics::saveThumbnail(*file);
+	// Save the game thumbnail
+	if (useSaveBuffer)
+		file->write(_tempThumbnail->getData(), _tempThumbnail->size());
+	else
+		Graphics::saveThumbnail(*file);
 
 	// Write out the save date/time
 	TimeDate td;
@@ -245,18 +236,20 @@ Common::SeekableReadStream *SaveManager::getSlotFile(uint slot) {
 }
 
 void SaveManager::prepareSaveBuffer() {
-	if (_tempSave)
-		delete _tempSave;
+	delete _tempThumbnail;
+	_tempThumbnail = new Common::MemoryWriteStreamDynamic;
+	Graphics::saveThumbnail(*_tempThumbnail);
 
+	delete _tempSave;
 	_tempSave = new Common::MemoryWriteStreamDynamic;
-
 	_engine->getScriptManager()->serialize(_tempSave);
 }
 
 void SaveManager::flushSaveBuffer() {
-	if (_tempSave)
-		delete _tempSave;
+	delete _tempThumbnail;
+	_tempThumbnail = NULL;
 
+	delete _tempSave;
 	_tempSave = NULL;
 }
 
diff --git a/engines/zvision/file/save_manager.h b/engines/zvision/file/save_manager.h
index 516d0e7..d3f6aaa 100644
--- a/engines/zvision/file/save_manager.h
+++ b/engines/zvision/file/save_manager.h
@@ -48,7 +48,7 @@ struct SaveGameHeader {
 
 class SaveManager {
 public:
-	SaveManager(ZVision *engine) : _engine(engine), _tempSave(NULL), _lastSaveTime(0) {}
+	SaveManager(ZVision *engine) : _engine(engine), _tempSave(NULL), _tempThumbnail(NULL), _lastSaveTime(0) {}
 	~SaveManager() {
 		flushSaveBuffer();
 	}
@@ -67,6 +67,7 @@ private:
 		SAVE_VERSION = 1
 	};
 
+	Common::MemoryWriteStreamDynamic *_tempThumbnail;
 	Common::MemoryWriteStreamDynamic *_tempSave;
 
 public:
@@ -83,9 +84,7 @@ public:
 	 * @param slot        The save slot this save pertains to. Must be [1, 20]
 	 * @param saveName    The internal name for this save. This is NOT the name of the actual save file.
 	 */
-	void saveGame(uint slot, const Common::String &saveName);
-	void saveGame(uint slot, const Common::String &saveName, Common::MemoryWriteStreamDynamic *stream);
-	void saveGameBuffered(uint slot, const Common::String &saveName);
+	void saveGame(uint slot, const Common::String &saveName, bool useSaveBuffer);
 	/**
 	 * Loads the state data from the save file that slot references. Uses
 	 * ZVision::generateSaveFileName(slot) to get the save file name.
@@ -101,7 +100,7 @@ public:
 	void flushSaveBuffer();
 	bool scummVMSaveLoadDialog(bool isSave);
 private:
-	void writeSaveGameHeader(Common::OutSaveFile *file, const Common::String &saveName);
+	void writeSaveGameHeader(Common::OutSaveFile *file, const Common::String &saveName, bool useSaveBuffer);
 };
 
 } // End of namespace ZVision
diff --git a/engines/zvision/scripting/controls/save_control.cpp b/engines/zvision/scripting/controls/save_control.cpp
index 6cedddf..2ac77c4 100644
--- a/engines/zvision/scripting/controls/save_control.cpp
+++ b/engines/zvision/scripting/controls/save_control.cpp
@@ -102,9 +102,7 @@ bool SaveControl::process(uint32 deltaTimeInMillis) {
 								toSave = false;
 
 						if (toSave) {
-							// FIXME: At this point, the screen shows the save control, so the save game thumbnails will always
-							// show the save control
-							_engine->getSaveManager()->saveGameBuffered(iter->saveId, inp->getText());
+							_engine->getSaveManager()->saveGame(iter->saveId, inp->getText(), true);
 							_engine->getRenderManager()->delayedMessage(_engine->getStringManager()->getTextLine(StringManager::ZVISION_STR_SAVED), 2000);
 							_engine->getScriptManager()->changeLocation(_engine->getScriptManager()->getLastMenuLocation());
 						}






More information about the Scummvm-git-logs mailing list