From 1a85ce8e036a292b3d2569d8044b787e76ce48f9 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 9 Nov 2010 19:37:42 +0000 Subject: SCI: Some slight work on SCI3 - Enabled the SCI3 game entries for testing purposes - The resource manager is initialized fully now (with a slight hack) - Added a hack for the demo of Shivers 2 (which seemingly has no scripts or vocabularies) - The engine will stop before parsing any game scripts in SCI3 games, and opens the console for resource manager-related functionality svn-id: r54167 --- engines/sci/engine/seg_manager.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'engines/sci/engine') diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp index d509046a15..cd4baa0ac3 100644 --- a/engines/sci/engine/seg_manager.cpp +++ b/engines/sci/engine/seg_manager.cpp @@ -946,8 +946,18 @@ void SegManager::freeString(reg_t addr) { void SegManager::createClassTable() { Resource *vocab996 = _resMan->findResource(ResourceId(kResourceTypeVocab, 996), 1); - if (!vocab996) - error("SegManager: failed to open vocab 996"); + if (!vocab996) { + if (getSciVersion() <= SCI_VERSION_2_1) { + error("SegManager: failed to open vocab 996"); + } else { + // TODO/FIXME: The demo of Shivers 2 has no vocabularies or scripts! + // This is either a problem with the resource manager, or the game is + // simply not using SCI. Since we are not actually running game scripts + // in SCI3, stop here for now + warning("SegManager: failed to open vocab 996 in SCI3"); + return; + } + } int totalClasses = vocab996->size >> 2; _classTable.resize(totalClasses); -- cgit v1.2.3