From 52ff27746fd85711d9d1dd4b2772feb8a153ffd5 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 21 Aug 2018 02:38:23 +0300 Subject: SCI32: Fix fade-in for some screens in Hoyle 5 --- engines/sci/graphics/transitions32.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'engines') 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) { -- cgit v1.2.3