[Scummvm-cvs-logs] SF.net SVN: scummvm: [27800] scummvm/trunk/engines/agos

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Jul 1 00:21:29 CEST 2007


Revision: 27800
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27800&view=rev
Author:   fingolfin
Date:     2007-06-30 15:21:29 -0700 (Sat, 30 Jun 2007)

Log Message:
-----------
Changed AGOS to use full KeyState, not just ascii value, in key events

Modified Paths:
--------------
    scummvm/trunk/engines/agos/agos.cpp
    scummvm/trunk/engines/agos/agos.h
    scummvm/trunk/engines/agos/event.cpp
    scummvm/trunk/engines/agos/input.cpp
    scummvm/trunk/engines/agos/oracle.cpp
    scummvm/trunk/engines/agos/saveload.cpp
    scummvm/trunk/engines/agos/script_s1.cpp

Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp	2007-06-30 21:20:47 UTC (rev 27799)
+++ scummvm/trunk/engines/agos/agos.cpp	2007-06-30 22:21:29 UTC (rev 27800)
@@ -110,8 +110,6 @@
 
 	_debugger = 0;
 
-	_keyPressed = 0;
-
 	_gameFile = 0;
 	_opcode = 0;
 
@@ -958,8 +956,8 @@
 }
 
 void AGOSEngine::pause() {
-	_keyPressed = 1;
-	_pause = 1;
+	_keyPressed.reset();
+	_pause = true;
 	bool ambient_status = _ambientPaused;
 	bool music_status = _musicPaused;
 
@@ -969,8 +967,8 @@
 
 	while (_pause) {
 		delay(1);
-		if (_keyPressed == 'p')
-			_pause = 0;
+		if (_keyPressed.keycode == Common::KEYCODE_p)
+			_pause = false;
 	}
 
 	_midi.pause(music_status);

Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h	2007-06-30 21:20:47 UTC (rev 27799)
+++ scummvm/trunk/engines/agos/agos.h	2007-06-30 22:21:29 UTC (rev 27800)
@@ -28,6 +28,7 @@
 
 #include "engines/engine.h"
 
+#include "common/keyboard.h"
 #include "common/rect.h"
 #include "common/util.h"
 
@@ -216,7 +217,7 @@
 
 	const GameSpecificSettings *gss;
 
-	byte _keyPressed;
+	Common::KeyState _keyPressed;
 
 	Common::File *_gameFile;
 

Modified: scummvm/trunk/engines/agos/event.cpp
===================================================================
--- scummvm/trunk/engines/agos/event.cpp	2007-06-30 21:20:47 UTC (rev 27799)
+++ scummvm/trunk/engines/agos/event.cpp	2007-06-30 22:21:29 UTC (rev 27800)
@@ -500,10 +500,7 @@
 				}
 
 				// Make sure backspace works right (this fixes a small issue on OS X)
-				if (event.kbd.keycode == Common::KEYCODE_BACKSPACE)
-					_keyPressed = 8;
-				else
-					_keyPressed = (byte)event.kbd.ascii;
+				_keyPressed = event.kbd;
 				break;
 			case Common::EVENT_MOUSEMOVE:
 				break;

Modified: scummvm/trunk/engines/agos/input.cpp
===================================================================
--- scummvm/trunk/engines/agos/input.cpp	2007-06-30 21:20:47 UTC (rev 27799)
+++ scummvm/trunk/engines/agos/input.cpp	2007-06-30 22:21:29 UTC (rev 27800)
@@ -195,7 +195,8 @@
 		_dragAccept = 1;
 
 		for (;;) {
-			if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) && _keyPressed == 35)
+			if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) &&
+					_keyPressed.keycode == Common::KEYCODE_HASH)
 				displayBoxStars();
 			if (processSpecialKeys()) {
 				if ((getGameType() == GType_PP && getGameId() != GID_DIMP) ||
@@ -238,7 +239,6 @@
 					_dragMode = 0;
 					_dragCount = 0;
 					_dragEnd = 0;
-					continue;
 				}
 			} while (!_dragEnd);
 		
@@ -472,39 +472,39 @@
 		}
 	}
 
