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

buddha_ at users.sourceforge.net buddha_ at users.sourceforge.net
Fri Jul 6 14:53:59 CEST 2007


Revision: 27938
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27938&view=rev
Author:   buddha_
Date:     2007-07-06 05:53:58 -0700 (Fri, 06 Jul 2007)

Log Message:
-----------
Added Amiga-style mouse cursor. Used with Amiga-render mode.

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

Modified: scummvm/trunk/engines/agi/graphics.cpp
===================================================================
--- scummvm/trunk/engines/agi/graphics.cpp	2007-07-06 12:42:50 UTC (rev 27937)
+++ scummvm/trunk/engines/agi/graphics.cpp	2007-07-06 12:53:58 UTC (rev 27938)
@@ -746,9 +746,44 @@
 	0xFF, 0xFF, 0xFF,	0x00  // White
 };
 
-void GfxMgr::setCursor() {
-	CursorMan.replaceCursorPalette(sciMouseCursorPalette, 1, ARRAYSIZE(sciMouseCursorPalette) / 4);
-	CursorMan.replaceCursor(sciMouseCursor, 11, 16, 1, 1, 0);
+/**
+ * An Amiga-style arrow cursor (8x11).
+ * 0 = Transparent.
+ * 1 = Black     (#000000 in 24-bit RGB).
+ * 2 = Red       (#DE2021 in 24-bit RGB).
+ * 3 = Light red (#FFCFAD in 24-bit RGB).
+ */
+static const byte amigaMouseCursor[] = {
+	2,3,1,0,0,0,0,0,
+	2,2,3,1,0,0,0,0,
+	2,2,2,3,1,0,0,0,
+	2,2,2,2,3,1,0,0,
+	2,2,2,2,2,3,1,0,
+	2,2,2,2,2,2,3,1,
+	2,0,2,2,3,1,0,0,
+	0,0,0,2,3,1,0,0,
+	0,0,0,2,2,3,1,0,
+	0,0,0,0,2,3,1,0,
+	0,0,0,0,2,2,3,1
+};
+
+/**
+ * RGBA-palette for the Amiga-style arrow cursor.
+ */
+static const byte amigaMouseCursorPalette[] = {
+	0x00, 0x00, 0x00,	0x00, // Black
+	0xDE, 0x20, 0x21,	0x00, // Red
+	0xFF, 0xCF, 0xAD,	0x00  // Light red
+};
+
+void GfxMgr::setCursor(bool amigaStyleCursor) {
+	if (!amigaStyleCursor) {
+		CursorMan.replaceCursorPalette(sciMouseCursorPalette, 1, ARRAYSIZE(sciMouseCursorPalette) / 4);
+		CursorMan.replaceCursor(sciMouseCursor, 11, 16, 1, 1, 0);
+	} else { // amigaStyleCursor
+		CursorMan.replaceCursorPalette(amigaMouseCursorPalette, 1, ARRAYSIZE(amigaMouseCursorPalette) / 4);
+		CursorMan.replaceCursor(amigaMouseCursor, 8, 11, 1, 1, 0);
+	}
 }
 
 /**
@@ -767,7 +802,7 @@
 
 	gfxSetPalette();
 
-	setCursor();
+	setCursor(_vm->_renderMode == Common::kRenderAmiga);
 
 	return errOK;
 }

Modified: scummvm/trunk/engines/agi/graphics.h
===================================================================
--- scummvm/trunk/engines/agi/graphics.h	2007-07-06 12:42:50 UTC (rev 27937)
+++ scummvm/trunk/engines/agi/graphics.h	2007-07-06 12:53:58 UTC (rev 27938)
@@ -87,7 +87,7 @@
 	void putPixel(int, int, int);
 	void putBlock(int x1, int y1, int x2, int y2);
 	void gfxSetPalette();
-	void setCursor();
+	void setCursor(bool amigaStyleCursor = false);
 
 	int keypress();
 	int getKey();


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