[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.352,2.353 script_v100he.cpp,2.54,2.55 script_v90he.cpp,2.144,2.145 sprite_he.cpp,1.22,1.23

kirben kirben at users.sourceforge.net
Tue Feb 22 17:11:12 CET 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22584/scumm

Modified Files:
	intern.h script_v100he.cpp script_v90he.cpp sprite_he.cpp 
Log Message:

Add setSpriteGroupInfo stubs


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.352
retrieving revision 2.353
diff -u -d -r2.352 -r2.353
--- intern.h	22 Feb 2005 22:52:34 -0000	2.352
+++ intern.h	23 Feb 2005 01:08:29 -0000	2.353
@@ -854,6 +854,7 @@
 
 	int _curMaxSpriteId;
 	int _curSpriteId;
+	int _curSpriteGroupId;
 
 public:
 	ScummEngine_v90he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v80he(detector, syst, gs, md5sum) {}
@@ -938,6 +939,26 @@
 	void spriteInfoSet_setClassFlags(int spriteId, int value1, int value2);
 	void spriteInfoSet_resetClassFlags(int spriteId);
 
+	void spriteGroupSet_case0_0(int spriteGroupId, int value1, int value2);
+	void spriteGroupSet_case0_1(int spriteGroupId, int value);
+	void spriteGroupSet_case0_2(int spriteGroupId, int value);
+	void spriteGroupSet_case0_3(int spriteGroupId, int value);
+	void spriteGroupSet_case0_4(int spriteGroupId);
+	void spriteGroupSet_case0_5(int spriteGroupId, int value);
+	void spriteGroupSet_case0_6(int spriteGroupId, int value);
+	void spriteGroupSet_case0_7(int spriteGroupId, int value);
+	void spriteGroupSet_case5_0(int spriteGroupId, int value);
+	void spriteGroupSet_case5_1(int spriteGroupId, int value);
+	void spriteGroupSet_case5_2(int spriteGroupId, int value);
+	void spriteGroupSet_case5_3(int spriteGroupId, int value);
+	void spriteGroupSet_field_10(int spriteGroupId, int value);
+	void spriteGroupSet_tx_ty(int spriteGroupId, int value1, int value2);
+	void spriteGroupSet_case26(int spriteGroupId, int value);
+	void spriteGroupSet_case28(int spriteGroupId, int value1, int value2);
+	void spriteGroupSet_fields_0_4_8_C(int spriteGroupId, int value1, int value2, int value3, int value4);
+	void spriteGroupSet_case56(int spriteGroupId);
+	void spriteGroupSet_case180(int spriteGroupId);
+
 	void spritesAllocTables(int numSprites, int numGroups, int numMaxSprites);
 	void spritesResetTables(bool refreshScreen);
 	void spriteGroupCheck(int spriteGroupId);

Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.54
retrieving revision 2.55
diff -u -d -r2.54 -r2.55
--- script_v100he.cpp	22 Feb 2005 13:54:38 -0000	2.54
+++ script_v100he.cpp	23 Feb 2005 01:08:29 -0000	2.55
@@ -833,78 +833,160 @@
 
 void ScummEngine_v100he::o100_setSpriteGroupInfo() {
 	byte string[260];
+	int type, value1, value2, value3, value4;
 
 	byte subOp = fetchScriptByte();
 
-	debug(1,"o100_setSpriteGroupInfo stub (%d)", subOp);
+	debug(1,"o100_setSpriteGroupInfo (%d)", subOp);
 	switch (subOp) {
 	case 0:
-		pop();
+		_curSpriteGroupId = pop();
 		break;
 	case 6:
-		pop();
-		pop();
+		value2 = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case28(_curSpriteGroupId, value1, value2);
 		break;
 	case 18:
-		pop();
-		pop();
-		pop();
-		pop();
+		value4 = pop();
+		value3 = pop();
+		value2 = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_fields_0_4_8_C(_curSpriteGroupId, value1, value2, value3, value4);
 		break;
 	case 38:
-		switch (pop()) {
+		type = pop() - 1;
+		switch (type) {
+		case 0:
+			value2 = pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_0(_curSpriteGroupId, value1, value2);
+			break;
 		case 1:
-			pop();
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_1(_curSpriteGroupId, value1);
 			break;
 		case 2:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_2(_curSpriteGroupId, value1);
 			break;
 		case 3:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_3(_curSpriteGroupId, value1);
 			break;
 		case 4:
-			pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_4(_curSpriteGroupId);
 			break;
 		case 5:
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_5(_curSpriteGroupId, value1);
 			break;
 		case 6:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_6(_curSpriteGroupId, value1);
 			break;
 		case 7:
-			pop();
-			break;
-		case 8:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_7(_curSpriteGroupId, value1);
 			break;
 		default:
 			error("o100_setSpriteGroupInfo subOp 38: Unknown case %d", subOp);
 		}
 		break;
 	case 40:
-		pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case26(_curSpriteGroupId, value1);
 		break;
 	case 49:
-		pop();
-		pop();
+		value2 = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_tx_ty(_curSpriteGroupId, value1, value2);
 		break;
 	case 52:
 		copyScriptString(string);
 		break;
 	case 53:
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case180(_curSpriteGroupId);
 		break;
 	case 54:
+		// dummy case
 		pop();
 		pop();
 		break;
 	case 59:
-		pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_field_10(_curSpriteGroupId, value1);
 		break;
 	case 60:
-		pop();
-		pop();
+		type = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		switch (type) {
+		case 0:
+			spriteGroupSet_case5_0(_curSpriteGroupId, value1);
+			break;
+		case 1:
+			spriteGroupSet_case5_1(_curSpriteGroupId, value1);
+			break;
+		case 2:
+			spriteGroupSet_case5_2(_curSpriteGroupId, value1);
+			break;
+		case 3:
+			spriteGroupSet_case5_3(_curSpriteGroupId, value1);
+			break;
+		default:
+			error("o100_setSpriteGroupInfo subOp 60: Unknown case %d", subOp);
+		}
 		break;
 	case 89:
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case56(_curSpriteGroupId);
 		break;
 	default:
 		error("o100_setSpriteGroupInfo: Unknown case %d", subOp);

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.144
retrieving revision 2.145
diff -u -d -r2.144 -r2.145
--- script_v90he.cpp	22 Feb 2005 22:52:35 -0000	2.144
+++ script_v90he.cpp	23 Feb 2005 01:08:29 -0000	2.145
@@ -1361,71 +1361,153 @@
 }
 
 void ScummEngine_v90he::o90_setSpriteGroupInfo() {
+	int type, value1, value2, value3, value4;
+
 	byte subOp = fetchScriptByte();
 	subOp -= 37;
 
-	debug(1,"o90_setSpriteGroupInfo stub (%d)", subOp);
+	debug(1,"o90_setSpriteGroupInfo (%d)", subOp);
 	switch (subOp) {
 	case 0:
-		switch (pop()) {
+		type = pop() - 1;
+		switch (type) {
+		case 0:
+			value2 = pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_0(_curSpriteGroupId, value1, value2);
+			break;
 		case 1:
-			pop();
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_1(_curSpriteGroupId, value1);
 			break;
 		case 2:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_2(_curSpriteGroupId, value1);
 			break;
 		case 3:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_3(_curSpriteGroupId, value1);
 			break;
 		case 4:
-			pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_4(_curSpriteGroupId);
 			break;
 		case 5:
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_5(_curSpriteGroupId, value1);
 			break;
 		case 6:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_6(_curSpriteGroupId, value1);
 			break;
 		case 7:
-			pop();
-			break;
-		case 8:
-			pop();
+			value1 = pop();
+			if (!_curSpriteGroupId)
+				break;
+
+			spriteGroupSet_case0_7(_curSpriteGroupId, value1);
 			break;
 		default:
 			error("o90_setSpriteGroupInfo subOp 0: Unknown case %d", subOp);
 		}
 		break;
 	case 5:
-		pop();
-		pop();
+		type = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		switch (type) {
+		case 0:
+			spriteGroupSet_case5_0(_curSpriteGroupId, value1);
+			break;
+		case 1:
+			spriteGroupSet_case5_1(_curSpriteGroupId, value1);
+			break;
+		case 2:
+			spriteGroupSet_case5_2(_curSpriteGroupId, value1);
+			break;
+		case 3:
+			spriteGroupSet_case5_3(_curSpriteGroupId, value1);
+			break;
+		default:
+			error("o90_setSpriteGroupInfo subOp 5: Unknown case %d", subOp);
+		}
 		break;
 	case 6:
-		pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_field_10(_curSpriteGroupId, value1);
 		break;
 	case 7:
-		pop();
-		pop();
+		value2 = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_tx_ty(_curSpriteGroupId, value1, value2);
 		break;
 	case 20:
-		pop();
+		_curSpriteGroupId = pop();
 		break;
 	case 26:
-		pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case26(_curSpriteGroupId, value1);
 		break;
 	case 28:
-		pop();
-		pop();
+		value2 = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case28(_curSpriteGroupId, value1, value2);
 		break;
 	case 30:
-		pop();
-		pop();
-		pop();
-		pop();
+		value4 = pop();
+		value3 = pop();
+		value2 = pop();
+		value1 = pop();
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_fields_0_4_8_C(_curSpriteGroupId, value1, value2, value3, value4);
 		break;
 	case 56:
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case56(_curSpriteGroupId);
 		break;
 	case 180:
+		if (!_curSpriteGroupId)
+			break;
+
+		spriteGroupSet_case180(_curSpriteGroupId);
 		break;
 	default:
 		error("o90_setSpriteGroupInfo: Unknown case %d", subOp);

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- sprite_he.cpp	22 Feb 2005 22:52:35 -0000	1.22
+++ sprite_he.cpp	23 Feb 2005 01:08:29 -0000	1.23
@@ -512,6 +512,85 @@
 	// TODO
 }
 
+//
+// spriteGroupSet functions
+//
+void ScummEngine_v90he::spriteGroupSet_case0_0(int spriteGroupId, int value1, int value2) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case0_1(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case0_2(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case0_3(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case0_4(int spriteGroupId) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case0_5(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case0_6(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case0_7(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case5_0(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case5_1(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case5_2(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case5_3(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_field_10(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_tx_ty(int spriteGroupId, int value1, int value2) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case26(int spriteGroupId, int value) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case28(int spriteGroupId, int value1, int value2) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_fields_0_4_8_C(int spriteGroupId, int value1, int value2, int value3, int value4) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case56(int spriteGroupId) {
+	// TODO
+}
+
+void ScummEngine_v90he::spriteGroupSet_case180(int spriteGroupId) {
+	// TODO
+}
+
 void ScummEngine_v90he::spritesAllocTables(int numSprites, int numGroups, int numMaxSprites) {
 	_varNumSpriteGroups = numGroups;
 	_numSpritesToProcess = 0;





More information about the Scummvm-git-logs mailing list