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
This commit is contained in:
Matthew Hoops 2010-01-02 03:44:40 +00:00
parent caf75e1bf5
commit 1f2c92076b

View File

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