diff options
author | Torbjörn Andersson | 2005-11-05 14:24:13 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2005-11-05 14:24:13 +0000 |
commit | ffbbafed15b1625a94eb09680873ae8f7a636989 (patch) | |
tree | 84bd808e4316fc026dfdb6387a7712ba2f119873 | |
parent | b8aaa2ed04d00e7937111735aaa845864f6aee98 (diff) | |
download | scummvm-rg350-ffbbafed15b1625a94eb09680873ae8f7a636989.tar.gz scummvm-rg350-ffbbafed15b1625a94eb09680873ae8f7a636989.tar.bz2 scummvm-rg350-ffbbafed15b1625a94eb09680873ae8f7a636989.zip |
Call flush() in the savegame stream, when saving. I think SAGA, Simon and
BS2 were the last engines that didn't. But I could be mistaken.
svn-id: r19463
-rw-r--r-- | saga/saveload.cpp | 4 | ||||
-rw-r--r-- | simon/saveload.cpp | 8 | ||||
-rw-r--r-- | sword2/save_rest.cpp | 10 |
3 files changed, 15 insertions, 7 deletions
diff --git a/saga/saveload.cpp b/saga/saveload.cpp index 4ded01925a..7e68bb4eef 100644 --- a/saga/saveload.cpp +++ b/saga/saveload.cpp @@ -202,6 +202,10 @@ void SagaEngine::save(const char *fileName, const char *saveName) { out->writeSint16LE(_isoMap->getMapPosition().x); out->writeSint16LE(_isoMap->getMapPosition().y); + out->flush(); + + // TODO: Check out->ioFailed() + delete out; } diff --git a/simon/saveload.cpp b/simon/saveload.cpp index 75f7c7b5bb..cee09f15a9 100644 --- a/simon/saveload.cpp +++ b/simon/saveload.cpp @@ -459,7 +459,7 @@ bool SimonEngine::save_game(uint slot, char *caption) { } } - Child9 *child9 = (Child9 *) findChildOfType(item, 9); + Child9 *child9 = (Child9 *)findChildOfType(item, 9); if (child9) { for (i = 0; i != 4; i++) { f->writeUint16BE(child9->array[i]); @@ -487,11 +487,13 @@ bool SimonEngine::save_game(uint slot, char *caption) { f->writeUint16BE(_bitArray[i]); } - delete f; + f->flush(); + bool result = !f->ioFailed(); + delete f; _lockWord &= ~0x100; - return true; + return result; } char *SimonEngine::gen_savename(int slot) { diff --git a/sword2/save_rest.cpp b/sword2/save_rest.cpp index cf948b7c14..06e8eb24de 100644 --- a/sword2/save_rest.cpp +++ b/sword2/save_rest.cpp @@ -125,13 +125,15 @@ uint32 Sword2Engine::saveData(uint16 slotNo, byte *buffer, uint32 bufferSize) { return SR_ERR_FILEOPEN; } - uint32 itemsWritten = out->write(buffer, bufferSize); + out->write(buffer, bufferSize); + out->flush(); - delete out; - - if (itemsWritten == bufferSize) + if (!out->ioFailed()) { + delete out; return SR_OK; + } + delete out; return SR_ERR_WRITEFAIL; } |