Sync HE100.
Minor cleanup. svn-id: r18215
This commit is contained in:
parent
8314fc2d22
commit
76f8021a28
2 changed files with 24 additions and 29 deletions
|
@ -578,26 +578,27 @@ void ScummEngine_v100he::o100_actorOps() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v100he::o100_arrayOps() {
|
void ScummEngine_v100he::o100_arrayOps() {
|
||||||
|
ArrayHeader *ah;
|
||||||
|
byte string[1024];
|
||||||
|
int dim1end, dim1start, dim2end, dim2start;
|
||||||
|
int id, len, b, c, list[128];
|
||||||
|
int offs, tmp, tmp2;
|
||||||
|
uint tmp3;
|
||||||
|
|
||||||
byte subOp = fetchScriptByte();
|
byte subOp = fetchScriptByte();
|
||||||
int array = fetchScriptWord();
|
int array = fetchScriptWord();
|
||||||
int offs, tmp, tmp2, tmp3;
|
debug(1,"o100_arrayOps: array %d case %d", array, subOp);
|
||||||
int dim1end, dim1start, dim2end, dim2start;
|
|
||||||
int id, len, b, c;
|
|
||||||
ArrayHeader *ah;
|
|
||||||
int list[128];
|
|
||||||
byte string[1024];
|
|
||||||
|
|
||||||
debug(1,"o100_arrayOps: case %d", subOp);
|
|
||||||
switch (subOp) {
|
switch (subOp) {
|
||||||
case 35:
|
case 35:
|
||||||
decodeScriptString(string);
|
decodeScriptString(string);
|
||||||
len = resStrLen(string) + 1;
|
len = resStrLen(string);
|
||||||
ah = defineArray(array, kStringArray, 0, 0, 0, len);
|
ah = defineArray(array, kStringArray, 0, 0, 0, len);
|
||||||
memcpy(ah->data, string, len);
|
memcpy(ah->data, string, len);
|
||||||
break;
|
break;
|
||||||
case 77: // SO_ASSIGN_STRING
|
case 77: // SO_ASSIGN_STRING
|
||||||
copyScriptString(string, sizeof(string));
|
copyScriptString(string, sizeof(string));
|
||||||
len = resStrLen(string) + 1;
|
len = resStrLen(string);
|
||||||
ah = defineArray(array, kStringArray, 0, 0, 0, len);
|
ah = defineArray(array, kStringArray, 0, 0, 0, len);
|
||||||
memcpy(ah->data, string, len);
|
memcpy(ah->data, string, len);
|
||||||
break;
|
break;
|
||||||
|
@ -606,7 +607,7 @@ void ScummEngine_v100he::o100_arrayOps() {
|
||||||
len = getStackList(list, ARRAYSIZE(list));
|
len = getStackList(list, ARRAYSIZE(list));
|
||||||
id = readVar(array);
|
id = readVar(array);
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
error("o100_arrayOps: Must DIM a two dimensional array before assigning");
|
error("Must DIM a two dimensional array before assigning");
|
||||||
c = pop();
|
c = pop();
|
||||||
while (--len >= 0) {
|
while (--len >= 0) {
|
||||||
writeArray(array, c, len, list[len]);
|
writeArray(array, c, len, list[len]);
|
||||||
|
@ -617,7 +618,7 @@ void ScummEngine_v100he::o100_arrayOps() {
|
||||||
c = pop();
|
c = pop();
|
||||||
id = readVar(array);
|
id = readVar(array);
|
||||||
if (id == 0) {
|
if (id == 0) {
|
||||||
defineArray(array, kDwordArray, 0, 0, 0, b + c);
|
defineArray(array, kDwordArray, 0, 0, 0, b + c - 1);
|
||||||
}
|
}
|
||||||
while (c--) {
|
while (c--) {
|
||||||
writeArray(array, 0, b + c, pop());
|
writeArray(array, 0, b + c, pop());
|
||||||
|
@ -657,7 +658,7 @@ void ScummEngine_v100he::o100_arrayOps() {
|
||||||
int a1_dim2end = pop();
|
int a1_dim2end = pop();
|
||||||
int a1_dim2start = pop();
|
int a1_dim2start = pop();
|
||||||
if (a1_dim1end - a1_dim1start != a2_dim1end - a2_dim1start || a2_dim2end - a2_dim2start != a1_dim2end - a1_dim2start) {
|
if (a1_dim1end - a1_dim1start != a2_dim1end - a2_dim1start || a2_dim2end - a2_dim2start != a1_dim2end - a1_dim2start) {
|
||||||
warning("Source and dest ranges size are mismatched");
|
error("Source and dest ranges size are mismatched");
|
||||||
}
|
}
|
||||||
copyArray(array, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end, array2, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end);
|
copyArray(array, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end, array2, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end);
|
||||||
}
|
}
|
||||||
|
@ -674,12 +675,9 @@ void ScummEngine_v100he::o100_arrayOps() {
|
||||||
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
|
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
|
||||||
}
|
}
|
||||||
|
|
||||||
len = c - b;
|
|
||||||
len |= dim2end;
|
|
||||||
len = len - dim2end + 1;
|
|
||||||
offs = (b >= c) ? 1 : -1;
|
offs = (b >= c) ? 1 : -1;
|
||||||
tmp2 = c;
|
tmp2 = c;
|
||||||
tmp3 = len;
|
tmp3 = c - b + 1;;
|
||||||
while (dim2start <= dim2end) {
|
while (dim2start <= dim2end) {
|
||||||
tmp = dim1start;
|
tmp = dim1start;
|
||||||
while (tmp <= dim1end) {
|
while (tmp <= dim1end) {
|
||||||
|
|
|
@ -1443,17 +1443,17 @@ void ScummEngine_v72he::o72_findObject() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v72he::o72_arrayOps() {
|
void ScummEngine_v72he::o72_arrayOps() {
|
||||||
|
ArrayHeader *ah;
|
||||||
|
byte string[1024];
|
||||||
|
int dim1end, dim1start, dim2end, dim2start;
|
||||||
|
int id, len, b, c, list[128];
|
||||||
|
int offs, tmp, tmp2;
|
||||||
|
uint tmp3;
|
||||||
|
|
||||||
byte subOp = fetchScriptByte();
|
byte subOp = fetchScriptByte();
|
||||||
int array = fetchScriptWord();
|
int array = fetchScriptWord();
|
||||||
int offs, tmp, tmp2, tmp3;
|
debug(1,"o72_arrayOps: array %d case %d", array, subOp);
|
||||||
int dim1end, dim1start, dim2end, dim2start;
|
|
||||||
int id, len, b, c;
|
|
||||||
ArrayHeader *ah;
|
|
||||||
int list[128];
|
|
||||||
byte string[1024];
|
|
||||||
|
|
||||||
|
|
||||||
debug(1,"o72_arrayOps: case %d", subOp);
|
|
||||||
switch (subOp) {
|
switch (subOp) {
|
||||||
case 7: // SO_ASSIGN_STRING
|
case 7: // SO_ASSIGN_STRING
|
||||||
copyScriptString(string, sizeof(string));
|
copyScriptString(string, sizeof(string));
|
||||||
|
@ -1496,7 +1496,7 @@ void ScummEngine_v72he::o72_arrayOps() {
|
||||||
int a1_dim2end = pop();
|
int a1_dim2end = pop();
|
||||||
int a1_dim2start = pop();
|
int a1_dim2start = pop();
|
||||||
if (a1_dim1end - a1_dim1start != a2_dim1end - a2_dim1start || a2_dim2end - a2_dim2start != a1_dim2end - a1_dim2start) {
|
if (a1_dim1end - a1_dim1start != a2_dim1end - a2_dim1start || a2_dim2end - a2_dim2start != a1_dim2end - a1_dim2start) {
|
||||||
warning("Source and dest ranges size are mismatched");
|
error("Source and dest ranges size are mismatched");
|
||||||
}
|
}
|
||||||
copyArray(array, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end, array2, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end);
|
copyArray(array, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end, array2, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end);
|
||||||
}
|
}
|
||||||
|
@ -1513,12 +1513,9 @@ void ScummEngine_v72he::o72_arrayOps() {
|
||||||
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
|
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
|
||||||
}
|
}
|
||||||
|
|
||||||
len = c - b;
|
|
||||||
len |= dim2end;
|
|
||||||
len = len - dim2end + 1;
|
|
||||||
offs = (b >= c) ? 1 : -1;
|
offs = (b >= c) ? 1 : -1;
|
||||||
tmp2 = c;
|
tmp2 = c;
|
||||||
tmp3 = len;
|
tmp3 = c - b + 1;;
|
||||||
while (dim2start <= dim2end) {
|
while (dim2start <= dim2end) {
|
||||||
tmp = dim1start;
|
tmp = dim1start;
|
||||||
while (tmp <= dim1end) {
|
while (tmp <= dim1end) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue