aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdevtools/tasmrecover/tasm-recover2
-rw-r--r--engines/dreamweb/dreamgen.cpp47
-rw-r--r--engines/dreamweb/dreamgen.h2
-rw-r--r--engines/dreamweb/stubs.cpp30
-rw-r--r--engines/dreamweb/stubs.h2
5 files changed, 34 insertions, 49 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 881ee7fb64..f6e99e84e0 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -358,6 +358,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'gates',
'generalerror',
'getanyaddir',
+ 'getback1',
'getbackfromob',
'getbackfromops',
'getbacktoops',
@@ -497,6 +498,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'namestoold',
'neterror',
'newgame',
+ 'newplace',
'nextdest',
'nextfolder',
'nextsymbol',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 42660f4fa3..de0ac54a51 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2794,34 +2794,6 @@ beforethistext:
goto shuffletextads;
}
-void DreamGenContext::getBack1() {
- STACK_CHECK;
- _cmp(data.byte(kPickup), 0);
- if (flags.z())
- goto notgotobject;
- blank();
- return;
-notgotobject:
- _cmp(data.byte(kCommandtype), 202);
- if (flags.z())
- goto alreadyget;
- data.byte(kCommandtype) = 202;
- al = 26;
- commandOnly();
-alreadyget:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nogetback) */;
- _and(ax, 1);
- if (!flags.z())
- goto dogetback;
- return;
-dogetback:
- data.byte(kGetback) = 1;
- data.byte(kPickup) = 0;
-}
-
void DreamGenContext::startTalk() {
STACK_CHECK;
data.byte(kTalkmode) = 0;
@@ -3015,25 +2987,6 @@ endheartalk:
data.byte(kPointermode) = 0;
}
-void DreamGenContext::newPlace() {
- STACK_CHECK;
- _cmp(data.byte(kNeedtotravel), 1);
- if (flags.z())
- goto istravel;
- _cmp(data.byte(kAutolocation), -1);
- if (!flags.z())
- goto isautoloc;
- return;
-isautoloc:
- al = data.byte(kAutolocation);
- data.byte(kNewlocation) = al;
- data.byte(kAutolocation) = -1;
- return;
-istravel:
- data.byte(kNeedtotravel) = 0;
- selectLocation();
-}
-
void DreamGenContext::lookAtPlace() {
STACK_CHECK;
_cmp(data.byte(kCommandtype), 224);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 1861732860..848bd53726 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -626,7 +626,6 @@ public:
void dreamweb();
void checkInside();
void findPathOfPoint();
- void getBack1();
void getDestInfo();
void setupTimedUse();
void makeCaps();
@@ -637,7 +636,6 @@ public:
void selectOpenOb();
void useGun();
void autoAppear();
- void newPlace();
void useHandle();
void showPuzText();
void incRyanPage();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 2caaf6c36a..3688715ea9 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -4202,4 +4202,34 @@ void DreamGenContext::cantDrop() {
workToScreenM();
}
+void DreamGenContext::getBack1() {
+ if (data.byte(kPickup) != 0) {
+ blank();
+ } else if (data.byte(kCommandtype) != 202) {
+ // Not holding object
+ data.byte(kCommandtype) = 202;
+ commandOnly(26);
+ } else {
+ // Already got object
+ if (data.word(kMousebutton) == data.word(kOldbutton))
+ return; // nogetback
+
+ if (data.word(kMousebutton) & 1) {
+ // Get back
+ data.byte(kGetback) = 1;
+ data.byte(kPickup) = 0;
+ }
+ }
+}
+
+void DreamGenContext::newPlace() {
+ if (data.byte(kNeedtotravel) == 1) {
+ data.byte(kNeedtotravel) = 0;
+ selectLocation();
+ } else if (data.byte(kAutolocation) != 0xFF) {
+ data.byte(kNewlocation) = data.byte(kAutolocation);
+ data.byte(kAutolocation) = 0xFF;
+ }
+}
+
} // End of namespace DreamGen
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 19ebfac817..e9e642ca6e 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -562,5 +562,7 @@
void checkInput();
void dropError();
void cantDrop();
+ void getBack1();
+ void newPlace();
#endif