[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.337,2.338 script_v90he.cpp,2.127,2.128 sprite_he.cpp,1.5,1.6

kirben kirben at users.sourceforge.net
Sun Feb 20 15:31:43 CET 2005


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

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

Add more sprite functions


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.337
retrieving revision 2.338
diff -u -d -r2.337 -r2.338
--- intern.h	20 Feb 2005 22:16:31 -0000	2.337
+++ intern.h	20 Feb 2005 23:30:36 -0000	2.338
@@ -879,6 +879,19 @@
 	int spriteInfoGet_flags_6(int spriteNum);
 	int spriteInfoGet_flags_7(int spriteNum);	
 	int spriteInfoGet_flags_8(int spriteNum);
+	int spriteInfoGet_resId(int spriteNun);
+	int spriteInfoGet_resState(int spriteNun);
+	int spriteInfoGet_groupNum(int spriteNun);
+	int spriteInfoGet_field_18(int spriteNun);
+	int spriteInfoGet_grp_tx(int spriteNun);
+	int spriteInfoGet_grp_ty(int spriteNun);
+	int spriteInfoGet_field_44(int spriteNun);
+	int spriteInfoGet_field_54(int spriteNun);
+	int spriteInfoGet_wizSize(int spriteNun);
+	int spriteInfoGet_zoom(int spriteNun);
+	int spriteInfoGet_field_78(int spriteNun);
+	int spriteInfoGet_field_80(int spriteNun);
+
 	void spritesAllocTables(int numSprites, int numGroups, int numImgSprites);
 	void spritesResetTables(bool refreshScreen);
 	void spriteGroupCheck(int sprGrpId);

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.127
retrieving revision 2.128
diff -u -d -r2.127 -r2.128
--- script_v90he.cpp	20 Feb 2005 13:26:30 -0000	2.127
+++ script_v90he.cpp	20 Feb 2005 23:30:37 -0000	2.128
@@ -723,16 +723,32 @@
 		pop();
 		break;
 	case 6:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_wizSize(eax));
+		else
+			push(0);
 		break;
 	case 7:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_groupNum(eax));
+		else
+			push(0);
 		break;
 	case 8:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_grp_tx(eax));
+		else
+			push(0);
 		break;
 	case 9:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_grp_ty(eax));
+		else
+			push(0);
 		break;
 	case 12:
 		esi = pop();
@@ -762,7 +778,11 @@
 		}
 		break;
 	case 13:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_field_18(eax));
+		else
+			push(0);
 		break;
 	case 15:
 		if (_heversion == 99) {
@@ -783,13 +803,25 @@
 		}
 		break;
 	case 22:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_resState(eax));
+		else
+			push(0);
 		break;
 	case 33:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_resId(eax));
+		else
+			push(0);
 		break;
 	case 38:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_flags_8(eax));
+		else
+			push(1);
 		break;
 	case 52:
 		eax = pop();
@@ -799,13 +831,25 @@
 			push(0);
 		break;
 	case 62:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_zoom(eax));
+		else
+			push(0);
 		break;
 	case 67:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_field_78(eax));
+		else
+			push(0);
 		break;
 	case 68:
-		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_field_54(eax));
+		else
+			push(0);
 		break;
 	case 94:
 		eax = pop();
@@ -818,9 +862,25 @@
 		getStackList(args, ARRAYSIZE(args));
 		pop();
 		break;
-	case 168:
+	case 109:
+		// dummy case
 		pop();
+		push(0);
+		break;
+	case 110:
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_field_80(eax));
+		else
+			push(0);
+		break;
+	case 168:
 		pop();
+		eax = pop();
+		if (eax)
+			push(spriteInfoGet_field_44(eax));
+		else
+			push(0);
 		break;
 	default:
 		error("o90_getSpriteInfo: Unknown case %d", subOp);

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- sprite_he.cpp	20 Feb 2005 22:16:31 -0000	1.5
+++ sprite_he.cpp	20 Feb 2005 23:30:37 -0000	1.6
@@ -83,6 +83,78 @@
 	return ((_spriteTable[spriteNum].flags & kSF31) != 0) ? 1 : 0;
 }
 
+int ScummEngine_v90he::spriteInfoGet_resId(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_resId: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].res_id;
+}
+
+int ScummEngine_v90he::spriteInfoGet_resState(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_resState: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].res_state;
+}
+
+int ScummEngine_v90he::spriteInfoGet_groupNum(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_groupNum: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].group_num;
+}
+
+int ScummEngine_v90he::spriteInfoGet_field_18(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_field_18: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].field_18;
+}
+
+int ScummEngine_v90he::spriteInfoGet_grp_tx(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_grp_tx: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].tx;
+}
+
+int ScummEngine_v90he::spriteInfoGet_grp_ty(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_grp_ty: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].ty;
+}
+
+int ScummEngine_v90he::spriteInfoGet_field_44(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_field_44: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].field_44;
+}
+
+int ScummEngine_v90he::spriteInfoGet_field_54(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_field_54: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].field_54;
+}
+
+int ScummEngine_v90he::spriteInfoGet_wizSize(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_wizSize: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].res_wiz_states;
+}
+
+int ScummEngine_v90he::spriteInfoGet_zoom(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_zoom: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].zoom;
+}
+
+int ScummEngine_v90he::spriteInfoGet_field_78(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_field_78: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].field_78;
+}
+
+int ScummEngine_v90he::spriteInfoGet_field_80(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "spriteInfoGet_field_80: Invalid sprite %d");
+
+	return _spriteTable[spriteNum].field_80;
+}
+
 void ScummEngine_v90he::spritesAllocTables(int numSprites, int numGroups, int numImgLists) {
 	_varNumSpriteGroups = numGroups;
 	_numSpritesToProcess = 0;





More information about the Scummvm-git-logs mailing list