aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdevtools/tasmrecover/tasm-recover1
-rw-r--r--engines/dreamweb/dreamgen.cpp10
-rw-r--r--engines/dreamweb/dreamgen.h5
-rw-r--r--engines/dreamweb/stubs.cpp8
-rw-r--r--engines/dreamweb/stubs.h3
5 files changed, 14 insertions, 13 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 9ca2d890f7..84859b1cd4 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -143,6 +143,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'removesetobject',
'showallfree',
'adjustlen',
+ 'finishedwalking',
], skip_output = [
# These functions are processed but not output
'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 4ba1324a51..54428c633c 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -15954,15 +15954,6 @@ toofaraway:
walktotext();
}
-void DreamGenContext::finishedwalking() {
- STACK_CHECK;
- _cmp(data.byte(kLinepointer), 254);
- if (!flags.z())
- return /* (iswalking) */;
- al = data.byte(kFacing);
- _cmp(al, data.byte(kTurntoface));
-}
-
void DreamGenContext::examineobtext() {
STACK_CHECK;
bl = data.byte(kCommand);
@@ -18624,7 +18615,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_walkintoroom: walkintoroom(); break;
case addr_afterintroroom: afterintroroom(); break;
case addr_obname: obname(); break;
- case addr_finishedwalking: finishedwalking(); break;
case addr_examineobtext: examineobtext(); break;
case addr_printmessage: printmessage(); break;
case addr_printmessage2: printmessage2(); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 5c4d0166bc..a20d251c1b 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -119,7 +119,6 @@ public:
static const uint16 addr_printmessage2 = 0xca30;
static const uint16 addr_printmessage = 0xca2c;
static const uint16 addr_examineobtext = 0xca20;
- static const uint16 addr_finishedwalking = 0xca1c;
static const uint16 addr_obname = 0xca18;
static const uint16 addr_afterintroroom = 0xca14;
static const uint16 addr_walkintoroom = 0xca10;
@@ -1588,7 +1587,7 @@ public:
void adjustright();
void putunderzoom();
void vsync();
- void turnpathoff();
+ //void finishedwalking();
void findinvpos();
void usetext();
void hangonpq();
@@ -1974,7 +1973,7 @@ public:
void usecontrol();
void buttonseven();
void redrawmainscrn();
- void finishedwalking();
+ void turnpathoff();
void findallryan();
//void channel0tran();
void buttonpress();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index e77b18832b..f0938ea30b 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1155,6 +1155,14 @@ void DreamGenContext::removesetobject(uint8 index) {
getsetad(index)->b58[0] = 0xff;
}
+void DreamGenContext::finishedwalking() {
+ flags._z = finishedwalkingCPP();
+}
+
+bool DreamGenContext::finishedwalkingCPP() {
+ return (data.byte(kLinepointer) == 254) && (data.byte(kFacing) == data.byte(kTurntoface));
+}
+
bool DreamGenContext::isCD() {
// The original sources has two codepaths depending if the game is 'if cd' or not
// This is a hack to guess which version to use with the assumption that if we have a cd version
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 6b0ed594be..5443ee50a3 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -167,4 +167,7 @@
void removesetobject();
void removesetobject(uint8 index);
void showallfree();
+ bool finishedwalkingCPP();
+ void finishedwalking();
+