aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk
diff options
context:
space:
mode:
authorBastien Bouclet2018-07-21 09:51:17 +0200
committerBastien Bouclet2018-07-21 09:56:33 +0200
commit1f914ea7591dd457e4220b1eccb85cc0bbee1d42 (patch)
treeebb08a3170456b57f0882a7fc9baac73ee473658 /engines/mohawk
parent04585b60ec8ffc406febd09a45c7512057be3fa8 (diff)
downloadscummvm-rg350-1f914ea7591dd457e4220b1eccb85cc0bbee1d42.tar.gz
scummvm-rg350-1f914ea7591dd457e4220b1eccb85cc0bbee1d42.tar.bz2
scummvm-rg350-1f914ea7591dd457e4220b1eccb85cc0bbee1d42.zip
MOHAWK: MYST: Don't call the mouse up handler if executeMouseUp was used
Fixes Trac#10573.
Diffstat (limited to 'engines/mohawk')
-rw-r--r--engines/mohawk/myst_card.cpp4
-rw-r--r--engines/mohawk/myst_card.h7
-rw-r--r--engines/mohawk/myst_stacks/channelwood.cpp3
3 files changed, 14 insertions, 0 deletions
diff --git a/engines/mohawk/myst_card.cpp b/engines/mohawk/myst_card.cpp
index a58720264d..691f07d3d1 100644
--- a/engines/mohawk/myst_card.cpp
+++ b/engines/mohawk/myst_card.cpp
@@ -453,4 +453,8 @@ bool MystCard::isDraggingResource() const {
return _clickedResource != nullptr;
}
+void MystCard::resetClickedResource() {
+ _clickedResource = nullptr;
+}
+
} // End of namespace Mohawk
diff --git a/engines/mohawk/myst_card.h b/engines/mohawk/myst_card.h
index 056d211682..7a4070171c 100644
--- a/engines/mohawk/myst_card.h
+++ b/engines/mohawk/myst_card.h
@@ -67,6 +67,13 @@ public:
/** Set the card's currently clicked resource to the currently active resource */
MystArea *forceUpdateClickedResource(const Common::Point &mouse);
+ /** Clear the card's currently clicked resource
+ *
+ * Used to indicate the mouse up event handler should not be called.
+ * (Possibly because it was already called by the gameplay logic
+ */
+ void resetClickedResource();
+
/**
* Get the mouse cursor that should be used when hovering the currently active resource
*
diff --git a/engines/mohawk/myst_stacks/channelwood.cpp b/engines/mohawk/myst_stacks/channelwood.cpp
index 7e4e5e12b1..eb533213af 100644
--- a/engines/mohawk/myst_stacks/channelwood.cpp
+++ b/engines/mohawk/myst_stacks/channelwood.cpp
@@ -636,6 +636,9 @@ void Channelwood::o_hologramTemple(uint16 var, const ArgumentsArray &args) {
}
void Channelwood::o_executeMouseUp(uint16 var, const ArgumentsArray &args) {
+ // Clear the clicked resource so the mouse up event is not called a second time.
+ _vm->getCard()->resetClickedResource();
+
MystArea *resource = _vm->getCard()->getResource<MystArea>(args[0]);
resource->handleMouseUp();
}