[Scummvm-cvs-logs] SF.net SVN: scummvm: [28860] scummvm/trunk/engines/agi

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Sep 5 23:57:58 CEST 2007


Revision: 28860
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28860&view=rev
Author:   thebluegr
Date:     2007-09-05 14:57:57 -0700 (Wed, 05 Sep 2007)

Log Message:
-----------
Only change the cursor palette when the mouse hovers over a hotspot in Mickey, not the whole cursor. This is a much faster operation, which also gives better results

Modified Paths:
--------------
    scummvm/trunk/engines/agi/graphics.cpp
    scummvm/trunk/engines/agi/graphics.h
    scummvm/trunk/engines/agi/preagi_mickey.cpp

Modified: scummvm/trunk/engines/agi/graphics.cpp
===================================================================
--- scummvm/trunk/engines/agi/graphics.cpp	2007-09-05 20:45:47 UTC (rev 28859)
+++ scummvm/trunk/engines/agi/graphics.cpp	2007-09-05 21:57:57 UTC (rev 28860)
@@ -1005,6 +1005,14 @@
 	}
 }
 
+void GfxMgr::setCursorPalette(bool amigaStyleCursor) {
+	if (!amigaStyleCursor) {
+		CursorMan.replaceCursorPalette(sciMouseCursorPalette, 1, ARRAYSIZE(sciMouseCursorPalette) / 4);
+	} else { // amigaStyleCursor
+		CursorMan.replaceCursorPalette(amigaMouseCursorPalette, 1, ARRAYSIZE(amigaMouseCursorPalette) / 4);
+	}
+}
+
 /**
  * Initialize graphics device.
  *

Modified: scummvm/trunk/engines/agi/graphics.h
===================================================================
--- scummvm/trunk/engines/agi/graphics.h	2007-09-05 20:45:47 UTC (rev 28859)
+++ scummvm/trunk/engines/agi/graphics.h	2007-09-05 21:57:57 UTC (rev 28860)
@@ -92,6 +92,7 @@
 	void putBlock(int x1, int y1, int x2, int y2);
 	void gfxSetPalette();
 	void setCursor(bool amigaStyleCursor = false);
+	void setCursorPalette(bool amigaStylePalette = false);
 
 	int keypress();
 	int getKey();

Modified: scummvm/trunk/engines/agi/preagi_mickey.cpp
===================================================================
--- scummvm/trunk/engines/agi/preagi_mickey.cpp	2007-09-05 20:45:47 UTC (rev 28859)
+++ scummvm/trunk/engines/agi/preagi_mickey.cpp	2007-09-05 21:57:57 UTC (rev 28860)
@@ -358,18 +358,18 @@
 					// Change cursor
 					if (northIndex >= 0 && (event.mouse.x >= 20 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2) &&
 						(event.mouse.y >= 0 && event.mouse.y <= 10)) {
-						_vm->_gfx->setCursor(true);
+						_vm->_gfx->setCursorPalette(true);
 					} else if (southIndex >= 0 && (event.mouse.x >= 20 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2) &&
 						(event.mouse.y >= IDI_MSA_PIC_HEIGHT - 10 && event.mouse.y <= IDI_MSA_PIC_HEIGHT)) {
-						_vm->_gfx->setCursor(true);			
+						_vm->_gfx->setCursorPalette(true);			
 					} else if (westIndex >= 0 && (event.mouse.y >= 0  && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
 						(event.mouse.x >= 20 && event.mouse.x <= 30)) {
-						_vm->_gfx->setCursor(true);
+						_vm->_gfx->setCursorPalette(true);
 					} else if (eastIndex >= 0 && (event.mouse.y >= 0  && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
 						(event.mouse.x >= IDI_MSA_PIC_WIDTH * 2 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2)) {
-						_vm->_gfx->setCursor(true);
+						_vm->_gfx->setCursorPalette(true);
 					} else {
-						_vm->_gfx->setCursor(false);
+						_vm->_gfx->setCursorPalette(false);
 					}
 				}
 				break;
@@ -379,28 +379,28 @@
 					(event.mouse.y >= 0 && event.mouse.y <= 10)) {
 					*sel0 = goIndex; *sel1 = northIndex;
 					drawMenu(menu, *sel0, *sel1);
-					_vm->_gfx->setCursor(false);
+					_vm->_gfx->setCursorPalette(false);
 					clickToMove = true;
 				} else if (southIndex >= 0 && (event.mouse.x >= 20 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2) &&
 					(event.mouse.y >= IDI_MSA_PIC_HEIGHT - 10 && event.mouse.y <= IDI_MSA_PIC_HEIGHT)) {
 					*sel0 = goIndex; *sel1 = southIndex;
 					drawMenu(menu, *sel0, *sel1);
-					_vm->_gfx->setCursor(false);			
+					_vm->_gfx->setCursorPalette(false);			
 					clickToMove = true;
 				} else if (westIndex >= 0 && (event.mouse.y >= 0  && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
 					(event.mouse.x >= 20 && event.mouse.x <= 30)) {
 					*sel0 = goIndex; *sel1 = westIndex;
 					drawMenu(menu, *sel0, *sel1);
-					_vm->_gfx->setCursor(false);
+					_vm->_gfx->setCursorPalette(false);
 					clickToMove = true;
 				} else if (eastIndex >= 0 && (event.mouse.y >= 0  && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
 					(event.mouse.x >= IDI_MSA_PIC_WIDTH * 2 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2)) {
 					*sel0 = goIndex; *sel1 = eastIndex;
 					drawMenu(menu, *sel0, *sel1);
-					_vm->_gfx->setCursor(false);
+					_vm->_gfx->setCursorPalette(false);
 					clickToMove = true;
 				} else {
-					_vm->_gfx->setCursor(false);
+					_vm->_gfx->setCursorPalette(false);
 				}
 				return true;
 			case Common::EVENT_RBUTTONUP:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list