diff options
author | Paul Gilbert | 2011-07-02 20:04:30 +1000 |
---|---|---|
committer | Paul Gilbert | 2011-07-02 20:04:30 +1000 |
commit | 72ae475c97e6f0ba1cae2f7aa0bc2860e45de495 (patch) | |
tree | 51b1031769851a3f44d1763033f4d0155aadae45 /engines/cge/events.cpp | |
parent | bb3d61b137aea4cab3e82d4f9f93b1dbea27c54e (diff) | |
download | scummvm-rg350-72ae475c97e6f0ba1cae2f7aa0bc2860e45de495.tar.gz scummvm-rg350-72ae475c97e6f0ba1cae2f7aa0bc2860e45de495.tar.bz2 scummvm-rg350-72ae475c97e6f0ba1cae2f7aa0bc2860e45de495.zip |
CGE: Fix naming of touch() virtual methods, and fixed keyboard handling
Diffstat (limited to 'engines/cge/events.cpp')
-rw-r--r-- | engines/cge/events.cpp | 78 |
1 files changed, 43 insertions, 35 deletions
diff --git a/engines/cge/events.cpp b/engines/cge/events.cpp index 92c356fa5f..932c922c49 100644 --- a/engines/cge/events.cpp +++ b/engines/cge/events.cpp @@ -247,18 +247,46 @@ void MOUSE::ClrEvt(Sprite *spr) { EvtTail = EvtHead; } +/*----------------- EventManager interface -----------------*/ + +EventManager::EventManager() { + _quitFlag = false; +} + +void EventManager::poll() { + while (g_system->getEventManager()->pollEvent(_event)) { + switch (_event.type) { + case Common::EVENT_QUIT: + _quitFlag = true; + return; + case Common::EVENT_KEYDOWN: + case Common::EVENT_KEYUP: + _keyboard->NewKeyboard(_event); + handleEvents(); + break; + case Common::EVENT_MOUSEMOVE: + case Common::EVENT_LBUTTONDOWN: + case Common::EVENT_LBUTTONUP: + case Common::EVENT_RBUTTONDOWN: + case Common::EVENT_RBUTTONUP: + // TODO: Handle mouse events + //_mouse->NewMouse(event); + handleEvents(); + break; + } + } +} -void MOUSE::Tick(void) { - step(); +void EventManager::handleEvents(void) { while (EvtTail != EvtHead) { CGEEvent e = Evt[EvtTail]; if (e._msk) { - if (Hold && e._ptr != Hold) - Hold->touch(e._msk | ATTN, e._x - Hold->_x, e._y - Hold->_y); + if (_mouse->Hold && e._ptr != _mouse->Hold) + _mouse->Hold->touch(e._msk | ATTN, e._x - _mouse->Hold->_x, e._y - _mouse->Hold->_y); // update mouse cursor position if (e._msk & ROLL) - gotoxy(e._x, e._y); + _mouse->gotoxy(e._x, e._y); // activate current touched SPRITE if (e._ptr) { @@ -270,18 +298,18 @@ void MOUSE::Tick(void) { Sys->touch(e._msk, e._x, e._y); if (e._msk & L_DN) { - Hold = e._ptr; - if (Hold) { - Hold->_flags._hold = true; - hx = e._x - Hold->_x; - hy = e._y - Hold->_y; + _mouse->Hold = e._ptr; + if (_mouse->Hold) { + _mouse->Hold->_flags._hold = true; + _mouse->hx = e._x - _mouse->Hold->_x; + _mouse->hy = e._y - _mouse->Hold->_y; } } if (e._msk & L_UP) { - if (Hold) { - Hold->_flags._hold = false; - Hold = NULL; + if (_mouse->Hold) { + _mouse->Hold->_flags._hold = false; + _mouse->Hold = NULL; } } ///Touched = e.Ptr; @@ -292,28 +320,8 @@ void MOUSE::Tick(void) { } EvtTail = (EvtTail + 1) % EVT_MAX; } - if (Hold) - Hold->gotoxy(_x - hx, _y - hy); -} - -/*----------------- EventManager interface -----------------*/ - -EventManager::EventManager() { - _quitFlag = false; -} - -void EventManager::poll() { - while (g_system->getEventManager()->pollEvent(_event)) { - switch (_event.type) { - case Common::EVENT_QUIT: - _quitFlag = true; - return; - case Common::EVENT_KEYDOWN: - case Common::EVENT_KEYUP: - _keyboard->NewKeyboard(_event); - break; - } - } + if (_mouse->Hold) + _mouse->Hold->gotoxy(_mouse->_x - _mouse->hx, _mouse->_y - _mouse->hy); } } // End of namespace CGE |