aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/ngiarchive.h
diff options
context:
space:
mode:
authorEugene Sandulenko2013-06-21 21:30:38 -0400
committerEugene Sandulenko2013-09-06 14:48:15 +0300
commit29f323fd27d67aede4668e07984eabd69180aee5 (patch)
treeed3e84d02ab1efe4081a2f6a5505008d6b873d17 /engines/fullpipe/ngiarchive.h
parent47faa885015f619b730d8716c8527ae5819cb35f (diff)
downloadscummvm-rg350-29f323fd27d67aede4668e07984eabd69180aee5.tar.gz
scummvm-rg350-29f323fd27d67aede4668e07984eabd69180aee5.tar.bz2
scummvm-rg350-29f323fd27d67aede4668e07984eabd69180aee5.zip
FULLPIPE: Completed Background loading
Diffstat (limited to 'engines/fullpipe/ngiarchive.h')
-rw-r--r--engines/fullpipe/ngiarchive.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/engines/fullpipe/ngiarchive.h b/engines/fullpipe/ngiarchive.h
index ee977c6140..a5b05a2e50 100644
--- a/engines/fullpipe/ngiarchive.h
+++ b/engines/fullpipe/ngiarchive.h
@@ -29,6 +29,33 @@ namespace Fullpipe {
class Archive;
+#define NGI_FILENAME_MAX 13
+
+struct NgiHeader {
+ int32 pos;
+ int32 extVal;
+ int32 flags;
+ int32 size;
+ char filename[NGI_FILENAME_MAX];
+};
+
+typedef Common::HashMap<Common::String, NgiHeader*, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> NgiHeadersMap;
+
+class NGIArchive : public Common::Archive {
+ NgiHeadersMap _headers;
+ Common::String _ngiFilename;
+
+public:
+ NGIArchive(const Common::String &name);
+ virtual ~NGIArchive();
+
+ // Archive implementation
+ virtual bool hasFile(const Common::String &name) const;
+ virtual int listMembers(Common::ArchiveMemberList &list) const;
+ virtual const Common::ArchiveMemberPtr getMember(const Common::String &name) const;
+ virtual Common::SeekableReadStream *createReadStreamForMember(const Common::String &name) const;
+};
+
/**
* This factory method creates an Archive instance corresponding to the content
* of the NGI compressed file with the given name.