[Scummvm-cvs-logs] SF.net SVN: scummvm:[42966] scummvm/branches/branch-1-0-0/engines/cruise/ cruise_main.cpp

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sat Aug 1 01:28:04 CEST 2009


Revision: 42966
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42966&view=rev
Author:   dreammaster
Date:     2009-07-31 23:28:04 +0000 (Fri, 31 Jul 2009)

Log Message:
-----------
Backport of bug fix for the event loop that was discarding pending events rather than leaving them to be processed in the following frame

Modified Paths:
--------------
    scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp

Modified: scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp	2009-07-31 23:27:19 UTC (rev 42965)
+++ scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp	2009-07-31 23:28:04 UTC (rev 42966)
@@ -1625,29 +1625,28 @@
 
 bool manageEvents() {
 	Common::Event event;
-	bool result = false;
 
 	Common::EventManager * eventMan = g_system->getEventManager();
-	while (eventMan->pollEvent(event) && !result) {
-		result = true;
+	while (eventMan->pollEvent(event)) {
+		bool abortFlag = true;
 
 		switch (event.type) {
 		case Common::EVENT_LBUTTONDOWN:
-			currentMouseButton |= MB_LEFT;
+			currentMouseButton |= CRS_MB_LEFT;
 			break;
 		case Common::EVENT_LBUTTONUP:
-			currentMouseButton &= ~MB_LEFT;
+			currentMouseButton &= ~CRS_MB_LEFT;
 			break;
 		case Common::EVENT_RBUTTONDOWN:
-			currentMouseButton |= MB_RIGHT;
+			currentMouseButton |= CRS_MB_RIGHT;
 			break;
 		case Common::EVENT_RBUTTONUP:
-			currentMouseButton &= ~MB_RIGHT;
+			currentMouseButton &= ~CRS_MB_RIGHT;
 			break;
 		case Common::EVENT_MOUSEMOVE:
 			currentMouseX = event.mouse.x;
 			currentMouseY = event.mouse.y;
-			result = false;
+			abortFlag = false;
 			break;
 		case Common::EVENT_QUIT:
 		case Common::EVENT_RTL:
@@ -1656,7 +1655,7 @@
 		case Common::EVENT_KEYUP:
 			switch (event.kbd.keycode) {
 			case Common::KEYCODE_ESCAPE:
-				currentMouseButton &= ~MB_MIDDLE;
+				currentMouseButton &= ~CRS_MB_MIDDLE;
 				break;
 			default:
 				break;
@@ -1665,7 +1664,7 @@
 		case Common::EVENT_KEYDOWN:
 			switch (event.kbd.keycode) {
 			case Common::KEYCODE_ESCAPE:
-				currentMouseButton |= MB_MIDDLE;
+				currentMouseButton |= CRS_MB_MIDDLE;
 				break;
 			default:
 				keyboardCode = event.kbd.keycode;
@@ -1686,9 +1685,12 @@
 		default:
 			break;
 		}
+
+		if (abortFlag)
+			return true;
 	}
 
-	return result;
+	return false;
 }
 
 void getMouseStatus(int16 *pMouseVar, int16 *pMouseX, int16 *pMouseButton, int16 *pMouseY) {


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