-	switch (_keyPressed) {
-	case 17: // Up
+	switch (_keyPressed.keycode) {
+	case Common::KEYCODE_UP:
 		if (getGameType() == GType_PP)
 			_verbHitArea = 302;
 		else if (getGameType() == GType_WW)
 			_verbHitArea = 239;
 		verbCode = true;
 		break;
-	case 18: // Down
+	case Common::KEYCODE_DOWN:
 		if (getGameType() == GType_PP)
 			_verbHitArea = 304;
 		else if (getGameType() == GType_WW)
 			_verbHitArea = 241;
 		verbCode = true;
 		break;
-	case 19: // Right
+	case Common::KEYCODE_RIGHT:
 		if (getGameType() == GType_PP)
 			_verbHitArea = 303;
 		else if (getGameType() == GType_WW)
 			_verbHitArea = 240;
 		verbCode = true;
 		break;
-	case 20: // Left
+	case Common::KEYCODE_LEFT:
 		if (getGameType() == GType_PP)
 			_verbHitArea = 301;
 		else if (getGameType() == GType_WW)
 			_verbHitArea = 242;
 		verbCode = true;
 		break;
-	case 27: // escape
+	case Common::KEYCODE_ESCAPE:
 		_exitCutscene = true;
 		break;
-	case 59: // F1
+	case Common::KEYCODE_F1:
 		if (getGameType() == GType_SIMON2) {
 			vcWriteVar(5, 50);
 			vcWriteVar(86, 0);
@@ -513,7 +513,7 @@
 			vcWriteVar(86, 0);
 		}
 		break;
-	case 60: // F2
+	case Common::KEYCODE_F2:
 		if (getGameType() == GType_SIMON2) {
 			vcWriteVar(5, 75);
 			vcWriteVar(86, 1);
@@ -522,7 +522,7 @@
 			vcWriteVar(86, 1);
 		}
 		break;
-	case 61: // F3
+	case Common::KEYCODE_F3:
 		if (getGameType() == GType_SIMON2) {
 			vcWriteVar(5, 125);
 			vcWriteVar(86, 2);
@@ -531,19 +531,19 @@
 			vcWriteVar(86, 2);
 		}
 		break;
-	case 63: // F5
+	case Common::KEYCODE_F5:
 		if (getGameType() == GType_SIMON2 || getGameType() == GType_FF)
 			_exitCutscene = true;
 		break;
-	case 65: // F7
+	case Common::KEYCODE_F7:
 		if (getGameType() == GType_FF && getBitFlag(76))
 			_variableArray[254] = 70;
 		break;
-	case 67: // F9
+	case Common::KEYCODE_F9:
 		if (getGameType() == GType_FF)
 			setBitFlag(73, !getBitFlag(73));
 		break;
-	case 37: // F12
+	case Common::KEYCODE_F12:
 		if (getGameType() == GType_PP && getGameId() != GID_DIMP) {
 			if (!getBitFlag(110)) {
 				setBitFlag(107, !getBitFlag(107));
@@ -551,73 +551,75 @@
 			}
 		}
 		break;
-	case 'p':
+	case Common::KEYCODE_p:
 		pause();
 		break;
-	case 't':
+	case Common::KEYCODE_t:
 		if (getGameType() == GType_FF || (getGameType() == GType_SIMON2 && (getFeatures() & GF_TALKIE)) ||
 			((getFeatures() & GF_TALKIE) && _language != Common::EN_ANY && _language != Common::DE_DEU)) {
 			if (_speech)
 				_subtitles ^= 1;
 		}
 		break;
-	case 'v':
+	case Common::KEYCODE_v:
 		if (getGameType() == GType_FF || (getGameType() == GType_SIMON2 && (getFeatures() & GF_TALKIE))) {
 			if (_subtitles)
 				_speech ^= 1;
 		}
-	case '+':
+	case Common::KEYCODE_PLUS:
 		if (_midiEnabled) {
 			_midi.setVolume(_midi.getVolume() + 16);
 		}
 		_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) + 16);
 		break;
-	case '-':
+	case Common::KEYCODE_MINUS:
 		if (_midiEnabled) {
 			_midi.setVolume(_midi.getVolume() - 16);
 		}
 		_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) - 16);
 		break;
