diff options
-rw-r--r-- | engines/sci/engine/kfile.cpp | 45 |
1 files changed, 13 insertions, 32 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp index 156d294ab4..f364e9d79f 100644 --- a/engines/sci/engine/kfile.cpp +++ b/engines/sci/engine/kfile.cpp @@ -566,7 +566,7 @@ reg_t kFileIOClose(EngineState *s, int argc, reg_t *argv) { if (handle >= kVirtualFileHandleStart) { // it's a virtual handle? ignore it - return getSciVersion() >= SCI_VERSION_2 ? TRUE_REG : SIGNAL_REG; + return TRUE_REG; } FileHandle *f = getFileFromHandle(s, handle); @@ -574,7 +574,7 @@ reg_t kFileIOClose(EngineState *s, int argc, reg_t *argv) { f->close(); if (getSciVersion() <= SCI_VERSION_0_LATE) return s->r_acc; // SCI0 semantics: no value returned - return getSciVersion() >= SCI_VERSION_2 ? TRUE_REG : SIGNAL_REG; + return TRUE_REG; } if (getSciVersion() <= SCI_VERSION_0_LATE) @@ -628,19 +628,10 @@ reg_t kFileIOWriteRaw(EngineState *s, int argc, reg_t *argv) { delete[] buf; -#ifdef ENABLE_SCI32 - if (getSciVersion() >= SCI_VERSION_2) { - if (!success) { - return SIGNAL_REG; - } - + if (success) { return make_reg(0, bytesWritten); } -#endif - - if (success) - return NULL_REG; - return make_reg(0, 6); // DOS - invalid handle + return getSciVersion() >= SCI_VERSION_2 ? SIGNAL_REG : NULL_REG; } reg_t kFileIOUnlink(EngineState *s, int argc, reg_t *argv) { @@ -694,15 +685,7 @@ reg_t kFileIOUnlink(EngineState *s, int argc, reg_t *argv) { debugC(kDebugLevelFile, "kFileIO(unlink): %s", name.c_str()); -#ifdef ENABLE_SCI32 - if (getSciVersion() >= SCI_VERSION_2) { - return make_reg(0, result); - } -#endif - - if (result) - return NULL_REG; - return make_reg(0, 2); // DOS - file not found error code + return make_reg(0, result); } reg_t kFileIOReadString(EngineState *s, int argc, reg_t *argv) { @@ -758,14 +741,10 @@ reg_t kFileIOWriteString(EngineState *s, int argc, reg_t *argv) { if (f && f->_out) { uint32 bytesWritten = f->_out->write(str.c_str(), str.size()); - if (getSciVersion() <= SCI_VERSION_0_LATE) - return s->r_acc; // SCI0 semantics: no value returned return make_reg(0, bytesWritten); } - if (getSciVersion() <= SCI_VERSION_0_LATE) - return s->r_acc; // SCI0 semantics: no value returned - return make_reg(0, 6); // DOS - invalid handle + return getSciVersion() >= SCI_VERSION_2 ? SIGNAL_REG : NULL_REG; } reg_t kFileIOSeek(EngineState *s, int argc, reg_t *argv) { @@ -943,9 +922,11 @@ reg_t kFileIOReadByte(EngineState *s, int argc, reg_t *argv) { reg_t kFileIOWriteByte(EngineState *s, int argc, reg_t *argv) { FileHandle *f = getFileFromHandle(s, argv[0].toUint16()); - if (f) + if (f) { f->_out->writeByte(argv[1].toUint16() & 0xff); - return s->r_acc; + return make_reg(0, 1); // bytesWritten + } + return SIGNAL_REG; } reg_t kFileIOReadWord(EngineState *s, int argc, reg_t *argv) { @@ -972,12 +953,12 @@ reg_t kFileIOWriteWord(EngineState *s, int argc, reg_t *argv) { const uint16 handle = argv[0].toUint16(); if (handle == kVirtualFileHandleSci32Save) { - return s->r_acc; + return make_reg(0, 2); // bytesWritten } FileHandle *f = getFileFromHandle(s, handle); if (!f) { - return s->r_acc; + return SIGNAL_REG; } if (f->_name == "-scummvm-save-") { @@ -990,7 +971,7 @@ reg_t kFileIOWriteWord(EngineState *s, int argc, reg_t *argv) { f->_out->writeUint16LE(argv[1].toUint16()); } - return s->r_acc; + return make_reg(0, 2); // bytesWritten } reg_t kFileIOGetCWD(EngineState *s, int argc, reg_t *argv) { |