aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/transitions32.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/graphics/transitions32.cpp')
-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) {