-	case 'm':
+	case Common::KEYCODE_m:
 		_musicPaused ^= 1;
 		if (_midiEnabled) {
 			_midi.pause(_musicPaused);
 		}
 		_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, (_musicPaused) ? 0 : ConfMan.getInt("music_volume"));
 		break;
-	case 's':
+	case Common::KEYCODE_s:
 		if (getGameId() == GID_SIMON1DOS) {
 			_midi._enable_sfx ^= 1;
 		} else {
 			_sound->effectsPause(_effectsPaused ^= 1);
 		}
 		break;
-	case 'b':
+	case Common::KEYCODE_b:
 		_sound->ambientPause(_ambientPaused ^= 1);
 		break;
-	case 'r':
+	case Common::KEYCODE_r:
 		if (_debugMode)
 			_startMainScript ^= 1;
 		break;
-	case 'o':
+	case Common::KEYCODE_o:
 		if (_debugMode)
 			_continousMainScript ^= 1;
 		break;
-	case 'a':
+	case Common::KEYCODE_a:
 		if (_debugMode)
 			_startVgaScript ^= 1;
 		break;
-	case 'g':
+	case Common::KEYCODE_g:
 		if (_debugMode)
 			_continousVgaScript ^= 1;
 		break;
-	case 'd':
+	case Common::KEYCODE_d:
 		if (_debugMode)
 			_dumpImages ^=1;
 		break;
+	default:
+		break;
 	}
 
-	_keyPressed = 0;
+	_keyPressed.reset();
 	return verbCode;
 }
 

