diff options
author | Willem Jan Palenstijn | 2009-07-20 20:55:28 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2009-07-20 20:55:28 +0000 |
commit | f9208f1bb0e083a4e7ebc30051599cdbfbcf9d26 (patch) | |
tree | 459333eb2d5a132a7b921214f9c21c0f803752f9 /engines/scumm/resource.cpp | |
parent | b40dc424b3ec2121b6cc62f3648d014f25583256 (diff) | |
download | scummvm-rg350-f9208f1bb0e083a4e7ebc30051599cdbfbcf9d26.tar.gz scummvm-rg350-f9208f1bb0e083a4e7ebc30051599cdbfbcf9d26.tar.bz2 scummvm-rg350-f9208f1bb0e083a4e7ebc30051599cdbfbcf9d26.zip |
Make ScummFile::eos() consistent with Stream::eos().
Remove usage of ioFailed from SCUMM engine.
Fix reading up to the end of a SCUMM SubFile.
This hopefully fixes #2820957.
svn-id: r42632
Diffstat (limited to 'engines/scumm/resource.cpp')
-rw-r--r-- | engines/scumm/resource.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/engines/scumm/resource.cpp b/engines/scumm/resource.cpp index 88802a205f..d7ee0a74aa 100644 --- a/engines/scumm/resource.cpp +++ b/engines/scumm/resource.cpp @@ -253,10 +253,10 @@ void ScummEngine::readIndexFile() { if (_game.version <= 5) { // Figure out the sizes of various resources - while (!_fileHandle->eos()) { + while (true) { blocktype = _fileHandle->readUint32BE(); itemsize = _fileHandle->readUint32BE(); - if (_fileHandle->ioFailed()) + if (_fileHandle->eos() || _fileHandle->err()) break; switch (blocktype) { case MKID_BE('DOBJ'): @@ -285,7 +285,6 @@ void ScummEngine::readIndexFile() { } _fileHandle->seek(itemsize - 8, SEEK_CUR); } - _fileHandle->clearIOFailed(); _fileHandle->seek(0, SEEK_SET); } @@ -300,7 +299,7 @@ void ScummEngine::readIndexFile() { blocktype = _fileHandle->readUint32BE(); itemsize = _fileHandle->readUint32BE(); - if (_fileHandle->ioFailed()) + if (_fileHandle->eos() || _fileHandle->err()) break; numblock++; @@ -689,7 +688,7 @@ int ScummEngine::loadResource(int type, int idx) { dumpResource("script-", idx, getResourceAddress(rtScript, idx)); } - if (!_fileHandle->ioFailed()) { + if (!_fileHandle->err() && !_fileHandle->eos()) { return 1; } |