22 #ifndef DIRECTOR_ARCHIVE_H 23 #define DIRECTOR_ARCHIVE_H 25 #include "common/hash-str.h" 26 #include "common/file.h" 30 class SeekableMemoryWriteStream;
31 class SeekableReadStreamEndian;
32 class SeekableReadStream;
45 uint32 compressionType;
51 uint32 nextFreeResourceID;
58 index = original->index;
59 offset = original->offset;
60 size = original->size;
61 uncompSize = original->uncompSize;
62 compressionType = original->compressionType;
63 castId = original->castId;
64 libResourceId = original->libResourceId;
66 flags = original->flags;
67 unk1 = original->unk1;
68 nextFreeResourceID = original->nextFreeResourceID;
71 accessed = original->accessed;
85 error(
"Archive::writeToFile was called on a non-RIFX Archive, which is not allowed");
91 bool loadConfig(
Cast *cast);
95 void setPathName(
const Common::Path &name) { _pathName = name; }
96 virtual uint32 getFileSize();
98 bool isOpen()
const {
return _stream != 0; }
100 bool hasResource(uint32 tag,
int id)
const;
101 bool hasResource(uint32 tag,
const Common::String &resName)
const;
105 virtual Resource getResourceDetail(uint32 tag, uint16
id);
106 uint32 getOffset(uint32 tag, uint16
id)
const;
107 uint getResourceSize(uint32 tag, uint16
id)
const;
108 uint16 findResourceID(uint32 tag,
const Common::String &resName,
bool ignoreCase =
false)
const;
115 static uint32 convertTagToUppercase(uint32 tag);
119 void listUnaccessedChunks();
128 MovieChunkMap _movieChunks;
138 uint32 getFileSize()
override;
139 void close()
override;
176 Resource getResourceDetail(uint32 tag, uint16
id)
override;
188 uint32 getMmapSize();
189 uint32 getImapSize();
190 uint32 getCASResourceSize(uint32 castLib);
191 uint32 getKeyTableResourceSize();
199 uint32 findParentIndex(uint32 tag, uint16 index);
204 uint32 _mmapHeaderSize;
205 uint32 _mmapEntrySize;
213 uint16 _keyTableEntrySize;
214 uint16 _keyTableEntrySize2;
215 uint32 _keyTableEntryCount;
216 uint32 _keyTableUsedCount;
220 uint32 _afterBurnerVersion;
224 uint32 _abmpCompressionType;
225 uint32 _abmpUncompLength;
226 uint32 _abmpActualUncompLength;
234 uint32 _ilsBodyOffset;
259 bool isLoaded() {
return _isLoaded; }
275 void dumpFile(
Common::String filename, uint32
id, uint32 tag, byte *dumpData, uint32 dumpSize);
Definition: archive.h:133
Definition: macresman.h:126
Definition: archive.h:250
Definition: archive.h:163
Definition: archive.h:141
Definition: archive.h:277
Path
Definition: game.h:75
Definition: algorithm.h:29
void NORETURN_PRE error(MSVC_PRINTF const char *s,...) GCC_PRINTF(1
Definition: archive.h:151
Definition: memstream.h:155