aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/lab/eventman.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/engines/lab/eventman.cpp b/engines/lab/eventman.cpp
index b1b1a68e70..1c204b75eb 100644
--- a/engines/lab/eventman.cpp
+++ b/engines/lab/eventman.cpp
@@ -60,10 +60,10 @@ static byte MouseData[] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
Gadget *EventManager::checkGadgetHit(GadgetList *gadgetList, Common::Point pos) {
for (GadgetList::iterator gadgetItr = gadgetList->begin(); gadgetItr != gadgetList->end(); ++gadgetItr) {
Gadget *gadget = *gadgetItr;
- if ((pos.x >= gadget->x) && (pos.y >= gadget->y) &&
- (pos.x <= (gadget->x + gadget->_image->_width)) &&
- (pos.y <= (gadget->y + gadget->_image->_height)) &&
- !(GADGETOFF & gadget->_flags)) {
+ Common::Rect gadgetRect(gadget->x, gadget->y, gadget->x + gadget->_image->_width - 1, gadget->y + gadget->_image->_height - 1);
+ bool gadgetIsEnabled = !(gadget->_flags & GADGETOFF);
+
+ if (gadgetRect.contains(pos) && gadgetIsEnabled) {
if (_vm->_isHiRes) {
_hitGadget = gadget;
} else {
@@ -86,8 +86,6 @@ Gadget *EventManager::checkGadgetHit(GadgetList *gadgetList, Common::Point pos)
return NULL;
}
-
-
void EventManager::attachGadgetList(GadgetList *gadgetList) {
if (_screenGadgetList != gadgetList)
_lastGadgetHit = nullptr;