diff options
Diffstat (limited to 'engines/dm/eventman.cpp')
-rw-r--r-- | engines/dm/eventman.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/engines/dm/eventman.cpp b/engines/dm/eventman.cpp index 83e07eb1f7..16bfe4d3f9 100644 --- a/engines/dm/eventman.cpp +++ b/engines/dm/eventman.cpp @@ -596,12 +596,15 @@ Common::EventType EventManager::processInput(Common::Event *grabKey, Common::Eve case Common::EVENT_RBUTTONUP: { MouseButton button = (event.type == Common::EVENT_LBUTTONDOWN) ? k1_LeftMouseButton : k2_RightMouseButton; _g558_mouseButtonStatus &= ~button; + f544_resetPressingEyeOrMouth(); break; } default: break; } } + if (_g597_ignoreMouseMovements) + setMousePos(_mousePos); return Common::EVENT_INVALID; } @@ -722,7 +725,7 @@ void EventManager::f380_processCommandQueue() { return; } if (cmdType == k71_CommandClickOnEye) { - warning(false, "MISSING CODE: F0352_INVENTORY_ProcessCommand71_ClickOnEye();"); + _vm->_inventoryMan->f352_processCommand71_clickOnEye(); return; } if (cmdType == k80_CommandClickInDungeonView) { @@ -1523,4 +1526,15 @@ void EventManager::f371_commandProcessType111To115_ClickInActionArea(int16 posX, } } } + +void EventManager::f544_resetPressingEyeOrMouth() { + if (_vm->_g331_pressingEye) { + _g597_ignoreMouseMovements = false; + _vm->_g332_stopPressingEye = true; + } + if (_vm->_g333_pressingMouth) { + _g597_ignoreMouseMovements = false; + _vm->_g334_stopPressingMouth = true; + } +} } // end of namespace DM |