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/file.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/file.cpp')
-rw-r--r-- | engines/scumm/file.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/engines/scumm/file.cpp b/engines/scumm/file.cpp index 3f101691c7..6dc31b09ef 100644 --- a/engines/scumm/file.cpp +++ b/engines/scumm/file.cpp @@ -126,7 +126,7 @@ bool ScummFile::openSubFile(const Common::String &filename) { bool ScummFile::eos() const { - return _subFileLen ? (pos() >= _subFileLen) : File::eos(); // FIXME + return _subFileLen ? _myEos : File::eos(); } int32 ScummFile::pos() const { @@ -154,7 +154,10 @@ bool ScummFile::seek(int32 offs, int whence) { assert((int32)_subFileStart <= offs && offs <= (int32)(_subFileStart + _subFileLen)); whence = SEEK_SET; } - return File::seek(offs, whence); + bool ret = File::seek(offs, whence); + if (ret) + _myEos = false; + return ret; } uint32 ScummFile::read(void *dataPtr, uint32 dataSize) { @@ -167,7 +170,7 @@ uint32 ScummFile::read(void *dataPtr, uint32 dataSize) { int32 newPos = curPos + dataSize; if (newPos > _subFileLen) { dataSize = _subFileLen - curPos; - _myIoFailed = true; + _myEos = true; } } |