From 088a1c0806d808ed12b88efd51a35768b700e8d8 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 6 Sep 2008 20:34:21 +0000 Subject: ScummFile: Don't use the File::_ioFailed flag, rather track the io status separately; also, changed eof() -> eos() svn-id: r34389 --- engines/scumm/file.cpp | 6 +++--- engines/scumm/file.h | 10 +++++++--- engines/scumm/resource.cpp | 2 +- engines/scumm/resource_v4.cpp | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) (limited to 'engines/scumm') diff --git a/engines/scumm/file.cpp b/engines/scumm/file.cpp index bf13308a0c..075b44d24d 100644 --- a/engines/scumm/file.cpp +++ b/engines/scumm/file.cpp @@ -125,8 +125,8 @@ bool ScummFile::openSubFile(const Common::String &filename) { } -bool ScummFile::eof() { - return _subFileLen ? (pos() >= _subFileLen) : File::eof(); +bool ScummFile::eos() { + return _subFileLen ? (pos() >= _subFileLen) : File::eos(); } uint32 ScummFile::pos() { @@ -167,7 +167,7 @@ uint32 ScummFile::read(void *dataPtr, uint32 dataSize) { uint32 newPos = curPos + dataSize; if (newPos > _subFileLen) { dataSize = _subFileLen - curPos; - _ioFailed = true; + _myIoFailed = true; } } diff --git a/engines/scumm/file.h b/engines/scumm/file.h index a2695cac59..3a044935a1 100644 --- a/engines/scumm/file.h +++ b/engines/scumm/file.h @@ -39,7 +39,7 @@ public: virtual bool open(const Common::String &filename) = 0; virtual bool openSubFile(const Common::String &filename) = 0; - virtual bool eof() = 0; + virtual bool eos() = 0; virtual uint32 pos() = 0; virtual uint32 size() = 0; virtual void seek(int32 offs, int whence = SEEK_SET) = 0; @@ -51,6 +51,7 @@ private: byte _encbyte; uint32 _subFileStart; uint32 _subFileLen; + bool _myIoFailed; public: ScummFile(); void setEnc(byte value); @@ -61,7 +62,10 @@ public: bool open(const Common::String &filename); bool openSubFile(const Common::String &filename); - bool eof(); + bool ioFailed() const { return _myIoFailed || BaseScummFile::ioFailed(); } + void clearIOFailed() { _myIoFailed = false; BaseScummFile::clearIOFailed(); } + + bool eos(); uint32 pos(); uint32 size(); void seek(int32 offs, int whence = SEEK_SET); @@ -106,7 +110,7 @@ public: bool openSubFile(const Common::String &filename); void close(); - bool eof() { return _stream->eos(); } + bool eos() { return _stream->eos(); } uint32 pos() { return _stream->pos(); } uint32 size() { return _stream->size(); } void seek(int32 offs, int whence = SEEK_SET) { _stream->seek(offs, whence); } diff --git a/engines/scumm/resource.cpp b/engines/scumm/resource.cpp index 36621440eb..5160dd09e9 100644 --- a/engines/scumm/resource.cpp +++ b/engines/scumm/resource.cpp @@ -253,7 +253,7 @@ void ScummEngine::readIndexFile() { if (_game.version <= 5) { // Figure out the sizes of various resources - while (!_fileHandle->eof()) { + while (!_fileHandle->eos()) { blocktype = _fileHandle->readUint32BE(); itemsize = _fileHandle->readUint32BE(); if (_fileHandle->ioFailed()) diff --git a/engines/scumm/resource_v4.cpp b/engines/scumm/resource_v4.cpp index 0ced00e254..29d7c5d25d 100644 --- a/engines/scumm/resource_v4.cpp +++ b/engines/scumm/resource_v4.cpp @@ -62,7 +62,7 @@ void ScummEngine_v4::readIndexFile() { closeRoom(); openRoom(0); - while (!_fileHandle->eof()) { + while (!_fileHandle->eos()) { // Figure out the sizes of various resources itemsize = _fileHandle->readUint32LE(); blocktype = _fileHandle->readUint16LE(); -- cgit v1.2.3