aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2004-09-30 11:56:59 +0000
committerTravis Howell2004-09-30 11:56:59 +0000
commit63a5bb802751994ff5be0e57f9f748948f5d005a (patch)
tree659db5329474dceba29cc6415fbddc5d1f635a35
parent8499a7bc430b50925b0315214b42bbcbcaf2cdf4 (diff)
downloadscummvm-rg350-63a5bb802751994ff5be0e57f9f748948f5d005a.tar.gz
scummvm-rg350-63a5bb802751994ff5be0e57f9f748948f5d005a.tar.bz2
scummvm-rg350-63a5bb802751994ff5be0e57f9f748948f5d005a.zip
Not quite right.
svn-id: r15361
-rw-r--r--scumm/script_v72he.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index 5b6909d7b4..c49e1d4b20 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -1345,7 +1345,7 @@ void ScummEngine_v72he::o72_findObject() {
void ScummEngine_v72he::o72_arrayOps() {
byte subOp = fetchScriptByte();
int array = fetchScriptWord();
- int b, c;
+ int b, c, offs;
int dim1end, dim1start, dim2end, dim2start;
int id, len, len2;
ArrayHeader *ah;
@@ -1408,11 +1408,13 @@ void ScummEngine_v72he::o72_arrayOps() {
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
}
len2 = ((c - b) | dim2end) - dim2end + 1;
+ offs = (b >= c) ? 1 : -1;
while (dim2start < dim2end) {
len = len2;
while (--len >= 0) {
writeArray(array, dim2start, len, c);
}
+ c += offs;
dim2start++;
}
break;