[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.348,2.349 script_v100he.cpp,2.51,2.52 script_v90he.cpp,2.139,2.140 sprite_he.cpp,1.18,1.19

kirben kirben at users.sourceforge.net
Mon Feb 21 17:27:33 CET 2005


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

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

Add a few sprite stubs


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.348
retrieving revision 2.349
diff -u -d -r2.348 -r2.349
--- intern.h	22 Feb 2005 01:16:41 -0000	2.348
+++ intern.h	22 Feb 2005 01:25:53 -0000	2.349
@@ -874,6 +874,9 @@
 	uint8 getWizPixelColor(int restype, int resnum, int state, int x, int y, int flags);
 	int computeWizHistogram(int resnum, int state, int x, int y, int w, int h);
 	
+	int spriteInfoGet_case15(int a, int b, int c, int d, int num, int *args);
+	int spriteInfoGet_classFlags(int spriteId, int num);
+	int spriteInfoGet_classFlags2(int spriteId, int num, int *args);
 	int spriteInfoGet_flags_1(int spriteId);
 	int spriteInfoGet_flags_2(int spriteId);
 	int spriteInfoGet_flags_3(int spriteId);

Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.51
retrieving revision 2.52
diff -u -d -r2.51 -r2.52
--- script_v100he.cpp	21 Feb 2005 06:31:03 -0000	2.51
+++ script_v100he.cpp	22 Feb 2005 01:25:53 -0000	2.52
@@ -2232,7 +2232,7 @@
 
 void ScummEngine_v100he::o100_getSpriteInfo() {
 	int args[16];
-	int spriteId, flags;
+	int spriteId, flags, c, d, e, f;
 	int32 a, b;
 
 	byte subOp = fetchScriptByte();
@@ -2260,9 +2260,16 @@
 			push(0);
 		break;
 	case 16:
-		getStackList(args, ARRAYSIZE(args));
-		pop();
-		push(0);
+		flags = getStackList(args, ARRAYSIZE(args));
+		spriteId = pop();
+		if (spriteId) {
+			if (flags)
+				push(spriteInfoGet_classFlags2(spriteId, flags, args));
+			else
+				push(spriteInfoGet_classFlags(spriteId, -1));
+		} else {
+			push(0);
+		}
 		break;
 	case 26:
 		spriteId = pop();
@@ -2293,12 +2300,12 @@
 			push(1);
 		break;
 	case 33:
-		getStackList(args, ARRAYSIZE(args));
-		pop();
-		pop();
-		pop();
-		pop();
-		push(0);
+		flags = getStackList(args, ARRAYSIZE(args));
+		c = pop();
+		d = pop();
+		e = pop();
+		f = pop();
+		push(spriteInfoGet_case15(f, e, d, c, flags, args));
 		break;
 	case 38:
 		spriteId = pop();

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.139
retrieving revision 2.140
diff -u -d -r2.139 -r2.140
--- script_v90he.cpp	21 Feb 2005 04:53:34 -0000	2.139
+++ script_v90he.cpp	22 Feb 2005 01:25:53 -0000	2.140
@@ -698,8 +698,9 @@
 
 void ScummEngine_v90he::o90_getSpriteInfo() {
 	int args[16];
-	int spriteId, flags;
+	int spriteId, flags, c, d, e, f;
 	int32 a, b;
+
 	byte subOp = fetchScriptByte();
 	subOp -= 30;
 
@@ -823,11 +824,12 @@
 		break;
 	case 15:
 		if (_heversion == 99) {
-			getStackList(args, ARRAYSIZE(args));
-			pop();
-			pop();
-			pop();
-			pop();
+			flags = getStackList(args, ARRAYSIZE(args));
+			c = pop();
+			d = pop();
+			e = pop();
+			f = pop();
+			push(spriteInfoGet_case15(f, e, d, c, flags, args));
 		} else if (_heversion == 98) {
 			pop();
 			pop();
@@ -911,9 +913,16 @@
 			push(0);
 		break;
 	case 95:
-		getStackList(args, ARRAYSIZE(args));
-		pop();
-		push(0);
+		flags = getStackList(args, ARRAYSIZE(args));
+		spriteId = pop();
+		if (spriteId) {
+			if (flags)
+				push(spriteInfoGet_classFlags2(spriteId, flags, args));
+			else
+				push(spriteInfoGet_classFlags(spriteId, -1));
+		} else {
+			push(0);
+		}
 		break;
 	case 109:
 		// dummy case

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- sprite_he.cpp	22 Feb 2005 01:23:15 -0000	1.18
+++ sprite_he.cpp	22 Feb 2005 01:25:53 -0000	1.19
@@ -32,92 +32,112 @@
 
 void ScummEngine_v90he::allocateArrays() {
 	ScummEngine::allocateArrays();
-	spritesAllocTables(_numSprites, 64, 64);
+	// FIXME Check real _varNumSpriteGroups value
+	spritesAllocTables(_numSprites, 640, 64);
 }
 
 //
 // spriteInfoGet functions
 //
+int ScummEngine_v90he::spriteInfoGet_case15(int a, int b, int c, int d, int num, int *args) {
+	// TODO
+	return 0;
+}
+
+int ScummEngine_v90he::spriteInfoGet_classFlags(int spriteId, int num) {
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
+
+	// TODO
+	return 0;
+}
+
+int ScummEngine_v90he::spriteInfoGet_classFlags2(int spriteId, int num, int *args) {
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
+
+	// TODO
+	return 0;
+}
+
 int ScummEngine_v90he::spriteInfoGet_flags_1(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_1: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return ((_spriteTable[spriteId].flags & kSF15) != 0) ? 1 : 0;
 }
 
 int ScummEngine_v90he::spriteInfoGet_flags_2(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_2: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return ((_spriteTable[spriteId].flags & kSF14) != 0) ? 1 : 0;
 }
 
 int ScummEngine_v90he::spriteInfoGet_flags_3(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_3: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return ((_spriteTable[spriteId].flags & kSF16) != 0) ? 1 : 0;
 }
 
 int ScummEngine_v90he::spriteInfoGet_flags_4(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_4: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return ((_spriteTable[spriteId].flags & kSF13) != 0) ? 1 : 0;
 }
 
 int ScummEngine_v90he::spriteInfoGet_flags_5(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_5: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return ((_spriteTable[spriteId].flags & kSF20) != 0) ? 1 : 0;
 }
 
 int ScummEngine_v90he::spriteInfoGet_flags_6(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_6: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].flags & kSF22;
 }
 
 int ScummEngine_v90he::spriteInfoGet_flags_7(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_7: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return ((_spriteTable[spriteId].flags & kSF23) != 0) ? 1 : 0;
 }
 
 int ScummEngine_v90he::spriteInfoGet_flags_8(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "_spriteTableGet_flags_8: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return ((_spriteTable[spriteId].flags & kSF31) != 0) ? 1 : 0;
 }
 
 int ScummEngine_v90he::spriteInfoGet_resId(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_resId: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].res_id;
 }
 
 int ScummEngine_v90he::spriteInfoGet_resState(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_resState: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].res_state;
 }
 
 int ScummEngine_v90he::spriteInfoGet_groupNum(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_groupNum: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].group_num;
 }
 
 int ScummEngine_v90he::spriteInfoGet_field_14(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_14: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].field_14;
 }
 
 int ScummEngine_v90he::spriteInfoGet_field_18(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_18: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].field_18;
 }
 
 int ScummEngine_v90he::spriteInfoGet_grp_tx(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_grp_tx: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	if (_spriteTable[spriteId].group_num)
 		return _spriteTable[spriteId].tx + _spriteGroups[spriteId].tx;
@@ -126,7 +146,7 @@
 }
 
 int ScummEngine_v90he::spriteInfoGet_grp_ty(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_grp_ty: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	if (_spriteTable[spriteId].group_num)
 		return _spriteTable[spriteId].ty + _spriteGroups[spriteId].ty;
@@ -135,62 +155,62 @@
 }
 
 int ScummEngine_v90he::spriteInfoGet_field_44(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_44: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].field_44;
 }
 
 int ScummEngine_v90he::spriteInfoGet_field_54(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_54: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].field_54;
 }
 
 int ScummEngine_v90he::spriteInfoGet_wizSize(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_wizSize: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].res_wiz_states;
 }
 
 int ScummEngine_v90he::spriteInfoGet_zoom(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_zoom: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].zoom;
 }
 
 int ScummEngine_v90he::spriteInfoGet_field_78(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_78: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].field_78;
 }
 
 int ScummEngine_v90he::spriteInfoGet_field_7C(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_7C: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].field_7C;
 }
 
 int ScummEngine_v90he::spriteInfoGet_field_80(int spriteId) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_80: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	return _spriteTable[spriteId].field_80;
 }
 
 void ScummEngine_v90he::getSpriteImageDim(int spriteId, int32 &w, int32 &h) {
-	checkRange(_varNumSprites, 1, spriteId, "getSpriteImageDim: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	getWizImageDim(_spriteTable[spriteId].res_id, _spriteTable[spriteId].res_state, w, h);
 }
 
 void ScummEngine_v90he::spriteInfoGet_tx_ty(int spriteId, int32 &tx, int32 &ty) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_tx_ty: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	tx = _spriteTable[spriteId].tx;
 	ty = _spriteTable[spriteId].ty;
 }
 
 void ScummEngine_v90he::spriteInfoGet_field_2C_30(int spriteId, int32 &field_2C, int32 &field_30) {
-	checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_2C_30: Invalid sprite %d");
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
 	field_2C = _spriteTable[spriteId].field_2C;
 	field_30 = _spriteTable[spriteId].field_30;
@@ -207,43 +227,43 @@
 }
 
 int ScummEngine_v90he::spriteGroupGet_field_10(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "spriteInfoGet_field_10: Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].field_10;
 }
 
 int ScummEngine_v90he::spriteGroupGet_field_20(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "spriteInfoGet_field_20: Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].field_20;
 }
 
 int ScummEngine_v90he::spriteGroupGet_field_30(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "spriteInfoGet_field_30: Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].field_30;
 }
 
 int ScummEngine_v90he::spriteGroupGet_field_34(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "spriteInfoGet_field_34: Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].field_34;
 }
 
 int ScummEngine_v90he::spriteGroupGet_field_38(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "spriteInfoGet_field_38: Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].field_38;
 }
 
 int ScummEngine_v90he::spriteGroupGet_field_3C(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "spriteInfoGet_field_3C: Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].field_3C;
 }
 
 void ScummEngine_v90he::spriteGroupGet_tx_ty(int spriteGroupId, int32 &tx, int32 &ty) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "spriteGroupGet_tx_ty: Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	tx = _spriteGroups[spriteGroupId].tx;
 	ty = _spriteGroups[spriteGroupId].ty;





More information about the Scummvm-git-logs mailing list