aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorFilippos Karapetis2010-11-09 19:37:42 +0000
committerFilippos Karapetis2010-11-09 19:37:42 +0000
commit1a85ce8e036a292b3d2569d8044b787e76ce48f9 (patch)
treeef6a631b35fa012598d89323b2e63cc7fa3a2c85 /engines/sci/engine
parent45f4f84e03320cdcac569405b6209b5e763f0bdf (diff)
downloadscummvm-rg350-1a85ce8e036a292b3d2569d8044b787e76ce48f9.tar.gz
scummvm-rg350-1a85ce8e036a292b3d2569d8044b787e76ce48f9.tar.bz2
scummvm-rg350-1a85ce8e036a292b3d2569d8044b787e76ce48f9.zip
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
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/seg_manager.cpp14
1 files changed, 12 insertions, 2 deletions
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);