[Scummvm-cvs-logs] CVS: scummvm/scumm cursor.cpp,2.28,2.29 palette.cpp,2.25,2.26

Eugene Sandulenko sev at users.sourceforge.net
Wed Mar 16 18:56:40 CET 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv995

Modified Files:
	cursor.cpp palette.cpp 
Log Message:
Tile-based NES cursor for MM NES.


Index: cursor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/cursor.cpp,v
retrieving revision 2.28
retrieving revision 2.29
diff -u -d -r2.28 -r2.29
--- cursor.cpp	17 Feb 2005 23:00:59 -0000	2.28
+++ cursor.cpp	17 Mar 2005 02:55:20 -0000	2.29
@@ -107,7 +107,8 @@
 
 void ScummEngine::updateCursor() {
 	_system->setMouseCursor(_grabbedCursor, _cursor.width, _cursor.height,
-							_cursor.hotspotX, _cursor.hotspotY, 255, 
+							_cursor.hotspotX, _cursor.hotspotY, 
+							(_features & GF_NES ? 0x40 : 255),
 							(_heversion == 70 ? 2 : 1));
 }
 
@@ -335,7 +336,26 @@
 	else
 		color = default_cursor_colors[idx];
 
-	if (_version <= 2) {
+	if (_features & GF_NES) {
+		_cursor.width = 8;
+		_cursor.height = 8;
+		_cursor.hotspotX = 0;
+		_cursor.hotspotY = 0;
+
+		byte *dst = _grabbedCursor;
+		byte *src = &_NESCostumeGfx[0][0xfa * 16];
+
+		// Cursor uses colors 0-2, which are differ from room to room
+		// Instead of remapping, we shift it 0x40 colors up (beyond NES
+		// palette) and specify those colors in setupNESPalette()
+		for (i = 0; i < 8; i++) {
+			byte c0 = src[i];
+			byte c1 = src[i + 8];
+			for (j = 0; j < 8; j++)
+				*dst++ = ((c0 >> (7 - j)) & 1) | (((c1 >> (7 - j)) & 1) << 1) + 0x40;
+		}
+
+	} else if (_version <= 2) {
 		_cursor.width = 23;
 		_cursor.height = 21;
 		_cursor.hotspotX = 11;

Index: palette.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/palette.cpp,v
retrieving revision 2.25
retrieving revision 2.26
diff -u -d -r2.25 -r2.26
--- palette.cpp	13 Mar 2005 23:18:56 -0000	2.25
+++ palette.cpp	17 Mar 2005 02:55:20 -0000	2.26
@@ -97,6 +97,11 @@
 	setPalColor(0x3D,0x00,0x00,0x00);
 	setPalColor(0x3E,0x00,0x00,0x00);
 	setPalColor(0x3F,0x00,0x00,0x00);
+
+	// We use it for cursor. 0x40 is transparent
+	setPalColor(0x40, 0x00, 0x00, 0x00);
+	setPalColor(0x41, 0x00, 0x00, 0x00);
+	setPalColor(0x42, 0xff, 0xff, 0xff);
 }
 
 void ScummEngine::setupAmigaPalette() {





More information about the Scummvm-git-logs mailing list