diff options
author | Eugene Sandulenko | 2009-06-06 17:47:29 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2009-06-06 17:47:29 +0000 |
commit | d6a4dbeb1d41d7d51e58822db9e4036fd1fbeeae (patch) | |
tree | 22b1d8595e0f90e7f3ebc22b212fcd87b07ef61b /engines/agi/agi.cpp | |
parent | 8792628a465b56c1a11e24867c5a6979a0c7cc1f (diff) | |
download | scummvm-rg350-d6a4dbeb1d41d7d51e58822db9e4036fd1fbeeae.tar.gz scummvm-rg350-d6a4dbeb1d41d7d51e58822db9e4036fd1fbeeae.tar.bz2 scummvm-rg350-d6a4dbeb1d41d7d51e58822db9e4036fd1fbeeae.zip |
Implement fence.mouse opcode
svn-id: r41258
Diffstat (limited to 'engines/agi/agi.cpp')
-rw-r--r-- | engines/agi/agi.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index cb49824f81..4431f5d0c4 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -103,6 +103,20 @@ void AgiEngine::processEvents() { case Common::EVENT_MOUSEMOVE: g_mouse.x = event.mouse.x; g_mouse.y = event.mouse.y; + + if (!_game.mouseFence.isEmpty()) { + if (g_mouse.x < _game.mouseFence.left) + g_mouse.x = _game.mouseFence.left; + if (g_mouse.x > _game.mouseFence.right) + g_mouse.x = _game.mouseFence.right; + if (g_mouse.y < _game.mouseFence.top) + g_mouse.y = _game.mouseFence.top; + if (g_mouse.y > _game.mouseFence.bottom) + g_mouse.y = _game.mouseFence.bottom; + + g_system->warpMouse(g_mouse.x, g_mouse.y); + } + break; case Common::EVENT_LBUTTONUP: case Common::EVENT_RBUTTONUP: @@ -473,6 +487,8 @@ int AgiEngine::agiInit() { _egoHoldKey = false; + _game.mouseFence.setWidth(0); // Reset + return ec; } |