[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