[Scummvm-cvs-logs] SF.net SVN: scummvm: [26556] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Sat Apr 21 22:13:16 CEST 2007


Revision: 26556
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26556&view=rev
Author:   drmccoy
Date:     2007-04-21 13:13:15 -0700 (Sat, 21 Apr 2007)

Log Message:
-----------
Some more small fixes. Gob3 is completable now :)

Modified Paths:
--------------
    scummvm/trunk/engines/gob/inter_v1.cpp
    scummvm/trunk/engines/gob/inter_v2.cpp
    scummvm/trunk/engines/gob/mult_v2.cpp
    scummvm/trunk/engines/gob/parse.cpp

Modified: scummvm/trunk/engines/gob/inter_v1.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v1.cpp	2007-04-21 14:06:55 UTC (rev 26555)
+++ scummvm/trunk/engines/gob/inter_v1.cpp	2007-04-21 20:13:15 UTC (rev 26556)
@@ -1663,53 +1663,9 @@
 		break;
 
 	case 2:
-		key = 0;
+		_vm->_util->processInput(true);
+		key = _vm->_util->checkKey();
 
-		if (_vm->_global->_pressedKeys[0x48])
-			key |= 1;
-
-		if (_vm->_global->_pressedKeys[0x50])
-			key |= 2;
-
-		if (_vm->_global->_pressedKeys[0x4D])
-			key |= 4;
-
-		if (_vm->_global->_pressedKeys[0x4B])
-			key |= 8;
-
-		if (_vm->_global->_pressedKeys[0x1C])
-			key |= 0x10;
-
-		if (_vm->_global->_pressedKeys[0x39])
-			key |= 0x20;
-
-		if (_vm->_global->_pressedKeys[1])
-			key |= 0x40;
-
-		if (_vm->_global->_pressedKeys[0x1D])
-			key |= 0x80;
-
-		if (_vm->_global->_pressedKeys[0x2A])
-			key |= 0x100;
-
-		if (_vm->_global->_pressedKeys[0x36])
-			key |= 0x200;
-
-		if (_vm->_global->_pressedKeys[0x38])
-			key |= 0x400;
-
-		if (_vm->_global->_pressedKeys[0x3B])
-			key |= 0x800;
-
-		if (_vm->_global->_pressedKeys[0x3C])
-			key |= 0x1000;
-
-		if (_vm->_global->_pressedKeys[0x3D])
-			key |= 0x2000;
-
-		if (_vm->_global->_pressedKeys[0x3E])
-			key |= 0x4000;
-
 		WRITE_VAR(0, key);
 		_vm->_util->clearKeyBuf();
 		break;

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2007-04-21 14:06:55 UTC (rev 26555)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2007-04-21 20:13:15 UTC (rev 26556)
@@ -975,7 +975,7 @@
 			_vm->_global->_inter_execPtr++;
 	}
 
-	if (_vm->_goblin->_gobsCount < 0)
+	if (_vm->_goblin->_gobsCount <= objIndex)
 		return;
 
 	Mult::Mult_Object &obj = _vm->_mult->_objects[objIndex];

Modified: scummvm/trunk/engines/gob/mult_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/mult_v2.cpp	2007-04-21 14:06:55 UTC (rev 26555)
+++ scummvm/trunk/engines/gob/mult_v2.cpp	2007-04-21 20:13:15 UTC (rev 26556)
@@ -227,6 +227,13 @@
 		case 3:
 			_vm->_global->_inter_execPtr += 4;
 			break;
+
+		case -1:
+			break;
+
+		default:
+			warning("Mult_v2::loadMult(): Unknown sound key command (%d)",
+					_multData->sndKeys[i].cmd);
 		}
 	}
 	
@@ -1185,6 +1192,8 @@
 }
 
 void Mult_v2::advanceAllObjects() {
+	Mult_Data *multData = _multData;
+
 	for (int i = 0; i < 8; i++) {
 		if (_multDatas[i]) {
 			_multData = _multDatas[i];
@@ -1192,6 +1201,8 @@
 				advanceObjects(j);
 		}
 	}
+
+	_multData = multData;
 }
 
 } // End of namespace Gob

Modified: scummvm/trunk/engines/gob/parse.cpp
===================================================================
--- scummvm/trunk/engines/gob/parse.cpp	2007-04-21 14:06:55 UTC (rev 26555)
+++ scummvm/trunk/engines/gob/parse.cpp	2007-04-21 20:13:15 UTC (rev 26556)
@@ -196,17 +196,17 @@
 				debugN(5, "var8_%d", _vm->_inter->load16());
 				break;
 
-			case 19: // uint32 immediate
+			case 19: // int32/uint32 immediate
 				debugN(5, "%d", READ_LE_UINT32(_vm->_global->_inter_execPtr));
 				_vm->_global->_inter_execPtr += 4;
 				break;
 
-			case 20: // uint16 immediate
+			case 20: // int16 immediate
 				debugN(5, "%d", _vm->_inter->load16());
 				break;
 
-			case 21: // uint8 immediate
-				debugN(5, "%d",  *_vm->_global->_inter_execPtr++);
+			case 21: // int8 immediate
+				debugN(5, "%d", (int8) *_vm->_global->_inter_execPtr++);
 				break;
 
 			case 22: // string immediate


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