void Events::pollEvents() { checkForNextFrameCounter(); Common::Event event; if (!g_system->getEventManager()->pollEvent(event)) return; switch (event.type) { case Common::EVENT_MOUSEMOVE: _mousePos = event.mouse; eventTarget()->mouseMove(_mousePos); break; case Common::EVENT_LBUTTONDOWN: _specialButtons |= MK_LBUTTON; _mousePos = event.mouse; eventTarget()->leftButtonDown(_mousePos); break; case Common::EVENT_LBUTTONUP: _specialButtons &= ~MK_LBUTTON; _mousePos = event.mouse; eventTarget()->leftButtonUp(_mousePos); break; case Common::EVENT_MBUTTONDOWN: _specialButtons |= MK_MBUTTON; _mousePos = event.mouse; eventTarget()->middleButtonDown(_mousePos); break; case Common::EVENT_MBUTTONUP: _specialButtons &= ~MK_MBUTTON; _mousePos = event.mouse; eventTarget()->middleButtonUp(_mousePos); break; case Common::EVENT_RBUTTONDOWN: _specialButtons |= MK_RBUTTON; _mousePos = event.mouse; eventTarget()->rightButtonDown(_mousePos); break; case Common::EVENT_RBUTTONUP: _specialButtons &= ~MK_RBUTTON; _mousePos = event.mouse; eventTarget()->rightButtonUp(_mousePos); break; case Common::EVENT_WHEELUP: case Common::EVENT_WHEELDOWN: _mousePos = event.mouse; eventTarget()->mouseWheel(_mousePos, event.type == Common::EVENT_WHEELUP); break; case Common::EVENT_KEYDOWN: handleKbdSpecial(event.kbd); eventTarget()->keyDown(event.kbd); break; case Common::EVENT_KEYUP: handleKbdSpecial(event.kbd); eventTarget()->keyUp(event.kbd); break; default: break; } }
void CMainGameWindow::keyDown(Common::KeyState keyState) { handleKbdSpecial(keyState); if (keyState.keycode == Common::KEYCODE_d && (keyState.flags & Common::KBD_CTRL)) { // Attach to the debugger _vm->_debugger->attach(); _vm->_debugger->onFrame(); } if (_inputAllowed) _gameManager->_inputTranslator.keyDown(keyState); }
void CMainGameWindow::keyUp(Common::KeyState keyState) { handleKbdSpecial(keyState); }