diff options
author | Matthew Hoops | 2010-01-02 03:44:40 +0000 |
---|---|---|
committer | Matthew Hoops | 2010-01-02 03:44:40 +0000 |
commit | 1f2c92076b8ab941a783920e16896ebebab212c2 (patch) | |
tree | 18dfc5dd0c538a5f38e5f98a2f7211b0e2763cd9 /engines/sci/engine | |
parent | caf75e1bf59804a1f776f0931d82e799d1296e0d (diff) | |
download | scummvm-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/engine')
-rw-r--r-- | engines/sci/engine/kmisc.cpp | 18 |
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: |