[Scummvm-cvs-logs] scummvm master -> 92dc12a3b207833ee7f5a24516d198ca2c997b7c

bluegr bluegr at gmail.com
Fri Jan 4 12:25:37 CET 2013


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

Summary:
92dc12a3b2 DRASCULA: Properly set the game play time when loading a saved game


Commit: 92dc12a3b207833ee7f5a24516d198ca2c997b7c
    https://github.com/scummvm/scummvm/commit/92dc12a3b207833ee7f5a24516d198ca2c997b7c
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-01-04T03:24:43-08:00

Commit Message:
DRASCULA: Properly set the game play time when loading a saved game

Changed paths:
    engines/drascula/detection.cpp
    engines/drascula/saveload.cpp



diff --git a/engines/drascula/detection.cpp b/engines/drascula/detection.cpp
index 573cad0..e1f69e2 100644
--- a/engines/drascula/detection.cpp
+++ b/engines/drascula/detection.cpp
@@ -273,7 +273,7 @@ static const ExtraGuiOption drasculaExtraGuiOption = {
 	false
 };
 
-SaveStateDescriptor loadMetaData(Common::ReadStream *s, int slot);
+SaveStateDescriptor loadMetaData(Common::ReadStream *s, int slot, bool setPlayTime);
 
 class DrasculaMetaEngine : public AdvancedMetaEngine {
 public:
@@ -334,7 +334,7 @@ SaveStateList DrasculaMetaEngine::listSaves(const char *target) const {
 		if (slotNum >= 0 && slotNum <= getMaximumSaveSlot()) {
 			Common::InSaveFile *in = saveFileMan->openForLoading(*file);
 			if (in) {
-				SaveStateDescriptor desc = loadMetaData(in, slotNum);
+				SaveStateDescriptor desc = loadMetaData(in, slotNum, false);
 				if (desc.getSaveSlot() != slotNum) {
 					// invalid
 					delete in;
@@ -362,7 +362,7 @@ SaveStateDescriptor DrasculaMetaEngine::querySaveMetaInfos(const char *target, i
 	desc.setWriteProtectedFlag(slot == 0);
 
 	if (in) {
-		desc = Drascula::loadMetaData(in, slot);
+		desc = Drascula::loadMetaData(in, slot, false);
 		if (desc.getSaveSlot() != slot) {
 			delete in;
 			return SaveStateDescriptor();
diff --git a/engines/drascula/saveload.cpp b/engines/drascula/saveload.cpp
index 46eee1f..ba4148f 100644
--- a/engines/drascula/saveload.cpp
+++ b/engines/drascula/saveload.cpp
@@ -103,7 +103,7 @@ void DrasculaEngine::checkForOldSaveGames() {
 	_saveFileMan->removeSavefile(indexFileName);
 }
 
-SaveStateDescriptor loadMetaData(Common::ReadStream *s, int slot) {
+SaveStateDescriptor loadMetaData(Common::ReadStream *s, int slot, bool setPlayTime) {
 	uint32 sig = s->readUint32BE();
 	byte version = s->readByte();
 
@@ -134,6 +134,8 @@ SaveStateDescriptor loadMetaData(Common::ReadStream *s, int slot) {
 
 	uint32 playTime = s->readUint32LE();
 	desc.setPlayTime(playTime * 1000);
+	if (setPlayTime)
+		g_engine->setTotalPlayTime(playTime * 1000);
 
 	return desc;
 }
@@ -198,7 +200,7 @@ void DrasculaEngine::loadSaveNames() {
 	for (int n = 0; n < NUM_SAVES; n++) {
 		saveFileName = Common::String::format("%s.%03d", _targetName.c_str(), n + 1);
 		if ((in = _saveFileMan->openForLoading(saveFileName))) {
-			SaveStateDescriptor desc = loadMetaData(in, n + 1);
+			SaveStateDescriptor desc = loadMetaData(in, n + 1, false);
 			_saveNames[n] = desc.getDescription();
 			delete in;
 		}
@@ -256,10 +258,8 @@ bool DrasculaEngine::loadGame(int slot) {
 		error("missing savegame file %s", saveFileName.c_str());
 	}
 
-	loadMetaData(in, slot);
-	int t = in->pos();
+	loadMetaData(in, slot, true);
 	Graphics::skipThumbnail(*in);
-	t = in->pos();
 
 	savedChapter = in->readSint32LE();
 	if (savedChapter != currentChapter) {






More information about the Scummvm-git-logs mailing list