diff options
Diffstat (limited to 'scumm/script_v72he.cpp')
-rw-r--r-- | scumm/script_v72he.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index 6161525d4e..5060281986 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -343,7 +343,7 @@ void ScummEngine_v72he::setupOpcodes() { OPCODE(o72_copyString), OPCODE(o70_getStringWidth), OPCODE(o70_getStringLen), - OPCODE(o70_appendString), + OPCODE(o72_appendString), /* F0 */ OPCODE(o72_concatString), OPCODE(o70_compareString), @@ -2384,6 +2384,27 @@ void ScummEngine_v72he::o72_copyString() { debug(1,"stub o72_copyString"); } +void ScummEngine_v72he::o72_appendString() { + int dst, size; + + int len = pop(); + int srcOffs = pop(); + int src = pop(); + + size = len - srcOffs + 2; + + writeVar(0, 0); + defineArray(0, kStringArray, 0, 0, 0, size); + writeArray(0, 0, 0, 0); + + dst = readVar(0); + + appendSubstring(dst, src, srcOffs, len); + + push(dst); + debug(1,"stub o72_appendString"); +} + void ScummEngine_v72he::o72_concatString() { int dst, size; |