aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdevtools/tasmrecover/tasm-recover2
-rw-r--r--engines/dreamweb/dreamgen.cpp72
-rw-r--r--engines/dreamweb/dreamgen.h2
-rw-r--r--engines/dreamweb/stubs.cpp53
-rw-r--r--engines/dreamweb/stubs.h2
5 files changed, 57 insertions, 74 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index a270a7f487..6b1257ca26 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -407,6 +407,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'monmessage',
'monprint',
'monks2text',
+ 'moretalk',
'movemap',
'multidump',
'multiget',
@@ -489,6 +490,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'readsetdata',
'realcredits',
'reconstruct',
+ 'redes',
'redrawmainscrn',
'reelsonscreen',
'reexfromopen',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 28d4634f1c..9d85a47e3b 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3716,40 +3716,6 @@ void DreamGenContext::getPersonText() {
si = ax;
}
-void DreamGenContext::moreTalk() {
- STACK_CHECK;
- _cmp(data.byte(kTalkmode), 0);
- if (flags.z())
- goto canmore;
- redes();
- return;
-canmore:
- _cmp(data.byte(kCommandtype), 215);
- if (flags.z())
- goto alreadymore;
- data.byte(kCommandtype) = 215;
- al = 49;
- commandOnly();
-alreadymore:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nomore) */;
- _and(ax, 1);
- if (!flags.z())
- goto domoretalk;
- return;
-domoretalk:
- data.byte(kTalkmode) = 2;
- data.byte(kTalkpos) = 4;
- _cmp(data.byte(kCharacter), 100);
- if (flags.c())
- goto notsecondpart;
- data.byte(kTalkpos) = 48;
-notsecondpart:
- doSomeTalk();
-}
-
void DreamGenContext::doSomeTalk() {
STACK_CHECK;
dospeech:
@@ -3943,44 +3909,6 @@ quitconv:
flags._c = true;
}
-void DreamGenContext::redes() {
- STACK_CHECK;
- _cmp(data.byte(kCh1playing), 255);
- if (!flags.z())
- goto cantredes;
- _cmp(data.byte(kTalkmode), 2);
- if (flags.z())
- goto canredes;
-cantredes:
- blank();
- return;
-canredes:
- _cmp(data.byte(kCommandtype), 217);
- if (flags.z())
- goto alreadyreds;
- data.byte(kCommandtype) = 217;
- al = 50;
- commandOnly();
-alreadyreds:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (!flags.z())
- goto doredes;
- return;
-doredes:
- delPointer();
- createPanel();
- showPanel();
- showMan();
- showExit();
- convIcons();
- startTalk();
- readMouse();
- showPointer();
- workToScreen();
- delPointer();
-}
-
void DreamGenContext::newPlace() {
STACK_CHECK;
_cmp(data.byte(kNeedtotravel), 1);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 6b0fc9e243..878af2e060 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -587,7 +587,6 @@ public:
void findFirstPath();
void useSLab();
void useAltar();
- void moreTalk();
void startTalk();
void getAnyAd();
void endGame();
@@ -643,7 +642,6 @@ public:
void selectSlot();
void fadeUpMon();
void soundEnd();
- void redes();
void manAsleep2();
void introMagic2();
void introMagic3();
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
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index e96fde30e2..8b4ede2d0d 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -570,5 +570,7 @@
void lastDest();
void destSelect();
void putBackObStuff();
+ void moreTalk();
+ void redes();
#endif