diff options
Diffstat (limited to 'engines/sci/graphics/transitions32.cpp')
-rw-r--r-- | engines/sci/graphics/transitions32.cpp | 14 |
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) { |