From cd7da28a9717703db608d93667d1be5aa8d5eab2 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sun, 29 Dec 2019 00:35:37 +0100 Subject: DIRECTOR: Track when mouse is down --- engines/director/events.cpp | 4 ++++ engines/director/score.cpp | 1 + engines/director/score.h | 1 + 3 files changed, 6 insertions(+) (limited to 'engines/director') diff --git a/engines/director/events.cpp b/engines/director/events.cpp index a9b10f133d..793a6f8d82 100644 --- a/engines/director/events.cpp +++ b/engines/director/events.cpp @@ -74,6 +74,8 @@ void DirectorEngine::processEvents() { spriteId = currentFrame->getSpriteIDFromPos(pos); sc->_currentMouseDownSpriteId = spriteId; + sc->_mouseIsDown = true; + debugC(3, kDebugEvents, "event: Button Down @(%d, %d), sprite id: %d", pos.x, pos.y, spriteId); _lingo->processEvent(kEventMouseDown); @@ -89,6 +91,8 @@ void DirectorEngine::processEvents() { debugC(3, kDebugEvents, "event: Button Up @(%d, %d), sprite id: %d", pos.x, pos.y, spriteId); + sc->_mouseIsDown = false; + _lingo->processEvent(kEventMouseUp); sc->_currentMouseDownSpriteId = 0; break; diff --git a/engines/director/score.cpp b/engines/director/score.cpp index 94d80d1566..37f2dfdded 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -72,6 +72,7 @@ Score::Score(DirectorEngine *vm) { _lingo = _vm->getLingo(); _soundManager = _vm->getSoundManager(); _currentMouseDownSpriteId = 0; + _mouseIsDown = false; // FIXME: TODO: Check whether the original truely does it if (_vm->getVersion() <= 3) { diff --git a/engines/director/score.h b/engines/director/score.h index 087da9b7a9..39e126ed30 100644 --- a/engines/director/score.h +++ b/engines/director/score.h @@ -137,6 +137,7 @@ public: Archive *_movieArchive; Common::Rect _movieRect; uint16 _currentMouseDownSpriteId; + bool _mouseIsDown; bool _stopPlay; uint32 _nextFrameTime; -- cgit v1.2.3