aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorMax Horn2008-09-06 20:34:21 +0000
committerMax Horn2008-09-06 20:34:21 +0000
commit088a1c0806d808ed12b88efd51a35768b700e8d8 (patch)
tree903182bb136f12c899f8c103f88185f3c3402b36 /engines/scumm
parentf8bcb0782b5be91966aac37fbf29e1eba235abe3 (diff)
downloadscummvm-rg350-088a1c0806d808ed12b88efd51a35768b700e8d8.tar.gz
scummvm-rg350-088a1c0806d808ed12b88efd51a35768b700e8d8.tar.bz2
scummvm-rg350-088a1c0806d808ed12b88efd51a35768b700e8d8.zip
ScummFile: Don't use the File::_ioFailed flag, rather track the io status separately; also, changed eof() -> eos()
svn-id: r34389
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/file.cpp6
-rw-r--r--engines/scumm/file.h10
-rw-r--r--engines/scumm/resource.cpp2
-rw-r--r--engines/scumm/resource_v4.cpp2
4 files changed, 12 insertions, 8 deletions
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();