22 #ifndef MACS2_AMIGA_ARCHIVE_H 23 #define MACS2_AMIGA_ARCHIVE_H 25 #include "common/archive.h" 26 #include "common/array.h" 27 #include "common/file.h" 28 #include "common/hashmap.h" 29 #include "common/mutex.h" 30 #include "common/ptr.h" 31 #include "common/str.h" 32 #include "common/stream.h" 40 enum AmigaResourceType : uint16 {
49 AmigaResourceType type = kAmigaResUnknown;
56 uint16 cursorResourceIds[8] = {0};
57 uint16 useInventoryCursorId = 0;
58 uint16 sceneCount = 0;
59 uint16 volumeCount = 0;
62 uint16 uiPaletteAmiga[16] = {0};
67 uint16 panelBorderColorIndices[5] = {0};
72 uint16 panelDarkenColorIndices[8] = {0};
80 uint8 prefMenuMode = 2;
81 bool usePanelPatternFill =
true;
86 uint16 startSceneResourceId = 0;
111 bool isOpen()
const {
return !_entries.empty(); }
113 uint16 getSceneCount()
const {
return _sceneCount; }
114 uint16 getResourceCount()
const {
return _totalResources; }
123 bool hasResource(AmigaResourceType type, uint16
id)
const;
131 static Common::String makeResourceName(AmigaResourceType type, uint16
id);
132 static bool parseResourceName(
const Common::String &name, AmigaResourceType &type, uint16 &
id);
133 static AmigaResourceType typeFromTag(uint16 tag);
134 static const char *typeToString(AmigaResourceType type);
140 static bool decodePlanarSprite(
const byte *mxoo, uint32 mxooSize, uint16 &width, uint16 &height,
Common::Array<byte> &pixels);
151 uint32 payloadSize = 0;
157 bool openVolume(uint16 disk);
161 bool loadPrefMenuMode();
163 static byte *decompressPP20(
const byte *src, uint32 srcLen, uint32 &outLen);
164 static byte *decompressPayload(
const byte *payload, uint32 payloadLen, uint32 &outLen);
170 uint16 _sceneCount = 0;
171 uint16 _totalResources = 0;
172 uint32 _firstBlockSize = 0;
173 uint32 _firstBlockOffset = 14;
179 #endif // MACS2_AMIGA_ARCHIVE_H
Definition: amiga_archive.h:100
Definition: archive.h:141
Definition: amiga_archive.h:48
Definition: amiga_archive.h:55
Definition: actionbar.h:31