diff options
author | Travis Howell | 2007-05-17 09:00:14 +0000 |
---|---|---|
committer | Travis Howell | 2007-05-17 09:00:14 +0000 |
commit | d4191508f6a036169498037e00000e026d528632 (patch) | |
tree | 9c79fb9cd79217d6b643bbbbf89464101b7a1673 /engines/agos/cursor.cpp | |
parent | 565d0d0a7d4b4f87ed402bb1c237afc7f8d85ca7 (diff) | |
download | scummvm-rg350-d4191508f6a036169498037e00000e026d528632.tar.gz scummvm-rg350-d4191508f6a036169498037e00000e026d528632.tar.bz2 scummvm-rg350-d4191508f6a036169498037e00000e026d528632.zip |
Cleanup.
svn-id: r26858
Diffstat (limited to 'engines/agos/cursor.cpp')
-rw-r--r-- | engines/agos/cursor.cpp | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/engines/agos/cursor.cpp b/engines/agos/cursor.cpp index 47ec6797d3..b6c7a52c24 100644 --- a/engines/agos/cursor.cpp +++ b/engines/agos/cursor.cpp @@ -300,7 +300,7 @@ static const byte _mouseOffs[29 * 32] = { 0,0,10,7,10,6,10,5,10,4,10,3,10,4,10,5,10,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; -void AGOSEngine::handleMouseMoved() { +void AGOSEngine_PuzzlePack::handleMouseMoved() { uint x; if (getGameId() != GID_DIMP && _mouseHideCount) { @@ -311,6 +311,38 @@ void AGOSEngine::handleMouseMoved() { CursorMan.showMouse(true); _mouse = _eventMan->getMousePos(); + x = 0; + if (_lastHitArea3 == 0 && _leftButtonDown != 0) { + _verbHitArea = 300; + _leftButtonDown = 0; + x = 1; + } + + if (_rightButtonDown != 0) { + _verbHitArea = (getGameId() == GID_DIMP) ? 301 : 300; + _rightButtonDown = 0; + x = 1; + } + + boxController(_mouse.x, _mouse.y, x); + _lastHitArea3 = _lastHitArea; + if (x == 1 && _lastHitArea == NULL) + _lastHitArea3 = (HitArea *) -1; + + drawMousePointer(); +} + +void AGOSEngine::handleMouseMoved() { + uint x; + + if (_mouseHideCount) { + CursorMan.showMouse(false); + return; + } + + CursorMan.showMouse(true); + _mouse = _eventMan->getMousePos(); + if (_defaultVerb) { uint id = 101; if (_mouse.y >= 136) @@ -386,8 +418,6 @@ void AGOSEngine::handleMouseMoved() { } } - // FIXME: The value of _mouseOld is *never* changed and hence - // always equal to (0,0). This seems like a bug. if (_mouse != _mouseOld) _needHitAreaRecalc++; @@ -416,14 +446,8 @@ void AGOSEngine::handleMouseMoved() { x = 0; if (_lastHitArea3 == 0 && _leftButtonDown != 0) { - if (getGameType() == GType_PP) - _verbHitArea = 300; _leftButtonDown = 0; x = 1; - } else if (getGameType() == GType_PP && _rightButtonDown != 0) { - _verbHitArea = 300; - _rightButtonDown = 0; - x = 1; } else { if (_litBoxFlag == 0 && _needHitAreaRecalc == 0) goto get_out; @@ -436,6 +460,8 @@ boxstuff: _lastHitArea3 = (HitArea *) -1; get_out: + + _mouseOld = _mouse; drawMousePointer(); _needHitAreaRecalc = 0; |