From fa7c6a9969806d2163d81153a3b3610b65ea12e4 Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Tue, 31 Aug 2010 15:50:46 +0000 Subject: SCI: adding workaround for platform-specific incompatibility with some sierra games. Some games open a new menu, set mouse cursor within that menu and expect the mouse cursor to be in there and will close it, if it's outside. In case of Wiimote/touch interfaces this logic won't work of course. Fixes island of dr. brain and QfG1VGA on Wii and touch-interface platforms svn-id: r52474 --- engines/sci/graphics/cursor.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'engines/sci/graphics/cursor.h') diff --git a/engines/sci/graphics/cursor.h b/engines/sci/graphics/cursor.h index 787841f5be..10cd5d8a85 100644 --- a/engines/sci/graphics/cursor.h +++ b/engines/sci/graphics/cursor.h @@ -40,6 +40,16 @@ class GfxPalette; typedef Common::HashMap CursorCache; +struct SciCursorSetPositionWorkarounds { + SciGameId gameId; + int16 newPositionY; + int16 newPositionX; + int16 rectTop; + int16 rectLeft; + int16 rectBottom; + int16 rectRight; +}; + class GfxCursor { public: GfxCursor(ResourceManager *resMan, GfxPalette *palette, GfxScreen *screen); -- cgit v1.2.3 From ce8a2fbbbc658ee31d8621687119b3e1c295560f Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sun, 3 Oct 2010 22:41:35 +0000 Subject: SCI: Added support for SCI1.1+ magnifier cursors (bug #3034973). These are special cursors which zoom parts of a view dynamically. Examples are Freddy Pharkas, when reading the prescription with the whiskey and LB2, when using the magnifying glass on the Rosetta Stone svn-id: r53003 --- engines/sci/graphics/cursor.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'engines/sci/graphics/cursor.h') diff --git a/engines/sci/graphics/cursor.h b/engines/sci/graphics/cursor.h index 10cd5d8a85..f9d886f321 100644 --- a/engines/sci/graphics/cursor.h +++ b/engines/sci/graphics/cursor.h @@ -79,6 +79,9 @@ public: */ void kernelSetMoveZone(Common::Rect zone); + void kernelClearZoomZone(); + void kernelSetZoomZone(byte multiplier, Common::Rect zone, GuiResourceId viewNum, int loopNum, int celNum, GuiResourceId picNum, byte zoomColor); + void kernelSetPos(Common::Point pos); void kernelMoveCursor(Common::Point pos); @@ -96,6 +99,16 @@ private: bool _moveZoneActive; Common::Rect _moveZone; // Rectangle in which the pointer can move + bool _zoomZoneActive; + Common::Rect _zoomZone; + GfxView *_zoomCursorView; + byte _zoomCursorLoop; + byte _zoomCursorCel; + GfxView *_zoomPicView; + byte *_zoomBitmap; + byte _zoomColor; + byte _zoomMultiplier; + CursorCache _cachedCursors; bool _isVisible; -- cgit v1.2.3 From 165432ad190cd8b2131580989f2879b9154ec0d1 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 4 Oct 2010 06:05:34 +0000 Subject: SCI: Several corrections for magnifier cursors svn-id: r53010 --- engines/sci/graphics/cursor.h | 1 - 1 file changed, 1 deletion(-) (limited to 'engines/sci/graphics/cursor.h') diff --git a/engines/sci/graphics/cursor.h b/engines/sci/graphics/cursor.h index f9d886f321..5edc715649 100644 --- a/engines/sci/graphics/cursor.h +++ b/engines/sci/graphics/cursor.h @@ -105,7 +105,6 @@ private: byte _zoomCursorLoop; byte _zoomCursorCel; GfxView *_zoomPicView; - byte *_zoomBitmap; byte _zoomColor; byte _zoomMultiplier; -- cgit v1.2.3 From c8fd37c9f0eca0164f44c07c9013ad6e7e733e2e Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 5 Oct 2010 10:30:26 +0000 Subject: SCI: Some fixes for zoom cursors - Now the cursor buffer is initialized outside the mouse movement code, thus saving a memcpy there - Plugged some memory leaks - Removed an obsolete check svn-id: r53028 --- engines/sci/graphics/cursor.h | 1 + 1 file changed, 1 insertion(+) (limited to 'engines/sci/graphics/cursor.h') diff --git a/engines/sci/graphics/cursor.h b/engines/sci/graphics/cursor.h index 5edc715649..ae3b51e26a 100644 --- a/engines/sci/graphics/cursor.h +++ b/engines/sci/graphics/cursor.h @@ -107,6 +107,7 @@ private: GfxView *_zoomPicView; byte _zoomColor; byte _zoomMultiplier; + byte *_cursorSurface; CursorCache _cachedCursors; -- cgit v1.2.3