aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2012-07-27 01:30:37 +0300
committerFilippos Karapetis2012-07-27 01:30:37 +0300
commit7eded163d8088d97f65e482f63e9ecd194d00c68 (patch)
tree1bfdb11543370f5e445b2198ccf69c8fdcac98af /engines
parent34d00f59365cf05a8817ade955a6440ab3019860 (diff)
downloadscummvm-rg350-7eded163d8088d97f65e482f63e9ecd194d00c68.tar.gz
scummvm-rg350-7eded163d8088d97f65e482f63e9ecd194d00c68.tar.bz2
scummvm-rg350-7eded163d8088d97f65e482f63e9ecd194d00c68.zip
SCI: Add support for kCD(0) with a parameter
It's now possible to start a chapter in Phantasmagoria 1
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/kfile.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index 786276221c..f7cc4f44b5 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -197,8 +197,15 @@ reg_t kCD(EngineState *s, int argc, reg_t *argv) {
// TODO: Stub
switch (argv[0].toUint16()) {
case 0:
- // Return whether the contents of disc argv[1] is available.
- return TRUE_REG;
+ if (argc == 1) {
+ // Check if a disc is in the drive
+ return TRUE_REG;
+ } else {
+ // Check if the specified disc is in the drive
+ // and return the current disc number. We just
+ // return the requested disc number.
+ return argv[1];
+ }
case 1:
// Return the current CD number
return make_reg(0, 1);