diff options
Diffstat (limited to 'engines/sci/resource.cpp')
-rw-r--r-- | engines/sci/resource.cpp | 10 |
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; |