[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