[Scummvm-cvs-logs] scummvm master -> 7e4c5dce4a787ac6876b9548e206757196a1ef09

bluegr md5 at scummvm.org
Wed Mar 7 22:22:10 CET 2012


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
7e4c5dce4a SCI: Add a new configuration option for SQ4 CD, "silver_cursors"


Commit: 7e4c5dce4a787ac6876b9548e206757196a1ef09
    https://github.com/scummvm/scummvm/commit/7e4c5dce4a787ac6876b9548e206757196a1ef09
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-03-07T13:20:50-08:00

Commit Message:
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

Changed paths:
    README
    engines/sci/graphics/cursor.cpp
    engines/sci/graphics/cursor.h
    engines/sci/sci.cpp



diff --git a/README b/README
index a85ff20..82d5df3 100644
--- a/README
+++ b/README
@@ -2082,7 +2082,12 @@ King's Quest VI Windows adds the following non-standard keyword:
                                 ones. If false, the DOS cursors are used in the
                                 Windows version, upscaled to match the rest of
                                 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:
 
     music_mute         bool     If true, music is muted
diff --git a/engines/sci/graphics/cursor.cpp b/engines/sci/graphics/cursor.cpp
index daab532..52a5961 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 25109b3..ac928f5 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;
 };
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 00731fc..4ae55cb 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -194,6 +194,7 @@ Common::Error SciEngine::run() {
 	ConfMan.registerDefault("sci_originalsaveload", "false");
 	ConfMan.registerDefault("native_fb01", "false");
 	ConfMan.registerDefault("windows_cursors", "false");	// Windows cursors for KQ6 Windows
+	ConfMan.registerDefault("silver_cursors", "false");	// Silver cursors for SQ4 CD
 
 	_resMan = new ResourceManager();
 	assert(_resMan);






More information about the Scummvm-git-logs mailing list