aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/cursor.cpp
diff options
context:
space:
mode:
authorTravis Howell2007-05-17 09:00:14 +0000
committerTravis Howell2007-05-17 09:00:14 +0000
commitd4191508f6a036169498037e00000e026d528632 (patch)
tree9c79fb9cd79217d6b643bbbbf89464101b7a1673 /engines/agos/cursor.cpp
parent565d0d0a7d4b4f87ed402bb1c237afc7f8d85ca7 (diff)
downloadscummvm-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.cpp44
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;