aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/resource.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/resource.h')
-rw-r--r--engines/saga/resource.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/engines/saga/resource.h b/engines/saga/resource.h
index f5fece0150..943bbd95ef 100644
--- a/engines/saga/resource.h
+++ b/engines/saga/resource.h
@@ -57,8 +57,12 @@ struct PatchData {
};
struct ResourceData {
+ uint32 id; // SAGA2
size_t offset;
size_t size;
+
+ bool isExternal() { return ((offset & (1L<<31)) != 0L); } // SAGA2
+
PatchData *patchData;
void fillSoundPatch(const GameSoundInfo *&soundInfo) {
if (patchData != NULL) {
@@ -75,11 +79,13 @@ struct ResourceContext {
const char *fileName;
uint16 fileType;
Common::File *file;
- int serial;
+ int serial; // IHNM speech files
bool isBigEndian;
ResourceData *table;
size_t count;
+ uint32 firstGroupOffset; // SAGA2
+ ResourceData *groups; // SAGA2
Common::File *getFile(ResourceData *resourceData) const {
if (resourceData->patchData != NULL) {
@@ -189,7 +195,7 @@ public:
private:
virtual bool loadMacContext(ResourceContext *context) { return false; }
virtual bool loadResContext(ResourceContext *context, uint32 contextOffset, uint32 contextSize) {
- return loadResContext_v1(context, contextOffset, contextSize);
+ return loadResContext_v1(context, 0, contextSize);
}
MetaResource _metaResource;
};
@@ -207,9 +213,9 @@ public:
private:
virtual bool loadMacContext(ResourceContext *context) { return false; }
virtual bool loadResContext(ResourceContext *context, uint32 contextOffset, uint32 contextSize) {
- return loadResContext_v2(context, contextOffset, contextSize);
+ return loadResContext_v2(context, contextSize);
}
- bool loadResContext_v2(ResourceContext *context, uint32 contextOffset, uint32 contextSize);
+ bool loadResContext_v2(ResourceContext *context, uint32 contextSize);
};
} // End of namespace Saga