[Scummvm-cvs-logs] CVS: scummvm/bs2/driver _mouse.cpp,1.3,1.4

Oliver Kiehl olki at users.sourceforge.net
Thu Aug 21 22:42:56 CEST 2003


Update of /cvsroot/scummvm/scummvm/bs2/driver
In directory sc8-pr-cvs1:/tmp/cvs-serv26458

Modified Files:
	_mouse.cpp 
Log Message:
preliminary cursor code. dirty, hacky and no animation yet. but at least something...


Index: _mouse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/_mouse.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- _mouse.cpp	28 Jul 2003 07:22:40 -0000	1.3
+++ _mouse.cpp	19 Aug 2003 21:42:21 -0000	1.4
@@ -137,6 +137,7 @@
 #include "d_draw.h"
 #include "render.h"
 #include "menu.h"
+#include "../sword2.h"
 
 
 
@@ -534,9 +535,37 @@
 
 
 int32 SetMouseAnim(uint8 *ma, int32 size, int32 mouseFlash)
-
 {
-	warning("stub SetMouseAnim( %d, %d )", size, mouseFlash);
+	if (ma) {
+		if (mouseAnim)
+			free(mouseAnim);
+
+		if (mouseFlash == RDMOUSE_FLASH)
+			mouseFrame = 0;
+		else
+			mouseFrame = MOUSEFLASHFRAME;
+
+		mouseAnim = (_mouseAnim *)malloc(size);
+		memcpy((uint8 *)mouseAnim, ma, size);
+
+		mouseOffsets = (int32 *)((uint8 *)mouseAnim + sizeof(_mouseAnim));
+		AnimateMouse();
+
+		uint8 *decompSprite = (uint8 *)malloc(mouseAnim->mousew * mouseAnim->mouseh);
+		DecompressMouse(decompSprite, mouseSprite, mouseAnim->mousew * mouseAnim->mouseh);
+
+		int i;
+		for (i = 0; i < mouseAnim->mousew * mouseAnim->mouseh; i++)
+			if (decompSprite[i] == 0)
+				decompSprite[i] = 0xff;
+		
+		g_sword2->_system->set_mouse_cursor(decompSprite,
+				mouseAnim->mousew, mouseAnim->mouseh,
+				mouseAnim->xHotSpot, mouseAnim->yHotSpot - MENUDEEP);
+		g_sword2->_system->show_mouse(true);
+	} else
+		g_sword2->_system->show_mouse(false);
+
 /*
 	int32 i;
 





More information about the Scummvm-git-logs mailing list