SCI: Some small fixes for KQ6CD.

svn-id: r40898
This commit is contained in:
Walter van Niftrik 2009-05-26 00:03:41 +00:00
parent 9d4776ebc5
commit de5ca1e472
6 changed files with 14 additions and 6 deletions

View file

@ -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
},

View file

@ -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:

View file

@ -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;
}

View file

@ -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:
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));

View file

@ -34,7 +34,7 @@ SeqDecoder::~SeqDecoder() {
closeFile();
}
bool SeqDecoder::loadFile(const char *fileName) {
bool SeqDecoder::loadFile(Common::String fileName) {
closeFile();
_fileStream = SearchMan.createReadStreamForMember(fileName);

View file

@ -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);