SCI: Add a new configuration option for SQ4 CD, "silver_cursors"
This allows the user to choose the alternate set of silver mouse cursors that is available in the game resources of the game, instead of the original golden ones
This commit is contained in:
parent
62966183e4
commit
7e4c5dce4a
4 changed files with 43 additions and 6 deletions
5
README
5
README
|
@ -2083,6 +2083,11 @@ King's Quest VI Windows adds the following non-standard keyword:
|
||||||
Windows version, upscaled to match the rest of
|
Windows version, upscaled to match the rest of
|
||||||
the upscaled graphics
|
the upscaled graphics
|
||||||
|
|
||||||
|
Space Quest IV CD adds the following non-standard keyword:
|
||||||
|
|
||||||
|
silver_cursors bool If true, an alternate set of silver mouse cursors
|
||||||
|
is used instead of the original golden ones
|
||||||
|
|
||||||
Simon the Sorcerer 1 and 2 add the following non-standard keywords:
|
Simon the Sorcerer 1 and 2 add the following non-standard keywords:
|
||||||
|
|
||||||
music_mute bool If true, music is muted
|
music_mute bool If true, music is muted
|
||||||
|
|
|
@ -59,10 +59,16 @@ GfxCursor::GfxCursor(ResourceManager *resMan, GfxPalette *palette, GfxScreen *sc
|
||||||
_zoomColor = 0;
|
_zoomColor = 0;
|
||||||
_zoomMultiplier = 0;
|
_zoomMultiplier = 0;
|
||||||
_cursorSurface = 0;
|
_cursorSurface = 0;
|
||||||
|
|
||||||
if (g_sci && g_sci->getGameId() == GID_KQ6 && g_sci->getPlatform() == Common::kPlatformWindows)
|
if (g_sci && g_sci->getGameId() == GID_KQ6 && g_sci->getPlatform() == Common::kPlatformWindows)
|
||||||
_useOriginalKQ6WinCursors = ConfMan.getBool("windows_cursors");
|
_useOriginalKQ6WinCursors = ConfMan.getBool("windows_cursors");
|
||||||
else
|
else
|
||||||
_useOriginalKQ6WinCursors = false;
|
_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() {
|
GfxCursor::~GfxCursor() {
|
||||||
|
@ -206,6 +212,26 @@ void GfxCursor::kernelSetView(GuiResourceId viewNum, int loopNum, int celNum, Co
|
||||||
return;
|
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))
|
if (!_cachedCursors.contains(viewNum))
|
||||||
_cachedCursors[viewNum] = new GfxView(_resMan, _screen, _palette, viewNum);
|
_cachedCursors[viewNum] = new GfxView(_resMan, _screen, _palette, viewNum);
|
||||||
|
|
||||||
|
|
|
@ -113,13 +113,18 @@ private:
|
||||||
|
|
||||||
bool _isVisible;
|
bool _isVisible;
|
||||||
|
|
||||||
// KQ6 Windows has different black and white cursors. If this is
|
// KQ6 Windows has different black and white cursors. If this is true (set
|
||||||
// true (set from the sci_originalkq6wincursors ini setting), then
|
// from the windows_cursors ini setting), then we use these and don't scale
|
||||||
// we use these, and don't scale them by 2x like the rest of the
|
// them by 2x like the rest of the graphics, like SSCI did. These look very
|
||||||
// graphics, like SSCI did. These look very ugly, which is why
|
// ugly, which is why they aren't enabled by default.
|
||||||
// they aren't enabled by default.
|
|
||||||
bool _useOriginalKQ6WinCursors;
|
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
|
// Mac versions of games use a remap list to remap their cursors
|
||||||
Common::Array<uint16> _macCursorRemap;
|
Common::Array<uint16> _macCursorRemap;
|
||||||
};
|
};
|
||||||
|
|
|
@ -194,6 +194,7 @@ Common::Error SciEngine::run() {
|
||||||
ConfMan.registerDefault("sci_originalsaveload", "false");
|
ConfMan.registerDefault("sci_originalsaveload", "false");
|
||||||
ConfMan.registerDefault("native_fb01", "false");
|
ConfMan.registerDefault("native_fb01", "false");
|
||||||
ConfMan.registerDefault("windows_cursors", "false"); // Windows cursors for KQ6 Windows
|
ConfMan.registerDefault("windows_cursors", "false"); // Windows cursors for KQ6 Windows
|
||||||
|
ConfMan.registerDefault("silver_cursors", "false"); // Silver cursors for SQ4 CD
|
||||||
|
|
||||||
_resMan = new ResourceManager();
|
_resMan = new ResourceManager();
|
||||||
assert(_resMan);
|
assert(_resMan);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue