aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/file.cpp
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2009-07-20 20:55:28 +0000
committerWillem Jan Palenstijn2009-07-20 20:55:28 +0000
commitf9208f1bb0e083a4e7ebc30051599cdbfbcf9d26 (patch)
tree459333eb2d5a132a7b921214f9c21c0f803752f9 /engines/scumm/file.cpp
parentb40dc424b3ec2121b6cc62f3648d014f25583256 (diff)
downloadscummvm-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.cpp9
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;
}
}