aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/resource.cpp')
-rw-r--r--engines/sci/resource.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 8f4fd64d90..11d9492ad5 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -1935,6 +1935,10 @@ bool ResourceManager::hasSci1Voc900() {
reg_t ResourceManager::findGameObject(bool addSci11ScriptOffset) {
Resource *script = findResource(ResourceId(kResourceTypeScript, 0), false);
+
+ if (!script)
+ return NULL_REG;
+
int extraBytes = 0;
if (getSciVersion() == SCI_VERSION_0_EARLY || getSciVersion() >= SCI_VERSION_1_1)
extraBytes = 2;
@@ -1966,8 +1970,14 @@ Common::String ResourceManager::findSierraGameId() {
nameSelector += 5;
}
+ if (!heap)
+ return "";
+
int16 gameObjectOffset = findGameObject(false).offset;
+ if (!gameObjectOffset)
+ return "";
+
// Seek to the name selector of the first export
byte *seeker = heap->data + READ_UINT16(heap->data + gameObjectOffset + nameSelector * 2);
Common::String sierraId;