diff options
author | D G Turner | 2011-12-24 22:24:05 +0000 |
---|---|---|
committer | D G Turner | 2011-12-24 22:24:05 +0000 |
commit | df269f839d7e0fb1e2ba029e1fadba078d125030 (patch) | |
tree | 27b168b69db61397d31205105510791b33664c23 /engines/dreamweb/talk.cpp | |
parent | c6599ea5eed1b44f4aa8d632384f0dfa014e9327 (diff) | |
download | scummvm-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.cpp | 25 |
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 |