aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
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
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')
-rw-r--r--engines/sci/detection.cpp2
-rw-r--r--engines/sci/engine/kernel.cpp2
-rw-r--r--engines/sci/engine/kgraphics.cpp2
-rw-r--r--engines/sci/engine/ksound.cpp10
-rw-r--r--engines/sci/gfx/seq_decoder.cpp2
-rw-r--r--engines/sci/gfx/seq_decoder.h2
6 files changed, 14 insertions, 6 deletions
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index c492c415eb..bf90d15604 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -1232,7 +1232,7 @@ static const struct SciGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "233394a5f33b475ae5975e7e9a420865", 8376352},
{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0},
0,
- SCI_VERSION_AUTODETECT,
+ 7,
SCI_VERSION_1_1
},
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));
diff --git a/engines/sci/gfx/seq_decoder.cpp b/engines/sci/gfx/seq_decoder.cpp
index ac12678b09..5a1babced9 100644
--- a/engines/sci/gfx/seq_decoder.cpp
+++ b/engines/sci/gfx/seq_decoder.cpp
@@ -34,7 +34,7 @@ SeqDecoder::~SeqDecoder() {
closeFile();
}
-bool SeqDecoder::loadFile(const char *fileName) {
+bool SeqDecoder::loadFile(Common::String fileName) {
closeFile();
_fileStream = SearchMan.createReadStreamForMember(fileName);
diff --git a/engines/sci/gfx/seq_decoder.h b/engines/sci/gfx/seq_decoder.h
index 99126c056a..16574007fe 100644
--- a/engines/sci/gfx/seq_decoder.h
+++ b/engines/sci/gfx/seq_decoder.h
@@ -32,7 +32,7 @@ class SeqDecoder {
public:
SeqDecoder() : _fileStream(0), _palette(0) { }
~SeqDecoder();
- bool loadFile(const char *fileName);
+ bool loadFile(Common::String fileName);
void closeFile();
gfx_pixmap_t *getFrame(bool &hasNext);