[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.358,2.359 script_v100he.cpp,2.58,2.59 script_v90he.cpp,2.151,2.152 sprite_he.cpp,1.33,1.34 sprite_he.h,1.9,1.10
kirben
kirben at users.sourceforge.net
Wed Feb 23 03:17:03 CET 2005
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20830/scumm
Modified Files:
intern.h script_v100he.cpp script_v90he.cpp sprite_he.cpp
sprite_he.h
Log Message:
Update HE100
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.358
retrieving revision 2.359
diff -u -d -r2.358 -r2.359
--- intern.h 23 Feb 2005 09:55:34 -0000 2.358
+++ intern.h 23 Feb 2005 11:15:41 -0000 2.359
@@ -937,7 +937,8 @@
void spriteInfoSet_flags23_26(int spriteId, int value);
void spriteInfoSet_flag31(int spriteId, int value);
void spriteInfoSet_field_78_64(int spriteId, int value);
- void spriteInfoSet_setClassFlags(int spriteId, int value1, int value2);
+ void spriteInfoSet_setClassFlags(int spriteId, int value);
+ void spriteInfoSet_setClassFlag(int spriteId, int classId, int toggle);
void spriteInfoSet_resetClassFlags(int spriteId);
void spriteInfoSet_field_88(int spriteId, int type, int value);
Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.58
retrieving revision 2.59
diff -u -d -r2.58 -r2.59
--- script_v100he.cpp 23 Feb 2005 04:35:19 -0000 2.58
+++ script_v100he.cpp 23 Feb 2005 11:15:41 -0000 2.59
@@ -1582,7 +1582,7 @@
void ScummEngine_v100he::o100_setSpriteInfo() {
int args[16];
- int spriteId, tmp[2];
+ int spriteId, n, tmp[2];
static int storedFields[2];
byte string[80];
@@ -1654,7 +1654,27 @@
spriteInfoSet_field_7C(spriteId, args[0]);
break;
case 16:
- getStackList(args, ARRAYSIZE(args));
+ n = getStackList(args, ARRAYSIZE(args));
+ if (_curSpriteId != 0 && _curMaxSpriteId != 0 && n != 0) {
+ int *p = &args[n - 1];
+ do {
+ int code = *p;
+ if (code == 0) {
+ for (int i = _curSpriteId; i <= _curMaxSpriteId; ++i) {
+ spriteInfoSet_resetClassFlags(i);
+ }
+ } else if (code & 0x80) {
+ for (int i = _curSpriteId; i <= _curMaxSpriteId; ++i) {
+ spriteInfoSet_setClassFlag(i, code & 0x7F, 1);
+ }
+ } else {
+ for (int i = _curSpriteId; i <= _curMaxSpriteId; ++i) {
+ spriteInfoSet_setClassFlag(i, code & 0x7F, 0);
+ }
+ }
+ --p;
+ } while (--n);
+ }
break;
case 32:
args[0] = pop();
@@ -1726,6 +1746,7 @@
spriteInfoSet_resetSprite(spriteId);
break;
case 54:
+ // TODO
pop();
pop();
break;
@@ -1881,9 +1902,25 @@
spriteInfoSet_field_44(spriteId, args[0], args[1]);
break;
case 88:
- pop();
+ args[0] = pop();
+ if (_curSpriteId > _curMaxSpriteId)
+ break;
+ spriteId = _curSpriteId;
+ if (!spriteId)
+ spriteId++;
+
+ for (; spriteId <= _curMaxSpriteId; spriteId++)
+ spriteInfoSet_setClassFlags(spriteId, args[0]);
break;
case 89:
+ if (_curSpriteId > _curMaxSpriteId)
+ break;
+ spriteId = _curSpriteId;
+ if (!spriteId)
+ spriteId++;
+
+ for (; spriteId <= _curMaxSpriteId; spriteId++)
+ spriteInfoSet_resetClassFlags(spriteId);
break;
default:
error("o100_setSpriteInfo: Unknown case %d", subOp);
@@ -2421,6 +2458,7 @@
push(0);
break;
case 54:
+ // TODO
pop();
pop();
push(0);
@@ -2506,6 +2544,7 @@
}
break;
case 82:
+ // TODO
pop();
push(0);
break;
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.151
retrieving revision 2.152
diff -u -d -r2.151 -r2.152
--- script_v90he.cpp 23 Feb 2005 10:00:12 -0000 2.151
+++ script_v90he.cpp 23 Feb 2005 11:15:41 -0000 2.152
@@ -1225,11 +1225,11 @@
}
} else if (code & 0x80) {
for (int i = _curSpriteId; i <= _curMaxSpriteId; ++i) {
- spriteInfoSet_setClassFlags(i, code & 0x7F, 1);
+ spriteInfoSet_setClassFlag(i, code & 0x7F, 1);
}
} else {
for (int i = _curSpriteId; i <= _curMaxSpriteId; ++i) {
- spriteInfoSet_setClassFlags(i, code & 0x7F, 0);
+ spriteInfoSet_setClassFlag(i, code & 0x7F, 0);
}
}
--p;
Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- sprite_he.cpp 23 Feb 2005 10:14:52 -0000 1.33
+++ sprite_he.cpp 23 Feb 2005 11:15:41 -0000 1.34
@@ -517,7 +517,13 @@
_spriteTable[spriteId].field_64 = value;
}
-void ScummEngine_v90he::spriteInfoSet_setClassFlags(int spriteId, int classId, int toggle) {
+void ScummEngine_v90he::spriteInfoSet_setClassFlags(int spriteId, int value) {
+ checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
+
+ _spriteTable[spriteId].class_flags = value;
+}
+
+void ScummEngine_v90he::spriteInfoSet_setClassFlag(int spriteId, int classId, int toggle) {
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
checkRange(32, 1, classId, "class %d out of range in statement");
Index: sprite_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- sprite_he.h 23 Feb 2005 09:23:54 -0000 1.9
+++ sprite_he.h 23 Feb 2005 11:15:41 -0000 1.10
@@ -101,6 +101,8 @@
int field_80;
int class_flags;
int field_88;
+ int field_8C;
+ int field_90;
};
struct SpriteGroup {
More information about the Scummvm-git-logs
mailing list