Modified: scummvm/trunk/engines/agos/oracle.cpp
===================================================================
--- scummvm/trunk/engines/agos/oracle.cpp	2007-06-30 21:20:47 UTC (rev 27799)
+++ scummvm/trunk/engines/agos/oracle.cpp	2007-06-30 22:21:29 UTC (rev 27800)
@@ -464,37 +464,37 @@
 
 	windowPutChar(window, 0x7f);
 	for (;;) {
-		_keyPressed = 0;
+		_keyPressed.reset();
 		delay(1);
 
-		if (_keyPressed == 0 || _keyPressed >= 127)
+		if (_keyPressed.ascii == 0 || _keyPressed.ascii >= 127)
 			continue;
 
 		window->textColumn -= getFeebleFontSize(127);
 		name[len] = 0;
 		windowBackSpace(_windowArray[3]);
 
-		if (_keyPressed == 27) {
-			_variableArray[55] = _keyPressed;
+		if (_keyPressed.keycode == Common::KEYCODE_ESCAPE) {
+			_variableArray[55] = 27;
 			break;
 		}
-		if (_keyPressed == 10 || _keyPressed == 13) {
+		if (_keyPressed.keycode == Common::KEYCODE_KP_ENTER || _keyPressed.keycode == Common::KEYCODE_RETURN) {
 			if (!saveGame(readVariable(55), name))
 				_variableArray[55] = (int16)0xFFFF;
 			else
 				_variableArray[55] = 0;
 			break;
 		}
-		if (_keyPressed == 8 && len != 0) {
+		if (_keyPressed.keycode == Common::KEYCODE_BACKSPACE && len != 0) {
 			len--;
 			byte chr = name[len];
 			window->textColumn -= getFeebleFontSize(chr);
 			name[len] = 0;
 			windowBackSpace(_windowArray[3]);
 		}
-		if (_keyPressed >= 32 && window->textColumn + 26 <= window->width) {
-			name[len++] = _keyPressed;
-			windowPutChar(_windowArray[3], _keyPressed);
+		if (_keyPressed.ascii >= 32 && window->textColumn + 26 <= window->width) {
+			name[len++] = _keyPressed.ascii;
+			windowPutChar(_windowArray[3], _keyPressed.ascii);
 		}
 
 		windowPutChar(window, 0x7f);

Modified: scummvm/trunk/engines/agos/saveload.cpp
===================================================================
--- scummvm/trunk/engines/agos/saveload.cpp	2007-06-30 21:20:47 UTC (rev 27799)
+++ scummvm/trunk/engines/agos/saveload.cpp	2007-06-30 22:21:29 UTC (rev 27800)
@@ -257,12 +257,12 @@
 
 	for (;;) {
 		windowPutChar(window, 128);
-		_keyPressed = 0;
+		_keyPressed.reset();
 
 		for (;;) {
 			delay(10);
-			if (_keyPressed && _keyPressed < 128) {
-				i = _keyPressed;
+			if (_keyPressed.ascii && _keyPressed.ascii < 128) {
+				i = _keyPressed.ascii;
 				break;
 			}
 		}
@@ -490,16 +490,16 @@
 	HitArea *ha;
 	*b = true;
 
-	_keyPressed = 0;
+	_keyPressed.reset();
 
 	for (;;) {
 		_lastHitArea = NULL;
 		_lastHitArea3 = NULL;
 
 		do {
-			if (_saveLoadEdit && _keyPressed && _keyPressed < maxChar) {
+			if (_saveLoadEdit && _keyPressed.ascii && _keyPressed.ascii < maxChar) {
 				*b = false;
-				return _keyPressed;
+				return _keyPressed.ascii;
 			}
 			delay(10);
 		} while (_lastHitArea3 == 0);
@@ -759,16 +759,16 @@
 		listSaveGames(buf);
 	}
 
-	_keyPressed = 0;
+	_keyPressed.reset();
 
 	for (;;) {
 		_lastHitArea = NULL;
 		_lastHitArea3 = NULL;
 
 		do {
-			if (_saveLoadEdit && _keyPressed && _keyPressed < maxChar) {
+			if (_saveLoadEdit && _keyPressed.ascii && _keyPressed.ascii < maxChar) {
 				*b = false;
-				return _keyPressed;
+				return _keyPressed.ascii;
 			}
 			delay(10);
 		} while (_lastHitArea3 == 0);

Modified: scummvm/trunk/engines/agos/script_s1.cpp
===================================================================
--- scummvm/trunk/engines/agos/script_s1.cpp	2007-06-30 21:20:47 UTC (rev 27799)
+++ scummvm/trunk/engines/agos/script_s1.cpp	2007-06-30 22:21:29 UTC (rev 27800)
@@ -311,29 +311,29 @@
 	_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
 
 	// If all else fails, use English as fallback.
-	byte keyYes = 'y';
-	byte keyNo = 'n';
+	Common::KeyCode keyYes = Common::KEYCODE_y;
+	Common::KeyCode keyNo = Common::KEYCODE_n;
 
 	switch (_language) {
 	case Common::RU_RUS:
 		break;
 	case Common::PL_POL:
-		keyYes = 't';
+		keyYes = Common::KEYCODE_t;
 		break;
 	case Common::HB_ISR:
-		keyYes = 'f';
+		keyYes = Common::KEYCODE_f;
 		break;
 	case Common::ES_ESP:
-		keyYes = 's';
+		keyYes = Common::KEYCODE_s;
 		break;
 	case Common::IT_ITA:
-		keyYes = 's';
+		keyYes = Common::KEYCODE_s;
 		break;
 	case Common::FR_FRA:
-		keyYes = 'o';
+		keyYes = Common::KEYCODE_o;
 		break;
 	case Common::DE_DEU:
-		keyYes = 'j';
+		keyYes = Common::KEYCODE_j;
 		break;
 	default:
 		break;
@@ -343,17 +343,17 @@
 		delay(1);
 #ifdef _WIN32_WCE
 		if (isSmartphone()) {
-			if (_keyPressed) {
-				if (_keyPressed == 13)
+			if (_keyPressed.keycode) {
+				if (_keyPressed.keycode == Common::KEYCODE_RETURN)
 					shutdown();
 				else
 					break;
 			}
 		}
 #endif
-		if (_keyPressed == keyYes || _keyPressed == (keyYes - 32))
+		if (_keyPressed.keycode == keyYes)
 			shutdown();
-		else if (_keyPressed == keyNo || _keyPressed == (keyNo - 32))
+		else if (_keyPressed.keycode == keyNo)
 			break;
 	}
 


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