diff options
author | Strangerke | 2015-11-28 02:17:05 +0100 |
---|---|---|
committer | Willem Jan Palenstijn | 2015-12-23 21:33:43 +0100 |
commit | c485d9e8a616d475f9155de084012062fe9e5dc8 (patch) | |
tree | 950e3b117c445ead379f323f99e9ade12335b671 /engines/lab/engine.cpp | |
parent | ff2def7da187c5160443fc6166728f1fc59ff66e (diff) | |
download | scummvm-rg350-c485d9e8a616d475f9155de084012062fe9e5dc8.tar.gz scummvm-rg350-c485d9e8a616d475f9155de084012062fe9e5dc8.tar.bz2 scummvm-rg350-c485d9e8a616d475f9155de084012062fe9e5dc8.zip |
LAB: Some rework related to the mouse code
Diffstat (limited to 'engines/lab/engine.cpp')
-rw-r--r-- | engines/lab/engine.cpp | 61 |
1 files changed, 28 insertions, 33 deletions
diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp index 2d85dda3db..837529b846 100644 --- a/engines/lab/engine.cpp +++ b/engines/lab/engine.cpp @@ -638,7 +638,7 @@ void LabEngine::mainGameLoop() { IntuiMessage *Msg; uint32 Class; - uint16 Qualifier, MouseX, MouseY, ActionMode = 4; + uint16 Qualifier, ActionMode = 4; uint16 CurInv = MAPNUM, LastInv = MAPNUM, Old; bool ForceDraw = false, doit, GotMessage = true; @@ -742,6 +742,7 @@ void LabEngine::mainGameLoop() { interfaceOn(); Msg = getMsg(); + Common::Point curPos; if (Msg == NULL) { /* Does music load and next animation frame when you've run out of messages */ GotMessage = false; g_music->checkRoomMusic(); @@ -752,22 +753,16 @@ void LabEngine::mainGameLoop() { int result = followCrumbs(); if (result != 0) { - int x = 0, y = 0; - - WSDL_GetMousePos(&x, &y); - + curPos = WSDL_GetMousePos(); Class = GADGETUP; Qualifier = 0; - MouseX = x; - MouseY = y; - if (result == VKEY_UPARROW) { + if (result == VKEY_UPARROW) code = GadID = 7; - } else if (result == VKEY_LTARROW) { + else if (result == VKEY_LTARROW) code = GadID = 6; - } else if (result == VKEY_RTARROW) { + else if (result == VKEY_RTARROW) code = GadID = 8; - } GotMessage = true; mayShowCrumbIndicator(); @@ -784,8 +779,8 @@ void LabEngine::mainGameLoop() { Class = Msg->msgClass; code = Msg->code; Qualifier = Msg->qualifier; - MouseX = Msg->mouseX; - MouseY = Msg->mouseY; + curPos.x = Msg->mouseX; + curPos.y = Msg->mouseY; GadID = Msg->gadgetID; FollowingCrumbs = false; @@ -797,7 +792,7 @@ from_crumbs: if (code == 13) { /* The return key */ Class = MOUSEBUTTONS; Qualifier = IEQUALIFIER_LEFTBUTTON; - mouseXY(&MouseX, &MouseY); + curPos = getMousePos(); } else if (g_lab->getPlatform() == Common::kPlatformWindows && (code == 'b' || code == 'B')) { /* Start bread crumbs */ BreadCrumbs[0].RoomNum = 0; @@ -1169,10 +1164,10 @@ from_crumbs: doit = false; if (CPtr) { - if ((CPtr->CloseUpType == SPECIALLOCK) && MainDisplay) /* LAB: Labrinth specific code */ - mouseCombination(MouseX, MouseY); + if ((CPtr->CloseUpType == SPECIALLOCK) && MainDisplay) /* LAB: Labyrinth specific code */ + mouseCombination(curPos); else if ((CPtr->CloseUpType == SPECIALBRICK) && MainDisplay) - mouseTile(MouseX, MouseY); + mouseTile(curPos); else doit = true; } else @@ -1184,48 +1179,48 @@ from_crumbs: eatMessages(); if (ActionMode == 0) { /* Take something. */ - if (doActionRule(MouseX, MouseY, ActionMode, RoomNum, &CPtr)) + if (doActionRule(Common::Point(curPos.x, curPos.y), ActionMode, RoomNum, &CPtr)) CurFileName = NewFileName; - else if (takeItem(MouseX, MouseY, &CPtr)) + else if (takeItem(curPos.x, curPos.y, &CPtr)) drawStaticMessage(kTextTakeItem); - else if (doActionRule(MouseX, MouseY, TAKEDEF - 1, RoomNum, &CPtr)) + else if (doActionRule(curPos, TAKEDEF - 1, RoomNum, &CPtr)) CurFileName = NewFileName; - else if (doActionRule(MouseX, MouseY, TAKE - 1, 0, &CPtr)) + else if (doActionRule(curPos, TAKE - 1, 0, &CPtr)) CurFileName = NewFileName; - else if (MouseY < (VGAScaleY(149) + SVGACord(2))) + else if (curPos.y < (VGAScaleY(149) + SVGACord(2))) drawStaticMessage(kTextNothing); } else if ((ActionMode == 1) /* Manipulate an object */ || (ActionMode == 2) /* Open up a "door" */ || (ActionMode == 3)) { /* Close a "door" */ - if (doActionRule(MouseX, MouseY, ActionMode, RoomNum, &CPtr)) + if (doActionRule(curPos, ActionMode, RoomNum, &CPtr)) CurFileName = NewFileName; - else if (!doActionRule(MouseX, MouseY, ActionMode, 0, &CPtr)) { - if (MouseY < (VGAScaleY(149) + SVGACord(2))) + else if (!doActionRule(curPos, ActionMode, 0, &CPtr)) { + if (curPos.y < (VGAScaleY(149) + SVGACord(2))) drawStaticMessage(kTextNothing); } } else if (ActionMode == 4) { /* Look at closeups */ TempCPtr = CPtr; - setCurClose(MouseX, MouseY, &TempCPtr); + setCurClose(curPos, &TempCPtr); if (CPtr == TempCPtr) { - if (MouseY < (VGAScaleY(149) + SVGACord(2))) + if (curPos.y < (VGAScaleY(149) + SVGACord(2))) drawStaticMessage(kTextNothing); } else if (TempCPtr->GraphicName) { if (*(TempCPtr->GraphicName)) { DoBlack = true; CPtr = TempCPtr; - } else if (MouseY < (VGAScaleY(149) + SVGACord(2))) + } else if (curPos.y < (VGAScaleY(149) + SVGACord(2))) drawStaticMessage(kTextNothing); - } else if (MouseY < (VGAScaleY(149) + SVGACord(2))) + } else if (curPos.y < (VGAScaleY(149) + SVGACord(2))) drawStaticMessage(kTextNothing); } else if ((ActionMode == 5) && g_lab->_conditions->in(CurInv)) { /* Use an item on something else */ - if (doOperateRule(MouseX, MouseY, CurInv, &CPtr)) { + if (doOperateRule(curPos.x, curPos.y, CurInv, &CPtr)) { CurFileName = NewFileName; if (!g_lab->_conditions->in(CurInv)) decIncInv(&CurInv, false); - } else if (MouseY < (VGAScaleY(149) + SVGACord(2))) + } else if (curPos.y < (VGAScaleY(149) + SVGACord(2))) drawStaticMessage(kTextNothing); } } @@ -1238,7 +1233,7 @@ from_crumbs: if (HCPtr == NULL) { TempCPtr = CPtr; - setCurClose(MouseX, MouseY, &TempCPtr); + setCurClose(curPos, &TempCPtr); if ((TempCPtr == NULL) || (TempCPtr == CPtr)) { if (CPtr == NULL) @@ -1259,7 +1254,7 @@ from_crumbs: } if (HCPtr) - mouseMove(scaleX((HCPtr->x1 + HCPtr->x2) / 2), scaleY((HCPtr->y1 + HCPtr->y2) / 2)); + setMousePos(Common::Point(scaleX((HCPtr->x1 + HCPtr->x2) / 2), scaleY((HCPtr->y1 + HCPtr->y2) / 2))); } else if ((Class == MOUSEBUTTONS) && (IEQUALIFIER_RBUTTON & Qualifier)) { eatMessages(); Alternate = !Alternate; |