aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/talk.cpp
diff options
context:
space:
mode:
authorD G Turner2011-12-24 22:24:05 +0000
committerD G Turner2011-12-24 22:24:05 +0000
commitdf269f839d7e0fb1e2ba029e1fadba078d125030 (patch)
tree27b168b69db61397d31205105510791b33664c23 /engines/dreamweb/talk.cpp
parentc6599ea5eed1b44f4aa8d632384f0dfa014e9327 (diff)
downloadscummvm-rg350-df269f839d7e0fb1e2ba029e1fadba078d125030.tar.gz
scummvm-rg350-df269f839d7e0fb1e2ba029e1fadba078d125030.tar.bz2
scummvm-rg350-df269f839d7e0fb1e2ba029e1fadba078d125030.zip
DREAMWEB: Ported 'starttalk' to C++
Diffstat (limited to 'engines/dreamweb/talk.cpp')
-rw-r--r--engines/dreamweb/talk.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/engines/dreamweb/talk.cpp b/engines/dreamweb/talk.cpp
index 40c514b34a..20ac58dd7a 100644
--- a/engines/dreamweb/talk.cpp
+++ b/engines/dreamweb/talk.cpp
@@ -84,7 +84,30 @@ uint16 DreamGenContext::getPersFrame(uint8 index) {
return getSegment(data.word(kPeople)).word(kPersonframes + index * 2);
}
-// TODO: put Starttalk here
+void DreamGenContext::startTalk() {
+ data.byte(kTalkmode) = 0;
+
+ al = (data.byte(kCharacter) & 0x7F);
+ getPersonText();
+ const uint8 *str = es.ptr(si, 0);
+ uint16 y;
+
+ data.word(kCharshift) = 91+91;
+ y = 64;
+ printDirect(&str, 66, &y, 241, true);
+
+ data.word(kCharshift) = 0;
+ y = 80;
+ printDirect(&str, 66, &y, 241, true);
+
+ data.byte(kSpeechloaded) = 0;
+ loadSpeech('R', data.byte(kReallocation), 'C', 64*(data.byte(kCharacter) & 0x7F));
+ if (data.byte(kSpeechloaded) == 1) {
+ data.byte(kVolumedirection) = 1;
+ data.byte(kVolumeto) = 6;
+ playChannel1(50 + 12);
+ }
+}
// TODO: put Getpersontext here