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.h52
1 files changed, 24 insertions, 28 deletions
diff --git a/engines/saga/resource.h b/engines/saga/resource.h
index 5009c862f4..048ed3933d 100644
--- a/engines/saga/resource.h
+++ b/engines/saga/resource.h
@@ -84,22 +84,6 @@ class ResourceDataArray : public Common::Array<ResourceData> {
class ResourceContext {
friend class Resource;
-protected:
- const char *_fileName;
- uint16 _fileType;
- bool _isCompressed;
- int _serial; // IHNM speech files
-
- bool _isBigEndian;
- ResourceDataArray _table;
- Common::File _file;
- int32 _fileSize;
-
- bool load(SagaEngine *_vm, Resource *resource);
- bool loadResV1(uint32 contextOffset, uint32 contextSize);
-
- virtual bool loadMac() = 0;
- virtual bool loadRes(uint32 contextOffset, uint32 contextSize) = 0;
public:
ResourceContext():
@@ -172,6 +156,22 @@ public:
}
return -1;
}
+protected:
+ const char *_fileName;
+ uint16 _fileType;
+ bool _isCompressed;
+ int _serial; // IHNM speech files
+
+ bool _isBigEndian;
+ ResourceDataArray _table;
+ Common::File _file;
+ int32 _fileSize;
+
+ bool load(SagaEngine *_vm, Resource *resource);
+ bool loadResV1(uint32 contextOffset, uint32 contextSize);
+
+ virtual bool loadMacMIDI() = 0;
+ virtual bool loadRes(uint32 contextOffset, uint32 contextSize) = 0;
};
class ResourceContextList : public Common::List<ResourceContext*> {
@@ -228,7 +228,7 @@ public:
// ITE
class ResourceContext_RSC: public ResourceContext {
protected:
- virtual bool loadMac();
+ virtual bool loadMacMIDI();
virtual bool loadRes(uint32 contextOffset, uint32 contextSize) {
return loadResV1(contextOffset, contextSize);
}
@@ -237,7 +237,9 @@ protected:
class Resource_RSC : public Resource {
public:
Resource_RSC(SagaEngine *vm) : Resource(vm) {}
- virtual uint32 convertResourceId(uint32 resourceId);
+ virtual uint32 convertResourceId(uint32 resourceId) {
+ return _vm->isMacResources() ? resourceId - 2 : resourceId;
+ }
virtual void loadGlobalResources(int chapter, int actorsEntrance) {}
virtual MetaResource* getMetaResource() {
MetaResource *dummy = 0;
@@ -253,20 +255,16 @@ protected:
// IHNM
class ResourceContext_RES: public ResourceContext {
protected:
- virtual bool loadMac() {
- return false;
- }
+ virtual bool loadMacMIDI() { return false; }
virtual bool loadRes(uint32 contextOffset, uint32 contextSize) {
return loadResV1(0, contextSize);
}
};
-//TODO: move load routines from sndres
+// TODO: move load routines from sndres
class VoiceResourceContext_RES: public ResourceContext {
protected:
- virtual bool loadMac() {
- return false;
- }
+ virtual bool loadMacMIDI() { return false; }
virtual bool loadRes(uint32 contextOffset, uint32 contextSize) {
return false;
}
@@ -298,9 +296,7 @@ class ResourceContext_HRS: public ResourceContext {
protected:
ResourceDataArray _categories;
- virtual bool loadMac() {
- return false;
- }
+ virtual bool loadMacMIDI() { return false; }
virtual bool loadRes(uint32 contextOffset, uint32 contextSize) {
return loadResV2(contextSize);
}