[Scummvm-cvs-logs] SF.net SVN: scummvm: [25147] scummvm/trunk/backends/platform/PalmOS/Src

chrilith at users.sourceforge.net chrilith at users.sourceforge.net
Sun Jan 21 15:15:36 CET 2007


Revision: 25147
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25147&view=rev
Author:   chrilith
Date:     2007-01-21 06:15:35 -0800 (Sun, 21 Jan 2007)

Log Message:
-----------
Cleanup event code
Added key up for mouse buttons so that we can control Gobliiins and Touche properly

Modified Paths:
--------------
    scummvm/trunk/backends/platform/PalmOS/Src/base_event.cpp
    scummvm/trunk/backends/platform/PalmOS/Src/be_base.cpp
    scummvm/trunk/backends/platform/PalmOS/Src/be_base.h
    scummvm/trunk/backends/platform/PalmOS/Src/be_os5.cpp
    scummvm/trunk/backends/platform/PalmOS/Src/be_zodiac.cpp
    scummvm/trunk/backends/platform/PalmOS/Src/os5_event.cpp
    scummvm/trunk/backends/platform/PalmOS/Src/zodiac_event.cpp

Modified: scummvm/trunk/backends/platform/PalmOS/Src/base_event.cpp
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/base_event.cpp	2007-01-21 11:05:22 UTC (rev 25146)
+++ scummvm/trunk/backends/platform/PalmOS/Src/base_event.cpp	2007-01-21 14:15:35 UTC (rev 25147)
@@ -106,7 +106,9 @@
 			if (getMillis() >= (_keyMouseRepeat + _keyMouseDelay)) {
 				_keyMouseRepeat = getMillis();
 
-				if (gVars->arrowKeys) {				
+				if (gVars->arrowKeys) {
+					event.kbd.keycode = 0;
+
 					if (keyCurrentState & _keyMouse.bitUp)
 						event.kbd.keycode = 273;
 					else if (keyCurrentState & _keyMouse.bitDown)
@@ -115,12 +117,13 @@
 						event.kbd.keycode = 276;
 					else if (keyCurrentState & _keyMouse.bitRight)
 						event.kbd.keycode = 275;
-					else if (keyCurrentState & _keyMouse.bitButLeft)
-						event.kbd.keycode = chrLineFeed;
 
-					event.type = EVENT_KEYDOWN;
-					event.kbd.ascii = event.kbd.keycode;
-					event.kbd.flags = 0;
+					if (event.kbd.keycode) {
+						event.type = EVENT_KEYDOWN;
+						event.kbd.ascii = event.kbd.keycode;
+						event.kbd.flags = 0;
+						return true;
+					}
 
 				} else {
 					Int8 sx = 0;
@@ -139,28 +142,13 @@
 					if (sx || sy) {
 						simulate_mouse(event, sx, sy, &x, &y);
 						event.type = EVENT_MOUSEMOVE;
-						_lastKey = kKeyMouseMove;
+						event.mouse.x = x;
+						event.mouse.y = y;
+						warpMouse(x, y);
 
-					} else {			
-						x = _mouseCurState.x;
-						y = _mouseCurState.y;
-
-						if (keyCurrentState & _keyMouse.bitButLeft) {
-							event.type = EVENT_LBUTTONDOWN;
-							_lastKey = kKeyMouseLButton;
-
-						} else if (_lastKey == kKeyMouseLButton) {
-							event.type = EVENT_LBUTTONUP;
-							_lastKey = kKeyNone;
-						}
+						return true;
 					}
-
-					event.mouse.x = x;
-					event.mouse.y = y;
-					warpMouse(x, y);
-		//			updateCD();
 				}
-				return true;
 			}
 		}
 
@@ -168,7 +156,6 @@
 			switch (ev.data.keyDown.chr) {
 			// ESC key
 			case vchrLaunch:
-				_lastKey = kKeyNone;
 				event.type = EVENT_KEYDOWN;
 				event.kbd.keycode = 27;
 				event.kbd.ascii = 27;
@@ -177,7 +164,6 @@
 
 			// F5 = menu
 			case vchrMenu:
-				_lastKey = kKeyNone;
 				event.type = EVENT_KEYDOWN;
 				event.kbd.keycode = 319;
 				event.kbd.ascii = 319;
@@ -192,14 +178,12 @@
 //			case vchrBrightness:	// volume control on Zodiac, let other backends disable it
 			case vchrContrast:
 				// do nothing
-				_lastKey = kKeyNone;
 				return true;
 			}
 		}
 
 		if (check_event(event, &ev))
 			return true;
