aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2004-12-21 05:55:03 +0000
committerTravis Howell2004-12-21 05:55:03 +0000
commit4ecd5edab608eaf53614f94772349606393fb210 (patch)
tree5f973bf8d5722b22463be09000e01945b649bb9c
parent3cd3ac503034c51d84640480564d14651220599c (diff)
downloadscummvm-rg350-4ecd5edab608eaf53614f94772349606393fb210.tar.gz
scummvm-rg350-4ecd5edab608eaf53614f94772349606393fb210.tar.bz2
scummvm-rg350-4ecd5edab608eaf53614f94772349606393fb210.zip
Sync HE100
svn-id: r16234
-rw-r--r--scumm/script_v100he.cpp31
-rw-r--r--scumm/script_v72he.cpp1
2 files changed, 16 insertions, 16 deletions
diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp
index 26556afe04..91cf7ed37b 100644
--- a/scumm/script_v100he.cpp
+++ b/scumm/script_v100he.cpp
@@ -634,13 +634,13 @@ void ScummEngine_v100he::o100_arrayOps() {
if (id == 0) {
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
}
- tmp2 = len;
+ tmp2 = 0;
while (dim2start <= dim2end) {
tmp = dim1start;
while (tmp <= dim1end) {
- writeArray(array, dim2start, tmp, list[--tmp2]);
- if (tmp2 == 0)
- tmp2 = len;
+ writeArray(array, dim2start, tmp, list[tmp2++]);
+ if (tmp2 == len)
+ tmp2 = 0;
tmp++;
}
dim2start++;
@@ -649,7 +649,6 @@ void ScummEngine_v100he::o100_arrayOps() {
case 131:
{
// TODO
- // Array copy and cat?
//Array1
dim1end = pop();
dim1start = pop();
@@ -1821,12 +1820,11 @@ void ScummEngine_v100he::o100_unknown25() {
}
void ScummEngine_v100he::decodeParseString(int m, int n) {
- byte b, *ptr;
- int i, color, size;
+ int i, colors, size;
int args[31];
byte name[1024];
- b = fetchScriptByte();
+ byte b = fetchScriptByte();
switch (b) {
case 6: // SO_AT
@@ -1845,15 +1843,15 @@ void ScummEngine_v100he::decodeParseString(int m, int n) {
_string[m].color = pop();
break;
case 21:
- color = pop();
- if (color == 1) {
+ colors = pop();
+ if (colors == 1) {
_string[m].color = pop();
} else {
- push(color);
+ push(colors);
getStackList(args, ARRAYSIZE(args));
for (i = 0; i < 16; i++)
_charsetColorMap[i] = _charsetData[_string[1]._default.charset][i] = (unsigned char)args[i];
- _string[m].color = color;
+ _string[m].color = _charsetColorMap[0];
}
break;
case 35:
@@ -1872,10 +1870,13 @@ void ScummEngine_v100he::decodeParseString(int m, int n) {
_string[m].no_talk_anim = false;
break;
case 78:
- ptr = getResourceAddress(rtTalkie, pop());
- size = READ_BE_UINT32(ptr + 12);
- memcpy(name, ptr + 16, size);
+ {
+ const byte *dataPtr = getResourceAddress(rtTalkie, pop());
+ const byte *text = findWrappedBlock(MKID('TEXT'), dataPtr, 0, 0);
+ size = getResourceDataSize(text);
+ memcpy(name, text, size);
printString(m, name);
+ }
break;
case 79: // SO_TEXTSTRING
printString(m, _scriptPointer);
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index 7a0daa8734..d155059c33 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -1316,7 +1316,6 @@ void ScummEngine_v72he::o72_arrayOps() {
case 127:
{
// TODO
- // Array copy and cat?
//Array1
dim1end = pop();
dim1start = pop();