aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/parallaction/archive.cpp13
-rw-r--r--engines/parallaction/disk.h5
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);
};