aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
diff options
context:
space:
mode:
authorMartin Kiewitz2016-03-05 21:28:09 +0100
committerMartin Kiewitz2016-03-05 21:28:09 +0100
commit4ebca0353461cf4461f3425d52a7b82eb9fd983f (patch)
tree20b8acfd24b1255ff0a0bb5c5833a90c28babf62 /engines/sci/graphics
parent04b5f3833771c3073df5860c023c8274706dbbc7 (diff)
downloadscummvm-rg350-4ebca0353461cf4461f3425d52a7b82eb9fd983f.tar.gz
scummvm-rg350-4ebca0353461cf4461f3425d52a7b82eb9fd983f.tar.bz2
scummvm-rg350-4ebca0353461cf4461f3425d52a7b82eb9fd983f.zip
SCI: Make cursor workaround work properly on OpenPandora
Other platforms, that support analog stick + touch screen at the same time, are possibly also affected. Cursor workarounds exist for qfg1vga, qfg3, lsl5 and Island of Dr. Brain. Those sometimes worked and sometimes didn't on at least OpenPandora and should be fixed now.
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r--engines/sci/graphics/cursor.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/engines/sci/graphics/cursor.cpp b/engines/sci/graphics/cursor.cpp
index e8496b96e5..f5dd473959 100644
--- a/engines/sci/graphics/cursor.cpp
+++ b/engines/sci/graphics/cursor.cpp
@@ -336,6 +336,9 @@ void GfxCursor::setPosition(Common::Point pos) {
&& ((workaround->newPositionX == pos.x) && (workaround->newPositionY == pos.y))) {
EngineState *s = g_sci->getEngineState();
s->_cursorWorkaroundActive = true;
+ // At least on OpenPandora it seems that the cursor is actually set, but a bit afterwards
+ // touch screen controls will overwrite the position. More information see kGetEvent in kevent.cpp.
+ s->_cursorWorkaroundPosCount = 5; // should be enough for OpenPandora
s->_cursorWorkaroundPoint = pos;
s->_cursorWorkaroundRect = Common::Rect(workaround->rectLeft, workaround->rectTop, workaround->rectRight, workaround->rectBottom);
return;