LAB: Rename fromCrumbs() to processEvent() and simplify it a bit
This commit is contained in:
parent
9239f4d774
commit
7f2b69b75c
3 changed files with 41 additions and 60 deletions
|
@ -498,7 +498,7 @@ void LabEngine::mainGameLoop() {
|
||||||
gotMessage = true;
|
gotMessage = true;
|
||||||
mayShowCrumbIndicator();
|
mayShowCrumbIndicator();
|
||||||
_graphics->screenUpdate();
|
_graphics->screenUpdate();
|
||||||
if (!fromCrumbs(kMessageButtonUp, code, 0, _event->updateAndGetMousePos(), curInv, curMsg, forceDraw, code, actionMode))
|
if (!processEvent(kMessageButtonUp, code, 0, _event->updateAndGetMousePos(), curInv, curMsg, forceDraw, code, actionMode))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -508,7 +508,7 @@ void LabEngine::mainGameLoop() {
|
||||||
} else {
|
} else {
|
||||||
gotMessage = true;
|
gotMessage = true;
|
||||||
_followingCrumbs = false;
|
_followingCrumbs = false;
|
||||||
if (!fromCrumbs(curMsg->_msgClass, curMsg->_code, curMsg->_qualifier, curMsg->_mouse, curInv, curMsg, forceDraw, curMsg->_code, actionMode))
|
if (!processEvent(curMsg->_msgClass, curMsg->_code, curMsg->_qualifier, curMsg->_mouse, curInv, curMsg, forceDraw, curMsg->_code, actionMode))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -533,59 +533,46 @@ void LabEngine::showLab2Teaser() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
|
bool LabEngine::processEvent(MessageClass tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
|
||||||
uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode) {
|
uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode) {
|
||||||
uint32 msgClass = tmpClass;
|
MessageClass msgClass = tmpClass;
|
||||||
Common::Point curPos = tmpPos;
|
Common::Point curPos = tmpPos;
|
||||||
|
|
||||||
uint16 oldDirection = 0;
|
uint16 oldDirection = 0;
|
||||||
uint16 lastInv = kItemMap;
|
uint16 lastInv = kItemMap;
|
||||||
bool leftButtonClick = false;
|
|
||||||
bool rightButtonClick = false;
|
if (code == Common::KEYCODE_RETURN)
|
||||||
|
msgClass = kMessageLeftClick;
|
||||||
|
|
||||||
|
bool leftButtonClick = (msgClass == kMessageLeftClick);
|
||||||
|
bool rightButtonClick = (msgClass == kMessageRightClick);
|
||||||
|
|
||||||
_anim->_doBlack = false;
|
_anim->_doBlack = false;
|
||||||
|
|
||||||
if (shouldQuit())
|
if (shouldQuit())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ((msgClass == kMessageRawKey) && !_graphics->_longWinInFront) {
|
if (msgClass == kMessageRawKey && !_graphics->_longWinInFront) {
|
||||||
if (!processKey(curMsg, msgClass, qualifier, curPos, curInv, forceDraw, code))
|
if (!processKey(curMsg, msgClass, qualifier, curPos, curInv, forceDraw, code))
|
||||||
return false;
|
return false;
|
||||||
}
|
} else if ((msgClass == kMessageRawKey || leftButtonClick || rightButtonClick) && _graphics->_longWinInFront) {
|
||||||
|
_graphics->_longWinInFront = false;
|
||||||
leftButtonClick = (msgClass == kMessageLeftClick);
|
_graphics->drawPanel();
|
||||||
rightButtonClick = (msgClass == kMessageRightClick);
|
drawRoomMessage(curInv, _closeDataPtr);
|
||||||
|
_graphics->screenUpdate();
|
||||||
if (_graphics->_longWinInFront) {
|
} else if (msgClass == kMessageButtonUp) {
|
||||||
if ((msgClass == kMessageRawKey) || (leftButtonClick || rightButtonClick)) {
|
if (!_alternate)
|
||||||
_graphics->_longWinInFront = false;
|
processMainButton(curInv, lastInv, oldDirection, forceDraw, buttonId, actionMode);
|
||||||
_graphics->drawPanel();
|
else
|
||||||
drawRoomMessage(curInv, _closeDataPtr);
|
processAltButton(curInv, lastInv, buttonId, actionMode);
|
||||||
_graphics->screenUpdate();
|
|
||||||
}
|
|
||||||
} else if ((msgClass == kMessageButtonUp) && !_alternate) {
|
|
||||||
processMainButton(curInv, lastInv, oldDirection, forceDraw, buttonId, actionMode);
|
|
||||||
} else if ((msgClass == kMessageButtonUp) && _alternate) {
|
|
||||||
processAltButton(curInv, lastInv, buttonId, actionMode);
|
|
||||||
} else if (leftButtonClick && _mainDisplay) {
|
} else if (leftButtonClick && _mainDisplay) {
|
||||||
interfaceOff();
|
interfaceOff();
|
||||||
_mainDisplay = true;
|
_mainDisplay = true;
|
||||||
|
|
||||||
if (_closeDataPtr) {
|
if (_closeDataPtr && _closeDataPtr->_closeUpType == SPECIALLOCK)
|
||||||
switch (_closeDataPtr->_closeUpType) {
|
_tilePuzzle->mouseCombination(curPos);
|
||||||
case SPECIALLOCK:
|
else if (_closeDataPtr && _closeDataPtr->_closeUpType == SPECIALBRICK)
|
||||||
if (_mainDisplay)
|
_tilePuzzle->mouseTile(curPos);
|
||||||
_tilePuzzle->mouseCombination(curPos);
|
else
|
||||||
break;
|
|
||||||
case SPECIALBRICK:
|
|
||||||
if (_mainDisplay)
|
|
||||||
_tilePuzzle->mouseTile(curPos);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
performAction(actionMode, curPos, curInv);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
performAction(actionMode, curPos, curInv);
|
performAction(actionMode, curPos, curInv);
|
||||||
|
|
||||||
mayShowCrumbIndicator();
|
mayShowCrumbIndicator();
|
||||||
|
@ -610,7 +597,7 @@ bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Commo
|
||||||
|
|
||||||
mayShowCrumbIndicator();
|
mayShowCrumbIndicator();
|
||||||
_graphics->screenUpdate();
|
_graphics->screenUpdate();
|
||||||
} else if (msgClass == kMessageMoveCursorToCloseup) {
|
} else if (code == Common::KEYCODE_TAB) {
|
||||||
CloseDataPtr tmpClosePtr = _closeDataPtr;
|
CloseDataPtr tmpClosePtr = _closeDataPtr;
|
||||||
|
|
||||||
// get next close-up in list after the one pointed to by curPos
|
// get next close-up in list after the one pointed to by curPos
|
||||||
|
@ -623,13 +610,8 @@ bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Commo
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LabEngine::processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code) {
|
bool LabEngine::processKey(IntuiMessage *curMsg, uint32 msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code) {
|
||||||
if (code == Common::KEYCODE_RETURN) {
|
if ((getPlatform() == Common::kPlatformWindows) && (code == Common::KEYCODE_b)) {
|
||||||
// The return key
|
|
||||||
msgClass = kMessageLeftClick;
|
|
||||||
qualifier = 0;
|
|
||||||
curPos = _event->getMousePos();
|
|
||||||
} else if ((getPlatform() == Common::kPlatformWindows) && (code == Common::KEYCODE_b)) {
|
|
||||||
// Start bread crumbs
|
// Start bread crumbs
|
||||||
_breadCrumbs[0]._roomNum = 0;
|
_breadCrumbs[0]._roomNum = 0;
|
||||||
_numCrumbs = 0;
|
_numCrumbs = 0;
|
||||||
|
@ -697,9 +679,7 @@ bool LabEngine::processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &quali
|
||||||
|
|
||||||
forceDraw = true;
|
forceDraw = true;
|
||||||
interfaceOn();
|
interfaceOn();
|
||||||
} else if (code == Common::KEYCODE_TAB)
|
} else if (code == Common::KEYCODE_ESCAPE)
|
||||||
msgClass = kMessageMoveCursorToCloseup;
|
|
||||||
else if (code == Common::KEYCODE_ESCAPE)
|
|
||||||
_closeDataPtr = nullptr;
|
_closeDataPtr = nullptr;
|
||||||
|
|
||||||
eatMessages();
|
eatMessages();
|
||||||
|
@ -734,6 +714,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi
|
||||||
drawStaticMessage(kTextTakeWhat + buttonId);
|
drawStaticMessage(kTextTakeWhat + buttonId);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kButtonInventory:
|
case kButtonInventory:
|
||||||
eatMessages();
|
eatMessages();
|
||||||
|
|
||||||
|
@ -835,6 +816,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi
|
||||||
|
|
||||||
mayShowCrumbIndicator();
|
mayShowCrumbIndicator();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kButtonMap:
|
case kButtonMap:
|
||||||
doUse(kItemMap);
|
doUse(kItemMap);
|
||||||
|
|
||||||
|
|
|
@ -38,14 +38,6 @@ namespace Lab {
|
||||||
class LabEngine;
|
class LabEngine;
|
||||||
class Image;
|
class Image;
|
||||||
|
|
||||||
enum MessageClass {
|
|
||||||
kMessageLeftClick,
|
|
||||||
kMessageRightClick,
|
|
||||||
kMessageButtonUp,
|
|
||||||
kMessageRawKey,
|
|
||||||
kMessageMoveCursorToCloseup
|
|
||||||
};
|
|
||||||
|
|
||||||
struct IntuiMessage {
|
struct IntuiMessage {
|
||||||
MessageClass _msgClass;
|
MessageClass _msgClass;
|
||||||
uint16 _code; // KeyCode or Button Id
|
uint16 _code; // KeyCode or Button Id
|
||||||
|
|
|
@ -114,6 +114,13 @@ enum MainButton {
|
||||||
kButtonMap
|
kButtonMap
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum MessageClass {
|
||||||
|
kMessageLeftClick,
|
||||||
|
kMessageRightClick,
|
||||||
|
kMessageButtonUp,
|
||||||
|
kMessageRawKey
|
||||||
|
};
|
||||||
|
|
||||||
class LabEngine : public Engine {
|
class LabEngine : public Engine {
|
||||||
private:
|
private:
|
||||||
bool _interfaceOff;
|
bool _interfaceOff;
|
||||||
|
@ -366,7 +373,7 @@ private:
|
||||||
MainButton followCrumbs();
|
MainButton followCrumbs();
|
||||||
void freeMapData();
|
void freeMapData();
|
||||||
void freeScreens();
|
void freeScreens();
|
||||||
bool fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
|
bool processEvent(MessageClass tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
|
||||||
uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode);
|
uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -469,7 +476,7 @@ private:
|
||||||
* Does the turn page wipe.
|
* Does the turn page wipe.
|
||||||
*/
|
*/
|
||||||
void turnPage(bool fromLeft);
|
void turnPage(bool fromLeft);
|
||||||
bool processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code);
|
bool processKey(IntuiMessage *curMsg, uint32 msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code);
|
||||||
void processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDirection, bool &forceDraw, uint16 buttonId, uint16 &actionMode);
|
void processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDirection, bool &forceDraw, uint16 buttonId, uint16 &actionMode);
|
||||||
void processAltButton(uint16 &curInv, uint16 &lastInv, uint16 buttonId, uint16 &actionMode);
|
void processAltButton(uint16 &curInv, uint16 &lastInv, uint16 buttonId, uint16 &actionMode);
|
||||||
void performAction(uint16 actionMode, Common::Point curPos, uint16 &curInv);
|
void performAction(uint16 actionMode, Common::Point curPos, uint16 &curInv);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue