[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