From f41e1999fb6397a8feeb7c105a40d77072ce1123 Mon Sep 17 00:00:00 2001 From: Nipun Garg Date: Fri, 28 Jun 2019 23:36:43 +0530 Subject: HDB: Add updateMouse() and call it in game loop --- engines/hdb/hdb.cpp | 3 +++ engines/hdb/input.cpp | 24 ++++++++++++++++++++++++ engines/hdb/input.h | 2 ++ 3 files changed, 29 insertions(+) diff --git a/engines/hdb/hdb.cpp b/engines/hdb/hdb.cpp index d73228d39c..d0c65b5c0a 100644 --- a/engines/hdb/hdb.cpp +++ b/engines/hdb/hdb.cpp @@ -451,6 +451,9 @@ Common::Error HDBGame::run() { case Common::EVENT_QUIT: case Common::EVENT_RTL: break; + case Common::EVENT_MOUSEMOVE: + _input->updateMouse(event.mouse.x, event.mouse.y); + break; case Common::EVENT_KEYDOWN: debug("Key was pressed."); break; diff --git a/engines/hdb/input.cpp b/engines/hdb/input.cpp index c421b12a25..41dbc9d8cb 100644 --- a/engines/hdb/input.cpp +++ b/engines/hdb/input.cpp @@ -152,4 +152,28 @@ void Input::stylusMove(int x, int y) { } } +void Input::updateMouse(int newX, int newY) { + _lastMouseX = _mouseX; + _lastMouseY = _mouseY; + _mouseX = newX; + _mouseY = newY; + + if (_mouseX < 0) + _mouseX = 0; + else if (_mouseX >= kScreenWidth) + _mouseX = kScreenWidth - 1; + + if (_mouseY < 0) + _mouseY = 0; + else if (_mouseY >= kScreenHeight) + _mouseY = kScreenHeight - 1; + + // Turn Cursor back on? + if ((_lastMouseX != _mouseX || _lastMouseY != _mouseY) && !g_hdb->_drawMan->getPointer()) { + g_hdb->_drawMan->showPointer(true); + } + + warning("STUB: updateMouse: Update Mouse buttons"); +} + } // End of Namespace diff --git a/engines/hdb/input.h b/engines/hdb/input.h index 0b6a3db2b4..211d9d4cb9 100644 --- a/engines/hdb/input.h +++ b/engines/hdb/input.h @@ -53,6 +53,8 @@ public: void stylusUp(int x, int y); void stylusMove(int x, int y); + void updateMouse(int newX, int newY); + int getMouseX() { return _mouseX; } -- cgit v1.2.3