[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.346,2.347 script_v100he.cpp,2.49,2.50 script_v90he.cpp,2.138,2.139 sprite_he.cpp,1.14,1.15
kirben
kirben at users.sourceforge.net
Sun Feb 20 20:54:32 CET 2005
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18437/scumm
Modified Files:
intern.h script_v100he.cpp script_v90he.cpp sprite_he.cpp
Log Message:
Update HE100
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.346
retrieving revision 2.347
diff -u -d -r2.346 -r2.347
--- intern.h 21 Feb 2005 02:37:05 -0000 2.346
+++ intern.h 21 Feb 2005 04:53:34 -0000 2.347
@@ -885,6 +885,7 @@
int spriteInfoGet_resId(int spriteId);
int spriteInfoGet_resState(int spriteId);
int spriteInfoGet_groupNum(int spriteId);
+ int spriteInfoGet_field_14(int spriteId);
int spriteInfoGet_field_18(int spriteId);
int spriteInfoGet_grp_tx(int spriteId);
int spriteInfoGet_grp_ty(int spriteId);
@@ -893,6 +894,7 @@
int spriteInfoGet_wizSize(int spriteId);
int spriteInfoGet_zoom(int spriteId);
int spriteInfoGet_field_78(int spriteId);
+ int spriteInfoGet_field_7C(int spriteId);
int spriteInfoGet_field_80(int spriteId);
void getSpriteImageDim(int spriteId, int32 &w, int32 &h);
void spriteInfoGet_tx_ty(int spriteId, int32 &tx, int32 &ty);
Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.49
retrieving revision 2.50
diff -u -d -r2.49 -r2.50
--- script_v100he.cpp 20 Feb 2005 11:14:50 -0000 2.49
+++ script_v100he.cpp 21 Feb 2005 04:53:34 -0000 2.50
@@ -1789,35 +1789,83 @@
}
void ScummEngine_v100he::o100_getSpriteGroupInfo() {
+ int32 tx, ty;
+ int spriteGroupId, type;
+
byte subOp = fetchScriptByte();
switch (subOp) {
case 5:
- pop();
+ spriteGroupId = pop();
+ if (spriteGroupId)
+ push(spriteGroupGet_allocateGroupSpritesList(spriteGroupId));
+ else
+ push(0);
break;
- case 48:
- pop();
+ case 40:
+ spriteGroupId = pop();
+ if (spriteGroupId)
+ push(spriteGroupGet_field_20(spriteGroupId));
+ else
+ push(0);
break;
case 54:
+ // TODO
pop();
pop();
+ push(0);
break;
case 59:
- pop();
+ spriteGroupId = pop();
+ if (spriteGroupId)
+ push(spriteGroupGet_field_10(spriteGroupId));
+ else
+ push(0);
break;
case 60:
- pop();
- pop();
+ type = pop();
+ spriteGroupId = pop();
+ if (spriteGroupId) {
+ switch(type) {
+ case 0:
+ push(spriteGroupGet_field_30(spriteGroupId));
+ break;
+ case 1:
+ push(spriteGroupGet_field_34(spriteGroupId));
+ break;
+ case 2:
+ push(spriteGroupGet_field_38(spriteGroupId));
+ break;
+ case 3:
+ push(spriteGroupGet_field_3C(spriteGroupId));
+ break;
+ default:
+ push(0);
+ }
+ } else {
+ push(0);
+ }
break;
case 85:
- pop();
+ spriteGroupId = pop();
+ if (spriteGroupId) {
+ spriteGroupGet_tx_ty(spriteGroupId, tx, ty);
+ push(tx);
+ } else {
+ push(0);
+ }
break;
case 86:
- pop();
+ spriteGroupId = pop();
+ if (spriteGroupId) {
+ spriteGroupGet_tx_ty(spriteGroupId, tx, ty);
+ push(ty);
+ } else {
+ push(0);
+ }
break;
default:
error("o100_getSpriteGroupInfo: Unknown case %d", subOp);
}
- push(0);
debug(1,"o100_getSpriteGroupInfo stub (%d)", subOp);
}
@@ -1978,34 +2026,65 @@
void ScummEngine_v100he::o100_getSpriteInfo() {
int args[16];
+ int spriteId, flags;
+ int32 a, b;
byte subOp = fetchScriptByte();
switch (subOp) {
case 3:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_flags_6(spriteId));
+ else
+ push(0);
break;
case 4:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_78(spriteId));
+ else
+ push(1);
break;
case 7:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_7C(spriteId));
+ else
+ push(0);
break;
case 16:
getStackList(args, ARRAYSIZE(args));
pop();
+ push(0);
break;
case 26:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_wizSize(spriteId));
+ else
+ push(0);
break;
case 30:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_grp_tx(spriteId));
+ else
+ push(0);
break;
case 31:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_grp_ty(spriteId));
+ else
+ push(0);
break;
case 32:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_flags_8(spriteId));
+ else
+ push(1);
break;
case 33:
getStackList(args, ARRAYSIZE(args));
@@ -2013,68 +2092,165 @@
pop();
pop();
pop();
+ push(0);
break;
case 38:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_groupNum(spriteId));
+ else
+ push(0);
break;
case 39:
- pop();
+ spriteId = pop();
+ if (spriteId) {
+ getSpriteImageDim(spriteId, a, b);
+ push(b);
+ } else {
+ push(0);
+ }
break;
case 40:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_resId(spriteId));
+ else
+ push(0);
break;
case 48:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_80(spriteId));
+ else
+ push(0);
break;
case 54:
pop();
pop();
+ push(0);
break;
case 57:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_14(spriteId));
+ else
+ push(0);
break;
case 59:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_18(spriteId));
+ else
+ push(0);
break;
case 60:
- pop();
- pop();
+ flags = pop();
+ spriteId = pop();
+ if (spriteId) {
+ switch(flags) {
+ case 0:
+ push(spriteInfoGet_flags_1(spriteId));
+ break;
+ case 1:
+ push(spriteInfoGet_flags_2(spriteId));
+ break;
+ case 2:
+ push(spriteInfoGet_flags_3(spriteId));
+ break;
+ case 3:
+ push(spriteInfoGet_flags_4(spriteId));
+ break;
+ case 4:
+ push(spriteInfoGet_flags_5(spriteId));
+ break;
+ default:
+ push(0);
+ }
+ } else {
+ push(0);
+ }
break;
case 65:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_zoom(spriteId));
+ else
+ push(0);
break;
case 70:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_54(spriteId));
+ else
+ push(0);
break;
case 73:
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_resState(spriteId));
+ else
+ push(0);
break;
case 75:
- pop();
+ spriteId = pop();
+ if (spriteId) {
+ spriteInfoGet_field_2C_30(spriteId, a, b);
+ push(a);
+ } else {
+ push(0);
+ }
break;
case 76:
- pop();
+ spriteId = pop();
+ if (spriteId) {
+ spriteInfoGet_field_2C_30(spriteId, a, b);
+ push(b);
+ } else {
+ push(0);
+ }
break;
case 82:
pop();
+ push(0);
break;
case 83:
pop();
- pop();
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_44(spriteId));
+ else
+ push(0);
break;
case 84:
- pop();
+ spriteId = pop();
+ if (spriteId) {
+ getSpriteImageDim(spriteId, a, b);
+ push(a);
+ } else {
+ push(0);
+ }
break;
case 85:
- pop();
+ spriteId = pop();
+ if (spriteId) {
+ spriteInfoGet_tx_ty(spriteId, a, b);
+ push(a);
+ } else {
+ push(0);
+ }
break;
case 86:
- pop();
+ spriteId = pop();
+ if (spriteId) {
+ spriteInfoGet_tx_ty(spriteId, a, b);
+ push(b);
+ } else {
+ push(0);
+ }
break;
default:
error("o100_getSpriteInfo: Unknown case %d", subOp);
}
- push(0);
debug(1,"o100_getSpriteInfo stub (%d)", subOp);
}
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.138
retrieving revision 2.139
diff -u -d -r2.138 -r2.139
--- script_v90he.cpp 21 Feb 2005 02:37:05 -0000 2.138
+++ script_v90he.cpp 21 Feb 2005 04:53:34 -0000 2.139
@@ -847,6 +847,13 @@
else
push(0);
break;
+ case 32:
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_7C(spriteId));
+ else
+ push(0);
+ break;
case 33:
spriteId = pop();
if (spriteId)
@@ -868,6 +875,13 @@
else
push(0);
break;
+ case 56:
+ spriteId = pop();
+ if (spriteId)
+ push(spriteInfoGet_field_14(spriteId));
+ else
+ push(0);
+ break;
case 62:
spriteId = pop();
if (spriteId)
@@ -880,7 +894,7 @@
if (spriteId)
push(spriteInfoGet_field_78(spriteId));
else
- push(0);
+ push(1);
break;
case 68:
spriteId = pop();
@@ -1289,19 +1303,17 @@
break;
case 43:
spriteGroupId = pop();
- if (spriteGroupId) {
+ if (spriteGroupId)
push(spriteGroupGet_field_10(spriteGroupId));
- } else {
+ else
push(0);
- }
break;
case 63: // HE 99+
spriteGroupId = pop();
- if (spriteGroupId) {
+ if (spriteGroupId)
push(spriteGroupGet_field_20(spriteGroupId));
- } else {
+ else
push(0);
- }
break;
case 139: // HE 99+
// dummy case
Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- sprite_he.cpp 21 Feb 2005 02:37:05 -0000 1.14
+++ sprite_he.cpp 21 Feb 2005 04:53:34 -0000 1.15
@@ -104,6 +104,12 @@
return _spriteTable[spriteId].group_num;
}
+int ScummEngine_v90he::spriteInfoGet_field_14(int spriteId) {
+ checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_14: 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");
@@ -158,6 +164,12 @@
return _spriteTable[spriteId].field_78;
}
+int ScummEngine_v90he::spriteInfoGet_field_7C(int spriteId) {
+ checkRange(_varNumSprites, 1, spriteId, "spriteInfoGet_field_7C: 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");
More information about the Scummvm-git-logs
mailing list