diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/script_v72he.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index 18f97d74a9..3f016d46af 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -2408,12 +2408,11 @@ void ScummEngine_v72he::o72_unknownFA() { } void ScummEngine_v72he::decodeParseString(int m, int n) { - byte b, *ptr; int i, color, size; int args[31]; byte name[1024]; - b = fetchScriptByte(); + byte b = fetchScriptByte(); switch (b) { case 65: // SO_AT @@ -2454,10 +2453,13 @@ void ScummEngine_v72he::decodeParseString(int m, int n) { printString(m, name); break; case 0xE1: - 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 0xF9: color = pop(); |