[Scummvm-cvs-logs] SF.net SVN: scummvm:[48106] scummvm/trunk/backends/platform/n64/ osys_n64_events.cpp

Hkz at users.sourceforge.net Hkz at users.sourceforge.net
Sun Feb 21 16:01:06 CET 2010


Revision: 48106
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48106&view=rev
Author:   Hkz
Date:     2010-02-21 15:01:06 +0000 (Sun, 21 Feb 2010)

Log Message:
-----------
N64: some input related cleanup

Modified Paths:
--------------
    scummvm/trunk/backends/platform/n64/osys_n64_events.cpp

Modified: scummvm/trunk/backends/platform/n64/osys_n64_events.cpp
===================================================================
--- scummvm/trunk/backends/platform/n64/osys_n64_events.cpp	2010-02-21 14:34:22 UTC (rev 48105)
+++ scummvm/trunk/backends/platform/n64/osys_n64_events.cpp	2010-02-21 15:01:06 UTC (rev 48106)
@@ -190,64 +190,56 @@
 		else if (RELEASED_DD(newButtons, oldButtons)) // Released DOWN
 			down_digital = false;
 
-		if (PRESSED_B(newButtons, oldButtons)) { // Pressed B - Right Mouse Button
+		// Check if there is a button pressed, apart from DPAD
+		if ((newButtons & 0xF0FF) != (oldButtons & 0xF0FF))
 			buttonPressed = true;
+
+		if (PRESSED_B(newButtons, oldButtons)) { // Pressed B - Right Mouse Button
 			event.type = Common::EVENT_RBUTTONDOWN;
 		} else if (RELEASED_B(newButtons, oldButtons)) { // Released B
-			buttonPressed = true;
 			event.type = Common::EVENT_RBUTTONUP;
 		} else if (PRESSED_A(newButtons, oldButtons)) { // Pressed A - Period
-			buttonPressed = true;
 			event.kbd.keycode = Common::KEYCODE_PERIOD;
 			event.kbd.ascii = '.';
 			event.type = Common::EVENT_KEYDOWN;
 		} else if (RELEASED_A(newButtons, oldButtons)) { // Released A
-			buttonPressed = true;
 			event.kbd.keycode = Common::KEYCODE_PERIOD;
 			event.kbd.ascii = '.';
 			event.type = Common::EVENT_KEYUP;
 		} else if (PRESSED_START(newButtons, oldButtons)) { // Pressed START
-			buttonPressed = true;
 			event.kbd.keycode = Common::KEYCODE_F5;
 			event.kbd.ascii = Common::ASCII_F5;
 			event.type = Common::EVENT_KEYDOWN;
 		} else if (RELEASED_START(newButtons, oldButtons)) { // Released START
-			buttonPressed = true;
 			event.kbd.keycode = Common::KEYCODE_F5;
 			event.kbd.ascii = Common::ASCII_F5;
 			event.type = Common::EVENT_KEYUP;
-		}  else if (PRESSED_TL(newButtons, oldButtons)) { // Pressed Trigger Left - ESC
-			buttonPressed = true;
+		} else if (PRESSED_TL(newButtons, oldButtons)) { // Pressed Trigger Left - ESC
 			event.kbd.keycode = Common::KEYCODE_ESCAPE;
 			event.kbd.ascii = 27;
 			event.type = Common::EVENT_KEYDOWN;
 		} else if (RELEASED_TL(newButtons, oldButtons)) { // Released Trigger Left
-			buttonPressed = true;
 			event.kbd.keycode = Common::KEYCODE_ESCAPE;
 			event.kbd.ascii = 27;
 			event.type = Common::EVENT_KEYUP;
 		} else if (PRESSED_TR(newButtons, oldButtons)) { // Pressed Trigger Right - F7
-			buttonPressed = true;
 			event.kbd.keycode = Common::KEYCODE_F7;
 			event.kbd.ascii = Common::ASCII_F7;
 			event.type = Common::EVENT_KEYDOWN;
-		} else if (RELEASED_TL(newButtons, oldButtons)) { // Released Trigger Right
-			buttonPressed = true;
+		} else if (RELEASED_TR(newButtons, oldButtons)) { // Released Trigger Right
 			event.kbd.keycode = Common::KEYCODE_F7;
 			event.kbd.ascii = Common::ASCII_F7;
 			event.type = Common::EVENT_KEYUP;
 		} else if (PRESSED_Z(newButtons, oldButtons)) { // Pressed Z - Left Mouse Button
-			buttonPressed = true;
 			event.type = Common::EVENT_LBUTTONDOWN;
 		} else if (RELEASED_Z(newButtons, oldButtons)) { // Released Z
-			buttonPressed = true;
 			event.type = Common::EVENT_LBUTTONUP;
 		}
 
 		// Simulate numpad using yellow C-Buttons on the pad
 		bool cur_CU, cur_CD, cur_CL, cur_CR;
 
-		static int8 lastKPad = 0; // Latest simulated keypad button press
+		static uint8 lastKPad = 0; // Latest simulated keypad button press
 
 		// Check which directions are pressed
 		if (CU_BUTTON(newButtons)) // Pressed Yellow Up
@@ -273,7 +265,6 @@
 		switch (lastKPad) {
 		case 7: // UP - LEFT
 			if (!(cur_CU && cur_CL)) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP7;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -282,7 +273,6 @@
 			break;
 		case 9: // UP - RIGHT
 			if (!(cur_CU && cur_CR)) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP9;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -291,7 +281,6 @@
 			break;
 		case 1: // DOWN - LEFT
 			if (!(cur_CD && cur_CL)) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP1;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -300,7 +289,6 @@
 			break;
 		case 3: // DOWN - RIGHT
 			if (!(cur_CD && cur_CR)) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP3;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -309,7 +297,6 @@
 			break;
 		case 4: // LEFT
 			if (!cur_CL) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP4;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -318,7 +305,6 @@
 			break;
 		case 6: // RIGHT
 			if (!cur_CR) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP6;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -327,7 +313,6 @@
 			break;
 		case 8: // UP
 			if (!cur_CU) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP8;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -336,7 +321,6 @@
 			break;
 		case 2: // DOWN
 			if (!cur_CD) {
-				buttonPressed = true;
 				event.kbd.keycode = Common::KEYCODE_KP2;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				event.type = Common::EVENT_KEYUP;
@@ -345,49 +329,41 @@
 			break;
 		case 0: // No previous press
 			if (cur_CU && cur_CL) { // UP - LEFT
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP7;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				lastKPad = 7;
 			} else if (cur_CU && cur_CR) { // UP - RIGHT
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP9;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				lastKPad = 9;
 			} else if (cur_CD && cur_CL) { // DOWN - LEFT
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP1;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				lastKPad = 1;
 			} else if (cur_CD && cur_CR) { // DOWN - RIGHT
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP3;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				lastKPad = 3;
 			} else if (cur_CL) { // LEFT
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP4;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				lastKPad = 4;
 			} else if (cur_CR) { // RIGHT
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP6;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				lastKPad = 6;
 			} else if (cur_CU) { // UP
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP8;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
 				lastKPad = 8;
 			} else if (cur_CD) { // DOWN
-				buttonPressed = true;
 				event.type = Common::EVENT_KEYDOWN;
 				event.kbd.keycode = Common::KEYCODE_KP2;
 				event.kbd.ascii = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
@@ -395,6 +371,7 @@
 			}
 			break;
 		default:
+			lastKPad = 0;
 			break; // Do nothing.
 		}
 
@@ -408,17 +385,15 @@
 	}
 
 	if (newMouseButtons != oldMouseButtons) { // Check mouse button press
+		buttonPressed = true;
+
 		if (PRESSED_B(newMouseButtons, oldMouseButtons)) { // Pressed Right Mouse Button
-			buttonPressed = true;
 			event.type = Common::EVENT_RBUTTONDOWN;
 		} else if (RELEASED_B(newMouseButtons, oldMouseButtons)) { // Released RMB
-			buttonPressed = true;
 			event.type = Common::EVENT_RBUTTONUP;
 		} else if (PRESSED_A(newMouseButtons, oldMouseButtons)) { // Pressed Left Mouse Button
-			buttonPressed = true;
 			event.type = Common::EVENT_LBUTTONDOWN;
 		} else if (RELEASED_A(newMouseButtons, oldMouseButtons)) { // Released LMB
-			buttonPressed = true;
 			event.type = Common::EVENT_LBUTTONUP;
 		}
 


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