diff options
-rw-r--r-- | engines/parallaction/archive.cpp | 13 | ||||
-rw-r--r-- | engines/parallaction/disk.h | 5 |
2 files changed, 11 insertions, 7 deletions
diff --git a/engines/parallaction/archive.cpp b/engines/parallaction/archive.cpp index c8f5f4903f..a2a6aeaf32 100644 --- a/engines/parallaction/archive.cpp +++ b/engines/parallaction/archive.cpp @@ -114,6 +114,14 @@ uint32 Archive::size() const { return (_file == true ? _fileEndOffset - _fileOffset : 0); } +uint32 Archive::pos() const { + return (_file == true ? _fileCursor - _fileOffset : 0 ); +} + +bool Archive::eos() const { + return (_file == true ? _fileCursor == _fileEndOffset : true ); +} + void Archive::seek(int32 offs, int whence) { assert(_file == true && _fileCursor <= _fileEndOffset); @@ -151,10 +159,5 @@ uint32 Archive::read(void *dataPtr, uint32 dataSize) { } -uint32 Archive::write(const void *dataPtr, uint32 dataSize) { - error("Archive files don't support writing"); -} - - } // namespace Parallaction diff --git a/engines/parallaction/disk.h b/engines/parallaction/disk.h index aee57cb487..8bc66a5ebc 100644 --- a/engines/parallaction/disk.h +++ b/engines/parallaction/disk.h @@ -37,7 +37,7 @@ namespace Parallaction { #define DIRECTORY_OFFSET_IN_FILE 0x4000 -class Archive : public Common::File { +class Archive : public Common::SeekableReadStream { protected: @@ -65,10 +65,11 @@ public: void closeArchivedFile(); uint32 size() const; + uint32 pos() const; + bool eos() const; void seek(int32 offs, int whence = SEEK_SET); uint32 read(void *dataPtr, uint32 dataSize); - uint32 write(const void *dataPtr, uint32 dataSize); }; |