[Scummvm-cvs-logs] SF.net SVN: scummvm:[42907] scummvm/trunk/engines/scumm

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Wed Jul 29 22:35:50 CEST 2009


Revision: 42907
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42907&view=rev
Author:   fingolfin
Date:     2009-07-29 20:35:50 +0000 (Wed, 29 Jul 2009)

Log Message:
-----------
SCUMM: Fix verb/sentence handling in Indy3 mac (there, a double click must be used to trigger a verb/sentence)

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/script.cpp
    scummvm/trunk/engines/scumm/scumm.cpp
    scummvm/trunk/engines/scumm/scumm.h
    scummvm/trunk/engines/scumm/sound.cpp

Modified: scummvm/trunk/engines/scumm/script.cpp
===================================================================
--- scummvm/trunk/engines/scumm/script.cpp	2009-07-29 20:35:41 UTC (rev 42906)
+++ scummvm/trunk/engines/scumm/script.cpp	2009-07-29 20:35:50 UTC (rev 42907)
@@ -23,10 +23,9 @@
  *
  */
 
-
-
 #include "common/config-manager.h"
 #include "common/util.h"
+#include "common/system.h"
 
 #include "scumm/actor.h"
 #include "scumm/object.h"
@@ -1195,6 +1194,12 @@
 				args[1] = VAR(82 + (val - 100));
 			}
 		}
+
+		// 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.
+		uint32 time = _system->getMillis();
+		args[2] = (time < _lastInputScriptTime + 500);	// 500 ms double click delay
+		_lastInputScriptTime = time;
 	}
 
 	if (verbScript)

Modified: scummvm/trunk/engines/scumm/scumm.cpp
===================================================================
--- scummvm/trunk/engines/scumm/scumm.cpp	2009-07-29 20:35:41 UTC (rev 42906)
+++ scummvm/trunk/engines/scumm/scumm.cpp	2009-07-29 20:35:50 UTC (rev 42907)
@@ -184,6 +184,7 @@
 	_mouseAndKeyboardStat = 0;
 	_leftBtnPressed = 0;
 	_rightBtnPressed = 0;
+	_lastInputScriptTime = 0;
 	_bootParam = 0;
 	_dumpScripts = false;
 	_debugMode = 0;

Modified: scummvm/trunk/engines/scumm/scumm.h
===================================================================
--- scummvm/trunk/engines/scumm/scumm.h	2009-07-29 20:35:41 UTC (rev 42906)
+++ scummvm/trunk/engines/scumm/scumm.h	2009-07-29 20:35:50 UTC (rev 42907)
@@ -615,6 +615,12 @@
 	uint16 _mouseAndKeyboardStat;
 	byte _leftBtnPressed, _rightBtnPressed;
 
+	/**
+	 * Last time runInputScript was run (measured in terms of OSystem::getMillis()).
+	 * This is currently only used for Indy3 mac to detect "double clicks".
+	 */
+	uint32 _lastInputScriptTime;
+
 	/** The bootparam, to be passed to the script 1, the bootscript. */
 	int _bootParam;
 

Modified: scummvm/trunk/engines/scumm/sound.cpp
===================================================================
--- scummvm/trunk/engines/scumm/sound.cpp	2009-07-29 20:35:41 UTC (rev 42906)
+++ scummvm/trunk/engines/scumm/sound.cpp	2009-07-29 20:35:50 UTC (rev 42907)
@@ -23,6 +23,9 @@
  *
  */
 
+#include "common/config-manager.h"
+#include "common/timer.h"
+#include "common/util.h"
 
 #include "scumm/actor.h"
 #include "scumm/file.h"
@@ -32,10 +35,6 @@
 #include "scumm/sound.h"
 #include "scumm/util.h"
 
-#include "common/config-manager.h"
-#include "common/timer.h"
-#include "common/util.h"
-
 #include "sound/adpcm.h"
 #include "sound/audiocd.h"
 #include "sound/flac.h"
@@ -46,8 +45,6 @@
 #include "sound/vorbis.h"
 #include "sound/wave.h"
 
-
-
 namespace Scumm {
 
 struct MP3OffsetTable {					/* Compressed Sound (.SO3) */


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list