aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/resource_intern.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/resource_intern.h')
-rw-r--r--engines/sci/resource_intern.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/engines/sci/resource_intern.h b/engines/sci/resource_intern.h
index 73986444a4..14f872b46e 100644
--- a/engines/sci/resource_intern.h
+++ b/engines/sci/resource_intern.h
@@ -43,7 +43,8 @@ enum ResSourceType {
kSourceAudioVolume,
kSourceExtAudioMap,
kSourceWave,
- kSourceMacResourceFork
+ kSourceMacResourceFork,
+ kSourceChunk
};
@@ -188,6 +189,31 @@ public:
virtual void loadResource(ResourceManager *resMan, Resource *res);
};
+#ifdef ENABLE_SCI32
+
+/**
+ * Reads resources from SCI2.1+ chunk resources
+ */
+class ChunkResourceSource : public ResourceSource {
+public:
+ ChunkResourceSource(const Common::String &name, uint16 number);
+
+ virtual void scanSource(ResourceManager *resMan);
+ virtual void loadResource(ResourceManager *resMan, Resource *res);
+
+protected:
+ uint16 _number;
+
+ struct ResourceEntry {
+ uint32 offset;
+ uint32 length;
+ };
+
+ Common::HashMap<ResourceId, ResourceEntry, ResourceIdHash> _resMap;
+};
+
+#endif
+
} // End of namespace Sci
#endif // SCI_RESOURCE_INTERN_H