aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/saveload_v6.cpp
diff options
context:
space:
mode:
authorSven Hesse2008-12-17 13:07:56 +0000
committerSven Hesse2008-12-17 13:07:56 +0000
commitd0e2107b7e07587f732ae1f882b8ddae8c5ef5bd (patch)
treef0d6333ed40ff3be9c7906a49532d441615e55eb /engines/gob/saveload_v6.cpp
parent774773b7cd02e3c6932095af4905a25eb1862392 (diff)
downloadscummvm-rg350-d0e2107b7e07587f732ae1f882b8ddae8c5ef5bd.tar.gz
scummvm-rg350-d0e2107b7e07587f732ae1f882b8ddae8c5ef5bd.tar.bz2
scummvm-rg350-d0e2107b7e07587f732ae1f882b8ddae8c5ef5bd.zip
Only do the no-cd-workaround if all resource files can be found
svn-id: r35409
Diffstat (limited to 'engines/gob/saveload_v6.cpp')
-rw-r--r--engines/gob/saveload_v6.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/engines/gob/saveload_v6.cpp b/engines/gob/saveload_v6.cpp
index 9e49a3ea63..cc233a36ba 100644
--- a/engines/gob/saveload_v6.cpp
+++ b/engines/gob/saveload_v6.cpp
@@ -27,12 +27,13 @@
#include "gob/gob.h"
#include "gob/saveload.h"
+#include "gob/game.h"
namespace Gob {
SaveLoad_v6::SaveFile SaveLoad_v6::_saveFiles[] = {
{"mdo.def", 0, kSaveModeExists, kSaveNone},
- {"NO_CD.TXT", 0, kSaveModeExists, kSaveNone}
+ {"NO_CD.TXT", 0, kSaveModeExists, kSaveNoCD}
};
SaveLoad_v6::SaveLoad_v6(GobEngine *vm, const char *targetName) :
@@ -45,11 +46,21 @@ SaveLoad_v6::~SaveLoad_v6() {
SaveLoad::SaveMode SaveLoad_v6::getSaveMode(const char *fileName) {
fileName = stripPath(fileName);
- for (int i = 0; i < ARRAYSIZE(_saveFiles); i++)
+ int i;
+ for (i = 0; i < ARRAYSIZE(_saveFiles); i++)
if (!scumm_stricmp(fileName, _saveFiles[i].sourceName))
- return _saveFiles[i].mode;
+ break;
- return kSaveModeNone;
+ if (i >= ARRAYSIZE(_saveFiles))
+ return kSaveModeNone;
+
+ if (_saveFiles[i].type != kSaveNoCD)
+ return _saveFiles[i].mode;
+
+ if (_vm->_game->_noCd)
+ return kSaveModeExists;
+ else
+ return kSaveModeNone;
}
} // End of namespace Gob