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

kirben at users.sourceforge.net kirben at users.sourceforge.net
Mon Oct 2 09:06:26 CEST 2006


Revision: 24064
          http://svn.sourceforge.net/scummvm/?rev=24064&view=rev
Author:   kirben
Date:     2006-10-02 00:06:20 -0700 (Mon, 02 Oct 2006)

Log Message:
-----------
Fix arrows keys in swampy

Modified Paths:
--------------
    scummvm/trunk/engines/agos/agos.cpp
    scummvm/trunk/engines/agos/agos.h
    scummvm/trunk/engines/agos/items.cpp
    scummvm/trunk/engines/agos/rules.cpp

Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp	2006-10-02 06:22:05 UTC (rev 24063)
+++ scummvm/trunk/engines/agos/agos.cpp	2006-10-02 07:06:20 UTC (rev 24064)
@@ -1200,10 +1200,13 @@
 		for (;;) {
 			if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) && _keyPressed == 35)
 				displayBoxStars();
-			processSpecialKeys();
-			if (getGameType() == GType_PP && _keyPressed != 0) {
-				_needHitAreaRecalc++;
-				return;
+			if (getGameType() == GType_PP) {
+				if (checkArrows() != 0) {
+					_needHitAreaRecalc++;
+					return;
+				}
+			} else {
+				processSpecialKeys();
 			}
 			if (_lastHitArea3 == (HitArea *) -1)
 				goto startOver;
@@ -1767,6 +1770,27 @@
 	return false;
 }
 
+bool AGOSEngine::checkArrows() {
+	switch (_keyPressed) {
+	case 17: // Up
+		_verbHitArea = 302;
+		break;
+	case 18: // Down
+		_verbHitArea = 304;
+		break;
+	case 19: // Right
+		_verbHitArea = 303;
+		break;
+	case 20: // Left
+		_verbHitArea = 301;
+		break;
+	}
+
+	bool result = (_keyPressed != 0);
+	_keyPressed = 0;
+	return result;
+}
+
 void AGOSEngine::processSpecialKeys() {
 	switch (_keyPressed) {
 	case 17: // Up
@@ -2168,7 +2192,15 @@
 						_fastMode ^= 1;
 					else if (event.kbd.keycode == 'd')
 						_debugger->attach();
+				} 
+
+				if (getGameType() == GType_PP) {
+					if (event.kbd.flags == OSystem::KBD_SHIFT)
+						_variableArray[41] = 0;
+					else
+						_variableArray[41] = 1;
 				}
+
 				// Make sure backspace works right (this fixes a small issue on OS X)
 				if (event.kbd.keycode == 8)
 					_keyPressed = 8;

Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h	2006-10-02 06:22:05 UTC (rev 24063)
+++ scummvm/trunk/engines/agos/agos.h	2006-10-02 07:06:20 UTC (rev 24064)
@@ -740,6 +740,7 @@
 	void loadIconData();	
 	void loadIconFile();
 
+	bool checkArrows();
 	void processSpecialKeys();
 	void hitarea_stuff_helper();
 
@@ -1098,6 +1099,7 @@
 	void o4_loadHiScores();
 	void o4_checkHiScores();
 	void o4_sync();
+	void o4_saveUserGame();
 	void o4_loadUserGame();
 	void o4_saveOopsPosition();
 	void o4_resetGameTime();

Modified: scummvm/trunk/engines/agos/items.cpp
===================================================================
--- scummvm/trunk/engines/agos/items.cpp	2006-10-02 06:22:05 UTC (rev 24063)
+++ scummvm/trunk/engines/agos/items.cpp	2006-10-02 07:06:20 UTC (rev 24064)
@@ -455,7 +455,7 @@
 	op[124] = &AGOSEngine::o3_ifTime;
 	op[127] = NULL;
 	op[131] = &AGOSEngine::o3_setTime;
-	op[132] = &AGOSEngine::o3_saveUserGame;
+	op[132] = &AGOSEngine::o4_saveUserGame;
 	op[133] = &AGOSEngine::o4_loadUserGame;
 	op[134] = &AGOSEngine::o3_listSaveGames;
 	op[161] = &AGOSEngine::o3_screenTextBox;
@@ -2543,6 +2543,10 @@
 	sendSync(a);
 }
 
+void AGOSEngine::o4_saveUserGame() {
+	// 132: save game
+}
+
 void AGOSEngine::o4_loadUserGame() {
 	// 133: load usergame
 }

Modified: scummvm/trunk/engines/agos/rules.cpp
===================================================================
--- scummvm/trunk/engines/agos/rules.cpp	2006-10-02 06:22:05 UTC (rev 24063)
+++ scummvm/trunk/engines/agos/rules.cpp	2006-10-02 07:06:20 UTC (rev 24064)
@@ -285,6 +285,8 @@
 }
 
 void AGOSEngine::checkTiles() {
+	printf("checkTiles\n");
+
 	const byte *tile;
 	uint i, slot;
 


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