[Scummvm-cvs-logs] scummvm master -> 69cdccd96219e04e78b3a9f55e56723e218ef109

eriktorbjorn eriktorbjorn at telia.com
Sat Dec 15 00:35:54 CET 2012


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
69cdccd962 SCUMM: Handle double-clicks in Mac Loom (bug #3588164)


Commit: 69cdccd96219e04e78b3a9f55e56723e218ef109
    https://github.com/scummvm/scummvm/commit/69cdccd96219e04e78b3a9f55e56723e218ef109
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2012-12-14T15:35:00-08:00

Commit Message:
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.

Changed paths:
    NEWS
    engines/scumm/script.cpp



diff --git a/NEWS b/NEWS
index 0dd2d23..31d57de 100644
--- a/NEWS
+++ b/NEWS
@@ -37,6 +37,7 @@ For a more comprehensive changelog of the latest experimental code, see:
      now uses the original instruments, rather than approximating them with
      General MIDI instruments, and should sound a lot closer to the original.
    - Added sound and music support for the Macintosh version of Loom.
+   - Handle double-clicking in the Macintosh version of Loom.
 
 1.5.0 (2012-07-27)
  New Games:
diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp
index d8c4948..8587fb8 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)






More information about the Scummvm-git-logs mailing list