[Scummvm-cvs-logs] CVS: scummvm/sky mouse.cpp,1.9,1.10 mouse.h,1.8,1.9
Joost Peters
joostp at users.sourceforge.net
Thu Jun 5 14:48:01 CEST 2003
Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv27175/sky
Modified Files:
mouse.cpp mouse.h
Log Message:
fixed mouse cursor/transparency
Index: mouse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/mouse.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- mouse.cpp 5 Jun 2003 20:37:52 -0000 1.9
+++ mouse.cpp 5 Jun 2003 21:46:59 -0000 1.10
@@ -168,6 +168,18 @@
//drawMouse();
}
+//original sky uses different colors for transparency than our backends do,
+//so we simply swap our "transparent"-white with another one.
+void SkyMouse::fixMouseTransparency(byte *mouseData) {
+ for (int i = 0; i < (_mouseWidth * _mouseHeight); i++) {
+ if (mouseData[i] == 255)
+ mouseData[i] = 242;
+ else
+ if (mouseData[i] == 0)
+ mouseData[i] = 255;
+ }
+}
+
void SkyMouse::spriteMouse(uint16 frameNum, uint8 mouseX, uint8 mouseY) {
SkyState::_systemVars.mouseFlag |= MF_IN_INT;
_mouseType2 = frameNum;
@@ -182,6 +194,7 @@
//_system->set_mouse_cursor(_mouseData2, _mouseWidth, _mouseHeight, mouseX, mouseY);
// there's something wrong about the mouse's hotspot. using 0/0 works fine.
+ fixMouseTransparency(_mouseData2);
_system->set_mouse_cursor(_mouseData2, _mouseWidth, _mouseHeight, 0, 0);
if (frameNum == MOUSE_BLANK) _system->show_mouse(false);
else _system->show_mouse(true);
Index: mouse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/mouse.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- mouse.h 5 Jun 2003 18:54:26 -0000 1.8
+++ mouse.h 5 Jun 2003 21:46:59 -0000 1.9
@@ -54,7 +54,8 @@
void pointerEngine(void);
void buttonEngine1(void);
-
+ void fixMouseTransparency(byte *mouseData);
+
uint16 _eMouseB;
uint16 _bMouseB;
More information about the Scummvm-git-logs
mailing list