aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMatthew Hoops2010-01-02 03:44:40 +0000
committerMatthew Hoops2010-01-02 03:44:40 +0000
commit1f2c92076b8ab941a783920e16896ebebab212c2 (patch)
tree18dfc5dd0c538a5f38e5f98a2f7211b0e2763cd9 /engines/sci
parentcaf75e1bf59804a1f776f0931d82e799d1296e0d (diff)
downloadscummvm-rg350-1f2c92076b8ab941a783920e16896ebebab212c2.tar.gz
scummvm-rg350-1f2c92076b8ab941a783920e16896ebebab212c2.tar.bz2
scummvm-rg350-1f2c92076b8ab941a783920e16896ebebab212c2.zip
Fix the GK1 CD intro sequence (regression from r46839, which fixed a regression from r46656). kPlatform with no arguments is different in SCI32.
svn-id: r46874
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/kmisc.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index 819b3a78b7..76253ee516 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -252,18 +252,18 @@ enum kPlatformOps {
};
reg_t kPlatform(EngineState *s, int argc, reg_t *argv) {
- if (argc == 0) {
- // This is called in KQ5CD with no parameters, where
- // it seems to do some graphics driver check. This
- // kernel function didn't have subfunctions then.
- // If 0 is returned, the game functions normally,
- // otherwise all the animations show up like a
- // slideshow (e.g. in the intro). So we return 0 :)
+ bool isWindows = ((SciEngine*)g_engine)->getPlatform() == Common::kPlatformWindows;
+
+ if (argc == 0 && getSciVersion() < SCI_VERSION_2) {
+ // This is called in KQ5CD with no parameters, where it seems to do some graphics
+ // driver check. This kernel function didn't have subfunctions then. If 0 is
+ // returned, the game functions normally, otherwise all the animations show up
+ // like a slideshow (e.g. in the intro). So we return 0. However, the behavior
+ // changed for kPlatform with no parameters in SCI32.
return NULL_REG;
}
- bool isWindows = ((SciEngine*)g_engine)->getPlatform() == Common::kPlatformWindows;
- uint16 operation = argv[0].toUint16();
+ uint16 operation = (argc == 0) ? 0 : argv[0].toUint16();
switch (operation) {
case kPlatformUnk0: