aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/resource.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 2e64b1080c..b2b422f3cb 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -2103,7 +2103,12 @@ Resource *ResourceManager::updateResource(ResourceId resId, ResourceSource *src,
return res;
}
- if (validateResource(resId, sourceMapLocation, src->getLocationName(), offset, size, volumeFile->size())) {
+ // Resources from MacResourceForkResourceSource do not have a source size
+ // since the source "volume file" is the empty data fork, and they don't
+ // have an offset either since the MacResManager handles this, so trying to
+ // validate these resources using the normal validation would always fail
+ if (src->getSourceType() == kSourceMacResourceFork ||
+ validateResource(resId, sourceMapLocation, src->getLocationName(), offset, size, volumeFile->size())) {
if (res == nullptr) {
res = new Resource(this, resId);
_resMap.setVal(resId, res);