aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/archive.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2007-02-25 21:04:51 +0000
committerNicola Mettifogo2007-02-25 21:04:51 +0000
commit420a7c5f752af9add4a3d671bf68ea1d5c1bcff4 (patch)
tree037fa11bef41a12cfad511e6e2bc26e335c88a91 /engines/parallaction/archive.cpp
parentcacff9a9f26eff5111b1f5eef3491ac406f1245d (diff)
downloadscummvm-rg350-420a7c5f752af9add4a3d671bf68ea1d5c1bcff4.tar.gz
scummvm-rg350-420a7c5f752af9add4a3d671bf68ea1d5c1bcff4.tar.bz2
scummvm-rg350-420a7c5f752af9add4a3d671bf68ea1d5c1bcff4.zip
made Archive behave more like Common::File, preparing for inheritance
svn-id: r25867
Diffstat (limited to 'engines/parallaction/archive.cpp')
-rw-r--r--engines/parallaction/archive.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/engines/parallaction/archive.cpp b/engines/parallaction/archive.cpp
index 5fb69cb852..9d3aced9eb 100644
--- a/engines/parallaction/archive.cpp
+++ b/engines/parallaction/archive.cpp
@@ -27,6 +27,9 @@
namespace Parallaction {
+Archive::Archive() {
+ resetArchivedFile();
+}
void Archive::open(const char *file) {
debugC(1, kDebugDisk, "open archive '%s'", file);
@@ -67,11 +70,14 @@ void Archive::close() {
if (!_archive.isOpen()) return;
+ resetArchivedFile();
+
_archive.close();
}
bool Archive::openArchivedFile(const char *name) {
+ resetArchivedFile();
uint16 i = 0;
for ( ; i < MAX_ARCHIVE_ENTRIES; i++) {
@@ -93,26 +99,23 @@ bool Archive::openArchivedFile(const char *name) {
return true;
}
-
-void Archive::closeArchivedFile() {
+void Archive::resetArchivedFile() {
_file = false;
_fileIndex = 0;
_fileCursor = 0;
_fileOffset = 0;
_fileEndOffset = 0;
- return;
}
+void Archive::closeArchivedFile() {
+ resetArchivedFile();
+}
-uint16 Archive::getArchivedFileLength(const char *name) {
-// printf("getArchivedFileLength(%s)\n", name);
- for (uint16 i = 0; i < MAX_ARCHIVE_ENTRIES; i++) {
- if (!scumm_stricmp(_archiveDir[i], name))
- return _archiveLenghts[i];
- }
+uint16 Archive::getArchivedFileLength() {
+// printf("getArchivedFileLength(%s)\n", name);
- return 0;
+ return (_file == true ? _fileEndOffset - _fileOffset : 0);
}