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;
48 uint32 compressionType;
54 uint32 nextFreeResourceID;
61 index = original->index;
62 offset = original->offset;
63 size = original->size;
64 uncompSize = original->uncompSize;
65 compressionType = original->compressionType;
66 castId = original->castId;
67 libResourceId = original->libResourceId;
69 flags = original->flags;
70 unk1 = original->unk1;
71 nextFreeResourceID = original->nextFreeResourceID;
74 accessed = original->accessed;
88 error(
"Archive::writeToFile was called on a non-RIFX Archive, which is not allowed");
94 bool loadConfig(
Cast *cast);
98 void setPathName(
const Common::Path &name) { _pathName = name; }
99 virtual uint32 getFileSize();
101 bool isOpen()
const {
return _stream != 0; }
103 bool hasResource(uint32 tag,
int id)
const;
104 bool hasResource(uint32 tag,
const Common::String &resName)
const;
108 virtual Resource getResourceDetail(uint32 tag, uint16
id);
109 uint32 getOffset(uint32 tag, uint16
id)
const;
110 uint getResourceSize(uint32 tag, uint16
id)
const;
111 uint16 findResourceID(uint32 tag,
const Common::String &resName,
bool ignoreCase =
false)
const;
118 static uint32 convertTagToUppercase(uint32 tag);
122 void listUnaccessedChunks();
131 MovieChunkMap _movieChunks;
141 uint32 getFileSize()
override;
142 void close()
override;
179 Resource getResourceDetail(uint32 tag, uint16
id)
override;
191 uint32 getMmapSize();
192 uint32 getImapSize();
193 uint32 getCASResourceSize(uint32 castLib);
194 uint32 getKeyTableResourceSize();
202 static const uint32 kNoParent = 0xFFFFFFFF;
203 uint32 findParentIndex(uint32 tag, uint16 index);
209 uint32 _mmapHeaderSize;
210 uint32 _mmapEntrySize;
218 uint16 _keyTableEntrySize;
219 uint16 _keyTableEntrySize2;
220 uint32 _keyTableEntryCount;
221 uint32 _keyTableUsedCount;
225 uint32 _afterBurnerVersion;
230 uint32 _abmpCompressionType;
231 uint32 _abmpUncompLength;
232 uint32 _abmpActualUncompLength;
240 uint32 _ilsBodyOffset;
265 bool isLoaded() {
return _isLoaded; }
281 void dumpFile(
Common::String filename, uint32
id, uint32 tag, byte *dumpData, uint32 dumpSize);
Definition: archive.h:136
Definition: macresman.h:126
Definition: archive.h:256
Definition: archive.h:166
Definition: archive.h:141
Definition: archive.h:283
Path
Definition: game.h:76
Definition: algorithm.h:29
void NORETURN_PRE error(MSVC_PRINTF const char *s,...) GCC_PRINTF(1
Definition: archive.h:154
Definition: castmember.h:48
Definition: memstream.h:155