[Scummvm-cvs-logs] SF.net SVN: scummvm: [23233] scummvm/trunk/engines/sky

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Wed Jun 21 17:05:18 CEST 2006


Revision: 23233
Author:   eriktorbjorn
Date:     2006-06-21 08:05:12 -0700 (Wed, 21 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=23233&view=rev

Log Message:
-----------
Match the original behaviour more closely when examining inventory items. The
text is displayed at least 800 ms. See bug #1181865.

Modified Paths:
--------------
    scummvm/trunk/engines/sky/logic.cpp
    scummvm/trunk/engines/sky/mouse.cpp
    scummvm/trunk/engines/sky/mouse.h
Modified: scummvm/trunk/engines/sky/logic.cpp
===================================================================
--- scummvm/trunk/engines/sky/logic.cpp	2006-06-21 14:17:45 UTC (rev 23232)
+++ scummvm/trunk/engines/sky/logic.cpp	2006-06-21 15:05:12 UTC (rev 23233)
@@ -2385,7 +2385,7 @@
 	fnNoHuman(0, 0, 0);
 	_skyMouse->lockMouse();
 
-	_skyMouse->waitMouseNotPressed();
+	_skyMouse->waitMouseNotPressed(800);
 
 	_skyMouse->unlockMouse();
 	fnAddHuman(0, 0, 0);

Modified: scummvm/trunk/engines/sky/mouse.cpp
===================================================================
--- scummvm/trunk/engines/sky/mouse.cpp	2006-06-21 14:17:45 UTC (rev 23232)
+++ scummvm/trunk/engines/sky/mouse.cpp	2006-06-21 15:05:12 UTC (rev 23233)
@@ -167,17 +167,34 @@
 	//drawMouse();
 }
 
-void Mouse::waitMouseNotPressed(void) {
+void Mouse::waitMouseNotPressed(int minDelay) {
 
 	bool mousePressed = true;
+	uint32 now = _system->getMillis();
 	OSystem::Event event;
-	while (mousePressed) {
-		_system->delayMillis(20);
+	while (mousePressed || _system->getMillis() < now + minDelay) {
 		while (_system->pollEvent(event)) {
-			if ((event.type == OSystem::EVENT_LBUTTONUP) ||
-				(event.type == OSystem::EVENT_QUIT))
+			switch (event.type) {
+			case OSystem::EVENT_LBUTTONUP:
 				mousePressed = false;
+				break;
+			case OSystem::EVENT_KEYDOWN:
+				if (event.kbd.ascii == 27) {
+					minDelay = 0;
+					mousePressed = false;
+				}
+				break;
+			case OSystem::EVENT_QUIT:
+				SkyEngine::_systemVars.quitGame = true;
+				minDelay = 0;
+				mousePressed = false;
+				break;
+			default:
+				break;
+			}
 		}
+		_system->updateScreen();
+		_system->delayMillis(20);
 	}
 }
 

Modified: scummvm/trunk/engines/sky/mouse.h
===================================================================
--- scummvm/trunk/engines/sky/mouse.h	2006-06-21 14:17:45 UTC (rev 23232)
+++ scummvm/trunk/engines/sky/mouse.h	2006-06-21 15:05:12 UTC (rev 23233)
@@ -54,7 +54,7 @@
 	void spriteMouse(uint16 frameNum, uint8 mouseX, uint8 mouseY);
 	void useLogicInstance(Logic *skyLogic) { _skyLogic = skyLogic; };
 	void buttonPressed(uint8 button);
-	void waitMouseNotPressed(void);
+	void waitMouseNotPressed(int minDelay = 0);
 	uint16 giveMouseX(void) { return _mouseX; };
 	uint16 giveMouseY(void) { return _mouseY; };
 	uint16 giveCurrentMouseType(void) { return _currentCursor; };


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