aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2018-08-21 02:38:23 +0300
committerFilippos Karapetis2018-08-21 03:36:07 +0300
commit52ff27746fd85711d9d1dd4b2772feb8a153ffd5 (patch)
tree53cab07353fd9401c494899e6399bcc0072b70a1 /engines/sci
parent16aab5b2817e3d5f1be45124b12f32fd468d3c79 (diff)
downloadscummvm-rg350-52ff27746fd85711d9d1dd4b2772feb8a153ffd5.tar.gz
scummvm-rg350-52ff27746fd85711d9d1dd4b2772feb8a153ffd5.tar.bz2
scummvm-rg350-52ff27746fd85711d9d1dd4b2772feb8a153ffd5.zip
SCI32: Fix fade-in for some screens in Hoyle 5
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/graphics/transitions32.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/sci/graphics/transitions32.cpp b/engines/sci/graphics/transitions32.cpp
index 43479a2505..cb48927c52 100644
--- a/engines/sci/graphics/transitions32.cpp
+++ b/engines/sci/graphics/transitions32.cpp
@@ -244,7 +244,19 @@ void GfxTransitions32::kernelSetShowStyle(const uint16 argc, const reg_t planeOb
deleteShowStyle(findIteratorForPlane(planeObj));
}
- return;
+ // Do not add kShowStyleNone types to the showStyles list.
+ //
+ // HACK: Hoyle 5 does a fade out in some screens, and then makes a
+ // kShowStyleNone call to enter the new screen, without a fade in,
+ // thus leaving the whole screen black. By removing ths return,
+ // the code for queuing the kShowStyleNone calls is enabled, and this
+ // wrong behavior is fixed, as the screen palette is restored in the
+ // processNone() call inside processShowStyle(). I wasn't able to find
+ // any other notable difference in the graphics code of the Hoyle 5
+ // interpreter, and disabling this return has no other ill effects for
+ // this game, so this will suffice for now.
+ if (g_sci->getGameId() != GID_HOYLE5)
+ return;
}
if (createNewEntry) {