diff options
author | Filippos Karapetis | 2011-12-07 00:31:00 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-12-07 00:31:00 +0200 |
commit | 9d93065b0353bef287778ffaf88ad984feca2826 (patch) | |
tree | eae03d1ecf628ac458f0360f6d28e41836be2d9a /engines/dreamweb/stubs.cpp | |
parent | 495114037111f4c6a91b6df6a8046916c90aba6b (diff) | |
download | scummvm-rg350-9d93065b0353bef287778ffaf88ad984feca2826.tar.gz scummvm-rg350-9d93065b0353bef287778ffaf88ad984feca2826.tar.bz2 scummvm-rg350-9d93065b0353bef287778ffaf88ad984feca2826.zip |
DREAMWEB: 'moretalk' and 'redes' ported to C++
Diffstat (limited to 'engines/dreamweb/stubs.cpp')
-rw-r--r-- | engines/dreamweb/stubs.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 0598230902..e00ebcd681 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -3769,4 +3769,57 @@ void DreamGenContext::putBackObStuff() { delPointer(); } +void DreamGenContext::redes() { + if (data.byte(kCh1playing) != 255 || data.byte(kTalkmode) != 2) { + blank(); + return; + } + + if (data.byte(kCommandtype) != 217) { + data.byte(kCommandtype) = 217; + commandOnly(50); + } + + if (!(data.word(kMousebutton) & 1)) + return; + + delPointer(); + createPanel(); + showPanel(); + showMan(); + showExit(); + convIcons(); + startTalk(); + readMouse(); + showPointer(); + workToScreen(); + delPointer(); +} + +void DreamGenContext::moreTalk() { + if (data.byte(kTalkmode) != 0) { + redes(); + return; + } + + if (data.byte(kCommandtype) != 215) { + data.byte(kCommandtype) = 215; + commandOnly(49); + } + + if (data.word(kMousebutton) == data.word(kOldbutton)) + return; // nomore + + if (!(data.word(kMousebutton) & 1)) + return; + + data.byte(kTalkmode) = 2; + data.byte(kTalkpos) = 4; + + if (data.byte(kCharacter) < 100) + doSomeTalk(); // not second part + else + data.byte(kTalkpos) = 48; +} + } // End of namespace DreamGen |