diff options
author | Littleboy | 2011-05-04 10:10:46 -0400 |
---|---|---|
committer | Littleboy | 2011-05-10 19:18:26 -0400 |
commit | 3088acf69a41dc0e942faad1b624fe097c690a3e (patch) | |
tree | 989a3ae9eae02796d9ba3ec1962bd0e55b15fc9c | |
parent | 1516ba73671d59ab5d6e26602dbb1e5055cbb05c (diff) | |
download | scummvm-rg350-3088acf69a41dc0e942faad1b624fe097c690a3e.tar.gz scummvm-rg350-3088acf69a41dc0e942faad1b624fe097c690a3e.tar.bz2 scummvm-rg350-3088acf69a41dc0e942faad1b624fe097c690a3e.zip |
LASTEXPRESS: Add button pressed state for inventory handling
-rw-r--r-- | engines/lastexpress/game/inventory.cpp | 6 | ||||
-rw-r--r-- | engines/lastexpress/game/state.h | 6 | ||||
-rw-r--r-- | engines/lastexpress/lastexpress.cpp | 3 |
3 files changed, 13 insertions, 2 deletions
diff --git a/engines/lastexpress/game/inventory.cpp b/engines/lastexpress/game/inventory.cpp index 25db782c62..5df745d641 100644 --- a/engines/lastexpress/game/inventory.cpp +++ b/engines/lastexpress/game/inventory.cpp @@ -186,7 +186,7 @@ void Inventory::handleMouseEvent(const Common::Event &ev) { error("[Inventory::handleMouseEvent] Click on highlighted item not implemented"); } } else { - error("[Inventory::handleMouseEvent] Default handling of open menu not implemented"); + warning("[Inventory::handleMouseEvent] Default handling of open menu not implemented"); } } else { if (_portraitHighlighted) { @@ -251,6 +251,8 @@ void Inventory::handleMouseEvent(const Common::Event &ev) { askForRedraw(); } + return; + // Stop processing if we are not looking at an item already if (!getState()->sceneUseBackup) { _isOpened = false; @@ -287,7 +289,7 @@ void Inventory::handleMouseEvent(const Common::Event &ev) { if (!_portraitHighlighted && !_isOpened) { drawItem((CursorStyle)getProgress().portrait, 0, 0); _portraitHighlighted = true; - } else if (!_isOpened || (ev.type == Common::EVENT_LBUTTONDOWN || ev.type == Common::EVENT_LBUTTONUP)) { + } else if (!_isOpened || getFlags()->mouseLeftPressed) { // Do nothing } else if (_isOpened) { close(); diff --git a/engines/lastexpress/game/state.h b/engines/lastexpress/game/state.h index 4196bfe06a..663550acc2 100644 --- a/engines/lastexpress/game/state.h +++ b/engines/lastexpress/game/state.h @@ -566,6 +566,9 @@ public: bool mouseLeftClick; bool mouseRightClick; + bool mouseLeftPressed; + bool mouseRightPressed; + bool flag_entities_0; bool flag_entities_1; @@ -587,6 +590,9 @@ public: mouseRightClick = false; mouseLeftClick = false; + mouseLeftPressed = false; + mouseRightPressed = false; + flag_entities_0 = false; flag_entities_1 = false; diff --git a/engines/lastexpress/lastexpress.cpp b/engines/lastexpress/lastexpress.cpp index 7c08fef627..535f5e86b7 100644 --- a/engines/lastexpress/lastexpress.cpp +++ b/engines/lastexpress/lastexpress.cpp @@ -215,6 +215,7 @@ bool LastExpressEngine::handleEvents() { case Common::EVENT_LBUTTONUP: case Common::EVENT_LBUTTONDOWN: getGameLogic()->getGameState()->getGameFlags()->mouseLeftClick = true; + getGameLogic()->getGameState()->getGameFlags()->mouseLeftPressed = (ev.type == Common::EVENT_LBUTTONDOWN) ? true : false; // Adjust frameInterval flag if (_frameCounter < _lastFrameCount + 30) @@ -228,6 +229,8 @@ bool LastExpressEngine::handleEvents() { case Common::EVENT_RBUTTONUP: case Common::EVENT_RBUTTONDOWN: getGameLogic()->getGameState()->getGameFlags()->mouseRightClick = true; + getGameLogic()->getGameState()->getGameFlags()->mouseRightPressed = (ev.type == Common::EVENT_RBUTTONDOWN) ? true : false; + if (_eventMouse && _eventMouse->isValid()) (*_eventMouse)(ev); break; |