aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorWalter van Niftrik2009-05-26 00:03:41 +0000
committerWalter van Niftrik2009-05-26 00:03:41 +0000
commitde5ca1e472dda7cffcaf7d0938f2d29c3e027ccc (patch)
treea66da04623548aac59b1ba73c793d2091b4beec4 /engines/sci/engine
parent9d4776ebc53218786a263279bc5868fc5947b7a5 (diff)
downloadscummvm-rg350-de5ca1e472dda7cffcaf7d0938f2d29c3e027ccc.tar.gz
scummvm-rg350-de5ca1e472dda7cffcaf7d0938f2d29c3e027ccc.tar.bz2
scummvm-rg350-de5ca1e472dda7cffcaf7d0938f2d29c3e027ccc.zip
SCI: Some small fixes for KQ6CD.
svn-id: r40898
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/kernel.cpp2
-rw-r--r--engines/sci/engine/kgraphics.cpp2
-rw-r--r--engines/sci/engine/ksound.cpp10
3 files changed, 11 insertions, 3 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 751ea7e6f5..10c7a3c14b 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -642,6 +642,8 @@ void vocabulary_get_knames(ResourceManager *resmgr, Common::StringList &names) {
break;
case SCI_VERSION_1_1:
vocabulary_get_knames1(resmgr, names);
+ // KQ6CD calls unimplemented function 0x26
+ names[0x26] = "Dummy";
break;
#ifdef ENABLE_SCI32
case SCI_VERSION_32:
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index 884ac346db..61a9ca4e52 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -3330,7 +3330,7 @@ reg_t kShowMovie(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int frameNr = 0;
SeqDecoder seq;
- if (!seq.loadFile(filename)) {
+ if (!seq.loadFile(filename) && !seq.loadFile(Common::String("SEQ/") + filename)) {
warning("Failed to open movie file %s", filename);
return s->r_acc;
}
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp
index 69e1a6cbad..1f7ece33c3 100644
--- a/engines/sci/engine/ksound.cpp
+++ b/engines/sci/engine/ksound.cpp
@@ -797,7 +797,8 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
}
case _K_SCI1_SOUND_GET_AUDIO_CAPABILITY : {
- return make_reg(0, 1);//NULL_REG;
+ // Tests for digital audio support
+ return make_reg(0, 1);
}
case _K_SCI1_SOUND_PLAY_HANDLE : {
int looping = GET_SEL32V(obj, loop);
@@ -1051,7 +1052,12 @@ reg_t kDoAudio(EngineState *s, int funct_nr, int argc, reg_t *argv) {
mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, UKPV(1));
break;
case kSci1AudioLanguage:
- s->sound.audioResource->setAudioLang(SKPV(1));
+ if (argc == 1) {
+ // In SCI1.1: tests for digital audio support
+ return make_reg(0, 1);
+ } else {
+ s->sound.audioResource->setAudioLang(SKPV(1));
+ }
break;
default:
warning("kDoAudio: Unhandled case %d", UKPV(0));