diff options
| author | Travis Howell | 2004-12-21 05:55:03 +0000 |
|---|---|---|
| committer | Travis Howell | 2004-12-21 05:55:03 +0000 |
| commit | 4ecd5edab608eaf53614f94772349606393fb210 (patch) | |
| tree | 5f973bf8d5722b22463be09000e01945b649bb9c | |
| parent | 3cd3ac503034c51d84640480564d14651220599c (diff) | |
| download | scummvm-rg350-4ecd5edab608eaf53614f94772349606393fb210.tar.gz scummvm-rg350-4ecd5edab608eaf53614f94772349606393fb210.tar.bz2 scummvm-rg350-4ecd5edab608eaf53614f94772349606393fb210.zip | |
Sync HE100
svn-id: r16234
| -rw-r--r-- | scumm/script_v100he.cpp | 31 | ||||
| -rw-r--r-- | scumm/script_v72he.cpp | 1 |
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(); |
