aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2009-03-30 21:41:29 +0000
committerFilippos Karapetis2009-03-30 21:41:29 +0000
commit936482f03c9d7009797edf837719a4cb19df2f67 (patch)
tree12828591085605669fd6cb69f3d14a80b75b0420 /engines/sci
parent9c5cf77287fd7672592bd3bf1605e7ca688d8a02 (diff)
downloadscummvm-rg350-936482f03c9d7009797edf837719a4cb19df2f67.tar.gz
scummvm-rg350-936482f03c9d7009797edf837719a4cb19df2f67.tar.bz2
scummvm-rg350-936482f03c9d7009797edf837719a4cb19df2f67.zip
This should really fix the issues with vobab.999/999.voc in SCI1 games (e.g. KQ5)
svn-id: r39768
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/scicore/resource.cpp5
-rw-r--r--engines/sci/scicore/vocab_debug.cpp7
2 files changed, 7 insertions, 5 deletions
diff --git a/engines/sci/scicore/resource.cpp b/engines/sci/scicore/resource.cpp
index 14a430c383..392ea3b560 100644
--- a/engines/sci/scicore/resource.cpp
+++ b/engines/sci/scicore/resource.cpp
@@ -901,10 +901,7 @@ void ResourceManager::readResourcePatches(ResourceSource *source) {
// SCI1 scheme
if (isdigit(name[0])) {
number = atoi(name.c_str());
- // vocab.999/999.voc is notoriously unreliable in SCI1 games, and should not be used
- // Also check vocabulary_get_knames1()
- if (number != VOCAB_RESOURCE_KNAMES)
- bAdd = true;
+ bAdd = true;
} else {
// SCI0 scheme
int resname_len = strlen(szResType);
diff --git a/engines/sci/scicore/vocab_debug.cpp b/engines/sci/scicore/vocab_debug.cpp
index deb2c2b2cf..f3ed5d8793 100644
--- a/engines/sci/scicore/vocab_debug.cpp
+++ b/engines/sci/scicore/vocab_debug.cpp
@@ -562,9 +562,14 @@ char **vocabulary_get_knames(ResourceManager *resmgr, int *count) {
switch (resmgr->_sciVersion) {
case SCI_VERSION_0:
case SCI_VERSION_01:
+ return vocabulary_get_knames0(resmgr, count);
case SCI_VERSION_01_VGA:
case SCI_VERSION_01_VGA_ODD:
- return vocabulary_get_knames0(resmgr, count);
+ // HACK: KQ5 needs the SCI1 default vocabulary names to work correctly.
+ // Having more vocabulary names (like in SCI1) doesn't seem to have any
+ // ill effects, other than resulting in unmapped functions towards the
+ // end, which are never used by the game interpteter anyway
+ // return vocabulary_get_knames0(resmgr, count);
case SCI_VERSION_1_EARLY:
case SCI_VERSION_1_LATE:
return vocabulary_get_knames1(resmgr, count);