diff options
Diffstat (limited to 'engines/gob/inter_v2.cpp')
-rw-r--r-- | engines/gob/inter_v2.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp index 36f33e6553..6f261e9822 100644 --- a/engines/gob/inter_v2.cpp +++ b/engines/gob/inter_v2.cpp @@ -1911,7 +1911,7 @@ bool Inter_v2::o2_checkData(OpFuncParams ¶ms) { int16 handle; int16 varOff; int32 size; - SaveType type; + SaveLoad::SaveMode mode; evalExpr(0); varOff = _vm->_parse->parseVarIndex(); @@ -1919,8 +1919,8 @@ bool Inter_v2::o2_checkData(OpFuncParams ¶ms) { size = -1; handle = 1; - type = _vm->_saveLoad->getSaveType(_vm->_global->_inter_resStr); - if (type == kSaveNone) { + mode = _vm->_saveLoad->getSaveMode(_vm->_global->_inter_resStr); + if (mode == SaveLoad::kSaveModeNone) { handle = _vm->_dataIO->openData(_vm->_global->_inter_resStr); if (handle >= 0) { @@ -1928,8 +1928,8 @@ bool Inter_v2::o2_checkData(OpFuncParams ¶ms) { size = _vm->_dataIO->getDataSize(_vm->_global->_inter_resStr); } else warning("File \"%s\" not found", _vm->_global->_inter_resStr); - } else - size = _vm->_saveLoad->getSize(type); + } else if (mode == SaveLoad::kSaveModeSave) + size = _vm->_saveLoad->getSize(_vm->_global->_inter_resStr); if (size == -1) handle = -1; @@ -1950,7 +1950,7 @@ bool Inter_v2::o2_readData(OpFuncParams ¶ms) { int16 dataVar; int16 handle; byte *buf; - SaveType type; + SaveLoad::SaveMode mode; evalExpr(0); dataVar = _vm->_parse->parseVarIndex(); @@ -1962,13 +1962,14 @@ bool Inter_v2::o2_readData(OpFuncParams ¶ms) { debugC(2, kDebugFileIO, "Read from file \"%s\" (%d, %d bytes at %d)", _vm->_global->_inter_resStr, dataVar, size, offset); - type = _vm->_saveLoad->getSaveType(_vm->_global->_inter_resStr); - if (type != kSaveNone) { + mode = _vm->_saveLoad->getSaveMode(_vm->_global->_inter_resStr); + if (mode == SaveLoad::kSaveModeSave) { WRITE_VAR(1, 1); - if (_vm->_saveLoad->load(type, dataVar, size, offset)) + if (_vm->_saveLoad->load(_vm->_global->_inter_resStr, dataVar, size, offset)) WRITE_VAR(1, 0); return false; - } + } else if (mode == SaveLoad::kSaveModeIgnore) + return false; if (size < 0) { warning("Attempted to read a raw sprite from file \"%s\"", @@ -2021,7 +2022,7 @@ bool Inter_v2::o2_writeData(OpFuncParams ¶ms) { int32 offset; int32 size; int16 dataVar; - SaveType type; + SaveLoad::SaveMode mode; evalExpr(0); dataVar = _vm->_parse->parseVarIndex(); @@ -2034,11 +2035,11 @@ bool Inter_v2::o2_writeData(OpFuncParams ¶ms) { WRITE_VAR(1, 1); - type = _vm->_saveLoad->getSaveType(_vm->_global->_inter_resStr); - if (type != kSaveNone) { - if (_vm->_saveLoad->save(type, dataVar, size, offset)) + mode = _vm->_saveLoad->getSaveMode(_vm->_global->_inter_resStr); + if (mode == SaveLoad::kSaveModeSave) { + if (_vm->_saveLoad->save(_vm->_global->_inter_resStr, dataVar, size, offset)) WRITE_VAR(1, 0); - } else + } else if (mode == SaveLoad::kSaveModeNone) warning("Attempted to write to file \"%s\"", _vm->_global->_inter_resStr); return false; |