aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/object.cpp
diff options
context:
space:
mode:
authorBertrand Augereau2011-11-15 12:33:13 +0100
committerBertrand Augereau2011-11-15 13:22:30 +0100
commit5adf8b4864e80b10070ad31819271a0af7588f64 (patch)
treef15ed647e8475eb6b4a88b96cd203d72643822ea /engines/dreamweb/object.cpp
parentbc509e9e086a5d0025e904b0a0e14fbbd23c6786 (diff)
downloadscummvm-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.cpp14
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 */