[Scummvm-cvs-logs] CVS: scummvm/scumm script_v72he.cpp,2.143,2.144 script_v90he.cpp,2.68,2.69
Travis Howell
kirben at users.sourceforge.net
Sat Oct 2 00:51:25 CEST 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.280,2.281 script_v90he.cpp,2.67,2.68
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.306,1.307 actor.h,1.71,1.72 saveload.h,1.43,1.44
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6599/scumm
Modified Files:
script_v72he.cpp script_v90he.cpp
Log Message:
Array corrections
Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.143
retrieving revision 2.144
diff -u -d -r2.143 -r2.144
--- script_v72he.cpp 2 Oct 2004 00:12:09 -0000 2.143
+++ script_v72he.cpp 2 Oct 2004 07:46:06 -0000 2.144
@@ -1345,13 +1345,14 @@
void ScummEngine_v72he::o72_arrayOps() {
byte subOp = fetchScriptByte();
int array = fetchScriptWord();
- int b, c, offs;
+ int offs, tmp, tmp2, tmp3;
int dim1end, dim1start, dim2end, dim2start;
- int id, len, len2;
+ int id, len, b, c;
ArrayHeader *ah;
int list[128];
byte string[2048];
+
debug(1,"o72_arrayOps: case %d", subOp);
switch (subOp) {
case 7: // SO_ASSIGN_STRING
@@ -1362,7 +1363,7 @@
break;
case 126:
- len2 = getStackList(list, ARRAYSIZE(list));
+ len = getStackList(list, ARRAYSIZE(list));
dim1end = pop();
dim1start = pop();
dim2end = pop();
@@ -1371,10 +1372,14 @@
if (id == 0) {
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
}
- while (dim2start < dim2end) {
- len = len2;
- while (--len >= 0) {
- writeArray(array, dim2start, len, list[len]);
+ tmp2 = len;
+ while (dim2start <= dim2end) {
+ tmp = dim1start;
+ while (tmp <= dim1end) {
+ writeArray(array, dim2start, tmp, list[--tmp2]);
+ if (tmp2 == 0)
+ tmp2 = len;
+ tmp++;
}
dim2start++;
}
@@ -1407,14 +1412,23 @@
if (id == 0) {
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
}
- len2 = ((c - b) | dim2end) - dim2end + 1;
+
+ len = c - b;
+ len |= dim2end;
+ len = len - dim2end + 1;
offs = (b >= c) ? 1 : -1;
- while (dim2start < dim2end) {
- len = len2;
- while (--len >= 0) {
- writeArray(array, dim2start, len, c);
+ while (dim2start <= dim2end) {
+ tmp = dim1start;
+ tmp2 = c;
+ tmp3 = len;
+ while (tmp <= dim1end) {
+ writeArray(array, dim2start, tmp, tmp2);
+ if (--tmp3 == 0)
+ tmp2 = c;
+ else
+ tmp2 += offs;
+ tmp++;
}
- c += offs;
dim2start++;
}
break;
@@ -1854,6 +1868,12 @@
mode = pop();
copyScriptString(filename);
+ // HACK bb2demo uses incorrect filename
+ if (!strcmp((char *)filename,".HE9")) {
+ memset(filename, 0, sizeof(filename));
+ sprintf((char *)filename, "%s.he9", _gameName.c_str());
+ }
+
for (r = strlen((char*)filename); r != 0; r--) {
if (filename[r - 1] == '\\')
break;
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.68
retrieving revision 2.69
diff -u -d -r2.68 -r2.69
--- script_v90he.cpp 2 Oct 2004 01:40:34 -0000 2.68
+++ script_v90he.cpp 2 Oct 2004 07:46:06 -0000 2.69
@@ -849,6 +849,9 @@
case 52: // HE 98+
pop();
break;
+ case 58: // HE 99+
+ pop();
+ break;
case 63: // HE 98+
pop();
break;
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.280,2.281 script_v90he.cpp,2.67,2.68
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.306,1.307 actor.h,1.71,1.72 saveload.h,1.43,1.44
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list