aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorTorbjörn Andersson2012-12-15 00:28:44 +0100
committerTorbjörn Andersson2012-12-15 00:35:00 +0100
commit69cdccd96219e04e78b3a9f55e56723e218ef109 (patch)
tree8a4ef86933d9742054d9bd0555fa1a03024ad295 /engines/scumm
parent1f712c64ff49755df46d1dfe147993f50cc2382d (diff)
downloadscummvm-rg350-69cdccd96219e04e78b3a9f55e56723e218ef109.tar.gz
scummvm-rg350-69cdccd96219e04e78b3a9f55e56723e218ef109.tar.bz2
scummvm-rg350-69cdccd96219e04e78b3a9f55e56723e218ef109.zip
SCUMM: Handle double-clicks in Mac Loom (bug #3588164)
Unlike the EGA DOS version, it doesn't seem to be the scripts that keep track of double-clicks. Instead, the engine sets a variable to indicate them. Unlike the DOS version, we don't check that the second click happens close enough on the screen to the first one. We could, but it seemed needlessly complicated.
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/script.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp
index d8c4948ea8..8587fb8092 100644
--- a/engines/scumm/script.cpp
+++ b/engines/scumm/script.cpp
@@ -1366,9 +1366,15 @@ void ScummEngine::runInputScript(int clickArea, int val, int mode) {
// Clicks are handled differently in Indy3 mac: param 2 of the
// input script is set to 0 for normal clicks, and to 1 for double clicks.
+ // The EGA DOS version of Loom also checks that the second click happens
+ // close enough to the first one, but that seems like overkill.
uint32 time = _system->getMillis();
args[2] = (time < _lastInputScriptTime + 500); // 500 ms double click delay
_lastInputScriptTime = time;
+ } else if (_game.id == GID_LOOM && _game.platform == Common::kPlatformMacintosh) {
+ uint32 time = _system->getMillis();
+ VAR(52) = (time < _lastInputScriptTime + 500); // 500 ms double click delay
+ _lastInputScriptTime = time;
}
if (verbScript)