diff options
Diffstat (limited to 'engines/gob/game.cpp')
-rw-r--r-- | engines/gob/game.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/engines/gob/game.cpp b/engines/gob/game.cpp index 3d4d01d46d..87e1eef48b 100644 --- a/engines/gob/game.cpp +++ b/engines/gob/game.cpp @@ -377,6 +377,37 @@ void Game::freeSoundSlot(int16 slot) { _soundSamples[slot] = 0; } +int16 Game::checkKeys(int16 *pMouseX, int16 *pMouseY, int16 *pButtons, char handleMouse) { + _vm->_util->processInput(); + + if (_vm->_mult->_multData && (_vm->_global->_inter_variables != 0) && + (VAR(58) != 0)) { + if (_vm->_mult->_multData->frameStart != (int)VAR(58) - 1) + _vm->_mult->_multData->frameStart++; + else + _vm->_mult->_multData->frameStart = 0; + + _vm->_mult->playMult(_vm->_mult->_multData->frameStart + VAR(57), + _vm->_mult->_multData->frameStart + VAR(57), 1, handleMouse); + } + + if (_vm->_inter->_soundEndTimeKey != 0 + && _vm->_util->getTimeKey() >= _vm->_inter->_soundEndTimeKey) { + _vm->_snd->stopSound(_vm->_inter->_soundStopVal); + _vm->_inter->_soundEndTimeKey = 0; + } + + if (_vm->_global->_useMouse == 0) + error("checkKeys: Can't work without mouse!"); + + _vm->_util->getMouseState(pMouseX, pMouseY, pButtons); + + if (*pButtons == 3) + *pButtons = 0; + + return _vm->_util->checkKey(); +} + int16 Game::adjustKey(int16 key) { if (key <= 0x60 || key >= 0x7b) return key; |