-		_lastKey = kKeyNone;
 
 		// prevent crash when alarm is raised
 		handled = ((ev.eType == keyDownEvent) && 
@@ -219,10 +203,9 @@
 			if (y > _screenHeight || y < 0 || x > _screenWidth || x < 0)
 				return false;
 
-			if (_lastEvent != penMoveEvent && (abs(y - event.mouse.y) <= 2 || abs(x - event.mouse.x) <= 2)) // move only if
+			if (abs(y - event.mouse.y) <= 2 || abs(x - event.mouse.x) <= 2)
 				return false;
 
-			_lastEvent = penMoveEvent;
 			event.type = EVENT_MOUSEMOVE;
 			event.mouse.x = x;
 			event.mouse.y = y;
@@ -244,11 +227,10 @@
 				event.kbd.ascii = num;
 				event.kbd.flags = 0;
 
-				_lastEvent = keyDownEvent;
+				_wasKey = true;
 				return true;
 			}
 
-			_lastEvent = penDownEvent;				
 			if (y > _screenHeight || y < 0 || x > _screenWidth || x < 0)
 				return false;
 
@@ -329,7 +311,7 @@
 			}
 			
 			// other keys
-			_lastEvent = keyDownEvent;
+			_wasKey = true;
 			event.type = EVENT_KEYDOWN;
 			event.kbd.keycode = key;
 			event.kbd.ascii = key;
@@ -337,9 +319,9 @@
 			return true;
 
 		default:
-			if (_lastEvent == keyDownEvent) {
+			if (_wasKey) {
 				event.type = EVENT_KEYUP;
-				_lastEvent = nilEvent;
+				_wasKey = false;
 				return true;
 			}
 			return false;

Modified: scummvm/trunk/backends/platform/PalmOS/Src/be_base.cpp
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/be_base.cpp	2007-01-21 11:05:22 UTC (rev 25146)
+++ scummvm/trunk/backends/platform/PalmOS/Src/be_base.cpp	2007-01-21 14:15:35 UTC (rev 25147)
@@ -51,8 +51,7 @@
 	_screenP = NULL;
 	_screenPitch = gVars->screenPitch;
 	
-	_lastEvent = nilEvent;
-	_lastKey = kKeyNone;
+	_wasKey = false;
 	_lastKeyModifier = kModifierNone;
 	_lastKeyRepeat = 100;
 	_useNumPad = false;
@@ -89,13 +88,11 @@
 
 	_keyMouse.bitUp		= keyBitPageUp;
 	_keyMouse.bitDown	= keyBitPageDown;
-	_keyMouse.bitLeft	= keyBitHard1;
-	_keyMouse.bitRight	= keyBitHard2;
-	_keyMouse.bitButLeft= keyBitHard3;
-	_keyMouse.hasMore	= false;
+	_keyMouse.bitLeft	= keyBitHard2;
+	_keyMouse.bitRight	= keyBitHard3;
 
 	int_initBackend();
-	_keyMouseMask = (_keyMouse.bitUp | _keyMouse.bitDown | _keyMouse.bitLeft | _keyMouse.bitRight | _keyMouse.bitButLeft);
+	_keyMouseMask = (_keyMouse.bitUp | _keyMouse.bitDown | _keyMouse.bitLeft | _keyMouse.bitRight);
 
 	// Create the savefile manager, if none exists yet (we check for this to
 	// allow subclasses to provide their own).

Modified: scummvm/trunk/backends/platform/PalmOS/Src/be_base.h
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/be_base.h	2007-01-21 11:05:22 UTC (rev 25146)
+++ scummvm/trunk/backends/platform/PalmOS/Src/be_base.h	2007-01-21 14:15:35 UTC (rev 25147)
@@ -110,14 +110,6 @@
 	virtual void draw_osd(UInt16 id, Int32 x, Int32 y, Boolean show, UInt8 color = 0);
 
 	enum {
-		kKeyNone			= 0,
-		kKeyMouseMove		= 1	<< 0,
-		kKeyMouseLButton	= 1	<< 1,
-	
-		kKeyCalc			= 1 << 30,
-		kKeyAny				= 1 << 31
-	};
-	enum {
 		MAX_MOUSE_W = 80,
 		MAX_MOUSE_H = 80
 	};
@@ -159,8 +151,6 @@
 		UInt32 bitDown;
 		UInt32 bitLeft;
 		UInt32 bitRight;
-		UInt32 bitButLeft;
-		Boolean hasMore;
 	} _keyMouse;
 	
 	bool _mouseVisible;
