diff options
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r-- | engines/sci/graphics/cursor.cpp | 26 | ||||
-rw-r--r-- | engines/sci/graphics/cursor.h | 15 |
2 files changed, 36 insertions, 5 deletions
diff --git a/engines/sci/graphics/cursor.cpp b/engines/sci/graphics/cursor.cpp index daab532d0e..52a5961070 100644 --- a/engines/sci/graphics/cursor.cpp +++ b/engines/sci/graphics/cursor.cpp @@ -59,10 +59,16 @@ GfxCursor::GfxCursor(ResourceManager *resMan, GfxPalette *palette, GfxScreen *sc _zoomColor = 0; _zoomMultiplier = 0; _cursorSurface = 0; + if (g_sci && g_sci->getGameId() == GID_KQ6 && g_sci->getPlatform() == Common::kPlatformWindows) _useOriginalKQ6WinCursors = ConfMan.getBool("windows_cursors"); else _useOriginalKQ6WinCursors = false; + + if (g_sci && g_sci->getGameId() == GID_SQ4 && getSciVersion() == SCI_VERSION_1_1) + _useSilverSQ4CDCursors = ConfMan.getBool("silver_cursors"); + else + _useSilverSQ4CDCursors = false; } GfxCursor::~GfxCursor() { @@ -206,6 +212,26 @@ void GfxCursor::kernelSetView(GuiResourceId viewNum, int loopNum, int celNum, Co return; } + // Use the alternate silver cursors in SQ4 CD, if requested + if (_useSilverSQ4CDCursors) { + switch(viewNum) { + case 850: + case 852: + case 854: + case 856: + celNum = 3; + break; + case 851: + case 853: + case 855: + case 999: + celNum = 2; + break; + default: + break; + } + } + if (!_cachedCursors.contains(viewNum)) _cachedCursors[viewNum] = new GfxView(_resMan, _screen, _palette, viewNum); diff --git a/engines/sci/graphics/cursor.h b/engines/sci/graphics/cursor.h index 25109b3920..ac928f50bb 100644 --- a/engines/sci/graphics/cursor.h +++ b/engines/sci/graphics/cursor.h @@ -113,13 +113,18 @@ private: bool _isVisible; - // KQ6 Windows has different black and white cursors. If this is - // true (set from the sci_originalkq6wincursors ini setting), then - // we use these, and don't scale them by 2x like the rest of the - // graphics, like SSCI did. These look very ugly, which is why - // they aren't enabled by default. + // KQ6 Windows has different black and white cursors. If this is true (set + // from the windows_cursors ini setting), then we use these and don't scale + // them by 2x like the rest of the graphics, like SSCI did. These look very + // ugly, which is why they aren't enabled by default. bool _useOriginalKQ6WinCursors; + // The CD version of SQ4 contains a complete set of silver mouse cursors. + // If this is true (set from the silver_cursors ini setting), then we use + // these instead and replace the game's gold cursors with their silver + // equivalents. + bool _useSilverSQ4CDCursors; + // Mac versions of games use a remap list to remap their cursors Common::Array<uint16> _macCursorRemap; }; |