aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/saga/rscfile.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/engines/saga/rscfile.cpp b/engines/saga/rscfile.cpp
index 39224b032b..318d8b71b7 100644
--- a/engines/saga/rscfile.cpp
+++ b/engines/saga/rscfile.cpp
@@ -555,10 +555,15 @@ void Resource::loadResource(ResourceContext *context, uint32 resourceId, byte*&r
}
static int metaResourceTable[] = { 0, 326, 517, 677, 805, 968, 1165, 0, 1271 };
+static int metaResourceTableDemo[] = { 0, 0, 0, 0, 0, 0, 0, 285, 0 };
void Resource::loadGlobalResources(int chapter, int actorsEntrance) {
- if (chapter < 0)
- chapter = 8;
+ if (chapter < 0) {
+ if (_vm->getGameId() != GID_IHNM_DEMO)
+ chapter = 8;
+ else
+ chapter = 7;
+ }
// TODO
//if (module.voiceLUT)
@@ -583,8 +588,13 @@ void Resource::loadGlobalResources(int chapter, int actorsEntrance) {
byte *resourcePointer;
size_t resourceLength;
- _vm->_resource->loadResource(resourceContext, metaResourceTable[chapter],
- resourcePointer, resourceLength);
+ if (_vm->getGameId() != GID_IHNM_DEMO) {
+ _vm->_resource->loadResource(resourceContext, metaResourceTable[chapter],
+ resourcePointer, resourceLength);
+ } else {
+ _vm->_resource->loadResource(resourceContext, metaResourceTableDemo[chapter],
+ resourcePointer, resourceLength);
+ }
if (resourceLength == 0) {
error("Resource::loadGlobalResources wrong metaResource");