@@ -173,8 +163,7 @@
 	byte *_mouseDataP, *_mouseBackupP;
 	
 
-	eventsEnum _lastEvent;
-	WChar _lastKey;
+	eventsEnum _wasKey;
 	UInt8 _lastKeyModifier;
 	UInt32 _lastKeyRepeat;
 	Boolean _useNumPad, _showBatLow;

Modified: scummvm/trunk/backends/platform/PalmOS/Src/be_os5.cpp
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/be_os5.cpp	2007-01-21 11:05:22 UTC (rev 25146)
+++ scummvm/trunk/backends/platform/PalmOS/Src/be_os5.cpp	2007-01-21 14:15:35 UTC (rev 25147)
@@ -83,16 +83,12 @@
 		_keyMouse.bitDown	= keyBitPageDown;
 		_keyMouse.bitLeft	= keyBitNavLeft;
 		_keyMouse.bitRight	= keyBitNavRight;
-		_keyMouse.bitButLeft= keyBitNavSelect;
-		_keyMouse.hasMore	= true;
 
 	} else if (OPTIONS_TST(kOpt5WayNavigatorV2)) {
 		_keyMouse.bitUp		= keyBitRockerUp|keyBitPageUp;
 		_keyMouse.bitDown	= keyBitRockerDown|keyBitPageDown;
 		_keyMouse.bitLeft	= keyBitRockerLeft;
 		_keyMouse.bitRight	= keyBitRockerRight;
-		_keyMouse.bitButLeft= keyBitRockerCenter;
-		_keyMouse.hasMore	= true;
 	}
 }
 

