diff options
author | Bertrand Augereau | 2011-11-15 12:33:13 +0100 |
---|---|---|
committer | Bertrand Augereau | 2011-11-15 13:22:30 +0100 |
commit | 5adf8b4864e80b10070ad31819271a0af7588f64 (patch) | |
tree | f15ed647e8475eb6b4a88b96cd203d72643822ea /engines/dreamweb/object.cpp | |
parent | bc509e9e086a5d0025e904b0a0e14fbbd23c6786 (diff) | |
download | scummvm-rg350-5adf8b4864e80b10070ad31819271a0af7588f64.tar.gz scummvm-rg350-5adf8b4864e80b10070ad31819271a0af7588f64.tar.bz2 scummvm-rg350-5adf8b4864e80b10070ad31819271a0af7588f64.zip |
DREAWMEB: 'transfertext' ported to C++
Diffstat (limited to 'engines/dreamweb/object.cpp')
-rw-r--r-- | engines/dreamweb/object.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp index 277ad20927..9bb5a7d0b3 100644 --- a/engines/dreamweb/object.cpp +++ b/engines/dreamweb/object.cpp @@ -245,6 +245,20 @@ void DreamGenContext::inventory() { examineob(false); } +void DreamGenContext::transfertext() { + segRef(data.word(kExtras)).word(kExtextdat + data.byte(kExpos) * 2) = data.word(kExtextpos); + uint16 freeTextOffset = data.byte(kItemtotran) * 2; + uint16 srcOffset = segRef(data.word(kFreedesc)).word(kFreetextdat + freeTextOffset); + const uint8 *src = segRef(data.word(kFreedesc)).ptr(kFreetext + srcOffset, 0); + uint8 *dst = segRef(data.word(kExtras)).ptr(kExtext + data.word(kExtextpos), 0); + uint8 c; + do { + c = *src++; + *dst++ = c; + ++data.word(kExtextpos); + } while (c); +} + } /*namespace dreamgen */ |