aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/parallaction/archive.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/parallaction/archive.cpp b/engines/parallaction/archive.cpp
index 57556add9a..eb26756695 100644
--- a/engines/parallaction/archive.cpp
+++ b/engines/parallaction/archive.cpp
@@ -31,7 +31,14 @@ namespace Parallaction {
#define DIRECTORY_OFFSET_IN_FILE 0x4000
-static Common::File _archive;
+#ifdef PALMOS_ARM
+ static Common::File *_archiveP = NULL;
+ #define _archive (*_archiveP)
+#else
+ static Common::File _archive;
+#endif
+
+
static char _archiveDir[MAX_ARCHIVE_ENTRIES][32];
static uint32 _archiveLenghts[MAX_ARCHIVE_ENTRIES];
static uint32 _archiveOffsets[MAX_ARCHIVE_ENTRIES];
@@ -42,6 +49,11 @@ static uint32 _handle = MAX_ARCHIVE_ENTRIES;
void openArchive(const char *file) {
debugC(1, kDebugDisk, "open archive '%s'", file);
+#ifdef PALMOS_ARM
+ if (!_archiveP)
+ _archiveP = new Common::File();
+#endif
+
if (_archive.isOpen())
closeArchive();