Modified: scummvm/trunk/backends/platform/PalmOS/Src/be_zodiac.cpp
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/be_zodiac.cpp	2007-01-21 11:05:22 UTC (rev 25146)
+++ scummvm/trunk/backends/platform/PalmOS/Src/be_zodiac.cpp	2007-01-21 14:15:35 UTC (rev 25147)
@@ -33,12 +33,10 @@
 }
 
 void OSystem_PalmZodiac::int_initBackend() {
-	_keyMouse.bitUp		= keyBitRockerUp;
-	_keyMouse.bitDown	= keyBitRockerDown;
-	_keyMouse.bitLeft	= keyBitRockerLeft;
-	_keyMouse.bitRight	= keyBitRockerRight;
-	_keyMouse.bitButLeft= keyBitRockerCenter;
-	_keyMouse.hasMore	= true;
+	_keyMouse.bitUp			= keyBitRockerUp;
+	_keyMouse.bitDown		= keyBitRockerDown;
+	_keyMouse.bitLeft		= keyBitRockerLeft;
+	_keyMouse.bitRight		= keyBitRockerRight;
 }
 
 void OSystem_PalmZodiac::calc_rect(Boolean fullscreen) {

Modified: scummvm/trunk/backends/platform/PalmOS/Src/os5_event.cpp
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/os5_event.cpp	2007-01-21 11:05:22 UTC (rev 25146)
+++ scummvm/trunk/backends/platform/PalmOS/Src/os5_event.cpp	2007-01-21 14:15:35 UTC (rev 25147)
@@ -38,40 +38,48 @@
 }
 
 bool OSystem_PalmOS5::check_event(Event &event, EventPtr ev) {
-	if (ev->eType == keyDownEvent) {
+	if (ev->eType == keyUpEvent) {
 		switch (ev->data.keyDown.chr) {
+		case vchrHard3:
+			event.type = EVENT_LBUTTONUP;
+			event.mouse.x = _mouseCurState.x;
+			event.mouse.y = _mouseCurState.y;
+			return true;
+
 		case vchrHard4:
-			_lastKey = kKeyNone;
-			event.type = EVENT_RBUTTONDOWN;
+			event.type = EVENT_RBUTTONUP;
 			event.mouse.x = _mouseCurState.x;
 			event.mouse.y = _mouseCurState.y;
 			return true;
 		}
-		
-		if (_keyMouse.hasMore) {
-			switch (ev->data.keyDown.chr) {
-			// hot swap gfx
-//			case 0x1B04:
-			case vchrHard1:
-				printf("swap\n");
-				if (OPTIONS_TST(kOptCollapsible))
-					hotswap_gfx_mode(_mode == GFX_WIDE ? GFX_NORMAL: GFX_WIDE);
-				return false; // not a key
 
-//			case 0x1B05:
-			case vchrHard2:
-			setFeatureState(kFeatureAspectRatioCorrection, 0);
+	} else if (ev->eType == keyDownEvent) {
+		switch (ev->data.keyDown.chr) {
+
+		// hot swap gfx
+//	case 0x1B04:
+		case vchrHard1:
+			printf("swap\n");
+			if (OPTIONS_TST(kOptCollapsible))
+				hotswap_gfx_mode(_mode == GFX_WIDE ? GFX_NORMAL: GFX_WIDE);
 			return false; // not a key
-			
-			// F5 = menu
-			case vchrHard3:
-				_lastKey = kKeyNone;
-				event.type = EVENT_KEYDOWN;
-				event.kbd.keycode = 319;
-				event.kbd.ascii = 319;
-				event.kbd.flags = 0;
-				return true;
-			}
+
+//	case 0x1B05:
+		case vchrHard2:
+		setFeatureState(kFeatureAspectRatioCorrection, 0);
+		return false; // not a key
+
+		case vchrHard3:
+			event.type = EVENT_RBUTTONDOWN;
+			event.mouse.x = _mouseCurState.x;
+			event.mouse.y = _mouseCurState.y;
+			return true;
+
+		case vchrHard4:
+			event.type = EVENT_RBUTTONDOWN;
+			event.mouse.x = _mouseCurState.x;
+			event.mouse.y = _mouseCurState.y;
+			return true;
 		}
 	}
 

Modified: scummvm/trunk/backends/platform/PalmOS/Src/zodiac_event.cpp
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/zodiac_event.cpp	2007-01-21 11:05:22 UTC (rev 25146)
+++ scummvm/trunk/backends/platform/PalmOS/Src/zodiac_event.cpp	2007-01-21 14:15:35 UTC (rev 25147)
@@ -25,11 +25,25 @@
 #include "be_zodiac.h"
 
 bool OSystem_PalmZodiac::check_event(Event &event, EventPtr ev) {
-	if (ev->eType == keyDownEvent) {
+	if (ev->eType == keyUpEvent) {
 		switch (ev->data.keyDown.chr) {
+		case vchrActionLeft:
+			event.type = EVENT_LBUTTONUP;
+			event.mouse.x = _mouseCurState.x;
+			event.mouse.y = _mouseCurState.y;
+			return true;
+
+		case vchrActionRight:
+			event.type = EVENT_RBUTTONUP;
+			event.mouse.x = _mouseCurState.x;
+			event.mouse.y = _mouseCurState.y;
+			return true;
+		}
+
+	} else if (ev->eType == keyDownEvent) {
+		switch (ev->data.keyDown.chr) {
 		// F5 = menu
 		case vchrThumbWheelBack:
-			_lastKey = kKeyNone;
 			event.type = EVENT_KEYDOWN;
 			event.kbd.keycode = 319;
 			event.kbd.ascii = 319;
@@ -45,14 +59,12 @@
 			return false; // not a key
 
 		case vchrActionLeft:
-			_lastKey = kKeyMouseLButton;
 			event.type = EVENT_LBUTTONDOWN;
 			event.mouse.x = _mouseCurState.x;
 			event.mouse.y = _mouseCurState.y;
 			return true;
 
 		case vchrActionRight:
-			_lastKey = kKeyNone;
 			event.type = EVENT_RBUTTONDOWN;
 			event.mouse.x = _mouseCurState.x;
 			event.mouse.y = _mouseCurState.y;
@@ -81,16 +93,6 @@
 			break;
 		}
 
-	} else if (_overlayVisible) {
-		switch (_lastKey) {
-		case kKeyMouseLButton:
-			_lastKey = kKeyNone;
-			event.type = EVENT_LBUTTONUP;
-			event.mouse.x = _mouseCurState.x;
-			event.mouse.y = _mouseCurState.y;
-			return true;
-
-		}
 	}
 
 	return false;


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