[Scummvm-cvs-logs] CVS: scummvm/queen display.cpp,1.49,1.50 display.h,1.36,1.37 graphics.cpp,1.77,1.78

Gregory Montoir cyx at users.sourceforge.net
Fri Jan 9 07:15:05 CET 2004


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv10098/queen

Modified Files:
	display.cpp display.h graphics.cpp 
Log Message:
fix mouse pointer glitch occuring when exiting Debugger

Index: display.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/display.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- display.cpp	9 Jan 2004 13:36:37 -0000	1.49
+++ display.cpp	9 Jan 2004 15:14:15 -0000	1.50
@@ -44,6 +44,8 @@
 	memset(_panelBuf,    0, PANEL_W * PANEL_H);
 	memset(_backdropBuf, 0, BACKDROP_W * BACKDROP_H);
 
+	memset(_mousePtr, 0, sizeof(_mousePtr));
+
 	_fullRefresh = true;
 	_dirtyBlocksWidth  = SCREEN_W / D_BLOCK_W;
 	_dirtyBlocksHeight = SCREEN_H / D_BLOCK_H;
@@ -807,10 +809,12 @@
 }
 
 
-void Display::setMouseCursor(uint8 *buf, uint16 w, uint16 h, uint16 xhs, uint16 yhs) {
+void Display::setMouseCursor(uint8 *buf, uint16 w, uint16 h) {
+	assert(w == 14 && h == 14);
+	uint16 size = 14 * 14;
+	memcpy(_mousePtr, buf, size);
 	// change transparency color to match the one expected by the backend (0xFF)
-	uint16 size = w * h;
-	uint8 *p = buf;
+	uint8 *p = _mousePtr;
 	while (size--) {
 		if (*p == 255) {
 			*p = 254;
@@ -819,7 +823,7 @@
 		}
 		++p;
 	}
-	_system->set_mouse_cursor(buf, w, h, xhs, yhs);
+	_system->set_mouse_cursor(_mousePtr, 14, 14, 1, 1);
 }
 
 

Index: display.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/display.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- display.h	9 Jan 2004 13:36:37 -0000	1.36
+++ display.h	9 Jan 2004 15:14:15 -0000	1.37
@@ -85,7 +85,7 @@
 	void handleTimer();
 	void waitForTimer();
 
-	void setMouseCursor(uint8 *buf, uint16 w, uint16 h, uint16 xhs, uint16 yhs);
+	void setMouseCursor(uint8 *buf, uint16 w, uint16 h);
 	void showMouseCursor(bool show);
 
 	void initFont();
@@ -150,6 +150,8 @@
 	uint8 *_screenBuf;
 	uint8 *_panelBuf;
 	uint8 *_backdropBuf;
+
+	uint8 _mousePtr[14 * 14];
 
 	bool _fullRefresh;
 	uint8 *_dirtyBlocks;

Index: graphics.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/graphics.cpp,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- graphics.cpp	9 Jan 2004 13:36:37 -0000	1.77
+++ graphics.cpp	9 Jan 2004 15:14:15 -0000	1.78
@@ -207,7 +207,7 @@
 
 void Graphics::setupMouseCursor() {
 	BobFrame *bf = _vm->bankMan()->fetchFrame(1);
-	_vm->display()->setMouseCursor(bf->data, bf->width, bf->height, bf->xhotspot, bf->yhotspot);
+	_vm->display()->setMouseCursor(bf->data, bf->width, bf->height);
 }
 
 





More information about the Scummvm-git-logs mailing list