[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