[Scummvm-git-logs] scummvm master -> 4158e73b4d9aa53f7c300e822c85ccb6978a6fcc

sev- sev at scummvm.org
Fri Mar 27 01:01:30 UTC 2020


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
251886124e GRAPHICS: MACGUI: Specify hotspot for custom cursor and fix cursor popping
4158e73b4d DIRECTOR: Added mouseUp and mouseDown cursors


Commit: 251886124e28e4f3ddf5e5c34cbe3d44f976b50b
    https://github.com/scummvm/scummvm/commit/251886124e28e4f3ddf5e5c34cbe3d44f976b50b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-03-27T02:00:56+01:00

Commit Message:
GRAPHICS: MACGUI: Specify hotspot for custom cursor and fix cursor popping

Changed paths:
    engines/director/lingo/lingo-funcs.cpp
    graphics/macgui/macwindowmanager.cpp
    graphics/macgui/macwindowmanager.h


diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index 581e6b5e99..6fa4228271 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -386,7 +386,8 @@ void Lingo::func_cursor(int c, int m) {
 			}
 		}
 
-		_vm->getMacWindowManager()->pushCustomCursor(assembly, 16, 16, 3);
+		warning("STUB: func_cursor(): Hotspot is the registration point of the cast member");
+		_vm->getMacWindowManager()->pushCustomCursor(assembly, 16, 16, 1, 1, 3);
 
 		return;
 	}
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index b429325365..93179d54ba 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -499,14 +499,14 @@ void MacWindowManager::pushWatchCursor() {
 	CursorMan.pushCursorPalette(cursorPalette, 0, 2);
 }
 
-void MacWindowManager::pushCustomCursor(byte *data, int w, int h, int transcolor) {
-	CursorMan.pushCursor(data, w, h, 1, 1, transcolor);
+void MacWindowManager::pushCustomCursor(const byte *data, int w, int h, int hx, int hy, int transcolor) {
+	CursorMan.pushCursor(data, w, h, hx, hy, transcolor);
 	CursorMan.pushCursorPalette(cursorPalette, 0, 2);
 }
 
 void MacWindowManager::popCursor() {
 	CursorMan.popCursor();
-	CursorMan.pushCursorPalette(cursorPalette, 0, 2);
+	CursorMan.popCursorPalette();
 }
 
 ///////////////////
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index 4771690044..9ce4adb9db 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -211,7 +211,7 @@ public:
 	void pushCrossHairCursor();
 	void pushCrossBarCursor();
 	void pushWatchCursor();
-	void pushCustomCursor(byte *data, int w, int h, int transcolor);
+	void pushCustomCursor(const byte *data, int w, int h, int hx, int hy, int transcolor);
 	void popCursor();
 
 	void pauseEngine(bool pause);


Commit: 4158e73b4d9aa53f7c300e822c85ccb6978a6fcc
    https://github.com/scummvm/scummvm/commit/4158e73b4d9aa53f7c300e822c85ccb6978a6fcc
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-03-27T02:01:06+01:00

Commit Message:
DIRECTOR: Added mouseUp and mouseDown cursors

Changed paths:
    engines/director/director.h
    engines/director/graphics.cpp
    engines/director/types.h


diff --git a/engines/director/director.h b/engines/director/director.h
index ab5b2bc5ee..272f04d9a0 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -116,6 +116,7 @@ public:
 	void loadPatterns();
 	uint32 transformColor(uint32 color);
 	Graphics::MacPatterns &getPatterns();
+	void setCursor(int type); // graphics.cpp
 
 	void loadInitialMovie(const Common::String movie);
 	Archive *openMainArchive(const Common::String movie);
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index 8522d7817b..6f58512d34 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -699,6 +699,43 @@ static byte director3QuickDrawPatterns[][8] = {
 	{ 0xFF, 0x2A, 0xFF, 0xC8, 0xFF, 0x65, 0xFF, 0x9D }
 };
 
+static const byte mouseUp[] = {
+	3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3,
+	3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3,
+	3, 3, 3, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3,
+	3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+	3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 1, 1, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 1, 1, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3
+};
+
+static const byte mouseDown[] = {
+	3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3,
+	3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3,
+	3, 3, 3, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3,
+	3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+	3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 0, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3,
+	3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3
+};
 
 /**
  * The sprites colors are in reverse order with respect to the ids in director.
@@ -836,4 +873,20 @@ void DirectorEngine::testFonts() {
 	delete fontFile;
 }
 
+void DirectorEngine::setCursor(int type) {
+	switch (type) {
+	case kCursorDefault:
+		_wm->popCursor();
+		break;
+
+	case kCursorMouseDown:
+		_wm->pushCustomCursor(mouseDown, 16, 16, 0, 0, 3);
+		break;
+
+	case kCursorMouseUp:
+		_wm->pushCustomCursor(mouseUp, 16, 16, 0, 0, 3);
+		break;
+	}
+}
+
 }
diff --git a/engines/director/types.h b/engines/director/types.h
index e89632a9b1..25e5cefd04 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -231,6 +231,12 @@ enum TransitionType {
 	kTransDissolveBits
 };
 
+enum {
+	kCursorDefault,
+	kCursorMouseDown,
+	kCursorMouseUp
+};
+
 struct Datum;
 typedef Common::Array<Datum> DatumArray;
 




More information about the Scummvm-git-logs mailing list