diff options
author | Eugene Sandulenko | 2013-06-21 21:30:38 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:48:15 +0300 |
commit | 29f323fd27d67aede4668e07984eabd69180aee5 (patch) | |
tree | ed3e84d02ab1efe4081a2f6a5505008d6b873d17 /engines/fullpipe/ngiarchive.h | |
parent | 47faa885015f619b730d8716c8527ae5819cb35f (diff) | |
download | scummvm-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.h | 27 |
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. |