aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/groovie/cursor.cpp4
-rw-r--r--engines/groovie/cursor.h1
-rw-r--r--engines/groovie/groovie.cpp6
-rw-r--r--engines/groovie/script.cpp4
4 files changed, 11 insertions, 4 deletions
diff --git a/engines/groovie/cursor.cpp b/engines/groovie/cursor.cpp
index 8aa514a6b1..a8a125bfe9 100644
--- a/engines/groovie/cursor.cpp
+++ b/engines/groovie/cursor.cpp
@@ -45,6 +45,10 @@ GrvCursorMan::~GrvCursorMan() {
CursorMan.popAllCursors();
}
+void GrvCursorMan::show(bool visible) {
+ CursorMan.showMouse(visible);
+}
+
uint8 GrvCursorMan::getStyle() {
return _current;
}
diff --git a/engines/groovie/cursor.h b/engines/groovie/cursor.h
index ee112bd01d..a148144389 100644
--- a/engines/groovie/cursor.h
+++ b/engines/groovie/cursor.h
@@ -49,6 +49,7 @@ public:
GrvCursorMan(OSystem *system);
virtual ~GrvCursorMan();
+ virtual void show(bool visible);
virtual void animate();
virtual void setStyle(uint8 newStyle);
virtual uint8 getStyle();
diff --git a/engines/groovie/groovie.cpp b/engines/groovie/groovie.cpp
index 34d283a967..a09fe8fe3b 100644
--- a/engines/groovie/groovie.cpp
+++ b/engines/groovie/groovie.cpp
@@ -195,9 +195,11 @@ Common::Error GroovieEngine::go() {
_waitingForInput = false;
break;
+ case Common::EVENT_MAINMENU:
+ // Closing the GMM
case Common::EVENT_MOUSEMOVE:
- // Continue the script execution, the mouse
- // pointer may fall inside a hotspot now
+ // Continue the script execution, the mouse pointer
+ // may fall inside a different hotspot now
_waitingForInput = false;
break;
diff --git a/engines/groovie/script.cpp b/engines/groovie/script.cpp
index f36298a497..045332a2b9 100644
--- a/engines/groovie/script.cpp
+++ b/engines/groovie/script.cpp
@@ -689,7 +689,7 @@ void Script::o_inputloopend() {
// Exit the input loop
_inputLoopAddress = 0;
- _vm->_system->showMouse(false);
+ _vm->_grvCursorMan->show(false);
// Force immediate hiding of the mouse cursor (required when the next
// video just contains audio)
@@ -701,7 +701,7 @@ void Script::o_inputloopend() {
if (_newCursorStyle != _vm->_grvCursorMan->getStyle()) {
_vm->_grvCursorMan->setStyle(_newCursorStyle);
}
- _vm->_system->showMouse(true);
+ _vm->_grvCursorMan->show(true);
// Go back to the begining of the loop
_currentInstruction = _inputLoopAddress;