aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Augereau2011-11-23 13:09:31 +0100
committerBertrand Augereau2011-11-23 15:25:52 +0100
commit7843073c0eba240e5270be90c87bb708cce2d2cc (patch)
tree14de9a8966f6775b6b7eba34dda0220517a0b297
parenta8a698c82b748b73224f01c3bd19b29a2e698ab0 (diff)
downloadscummvm-rg350-7843073c0eba240e5270be90c87bb708cce2d2cc.tar.gz
scummvm-rg350-7843073c0eba240e5270be90c87bb708cce2d2cc.tar.bz2
scummvm-rg350-7843073c0eba240e5270be90c87bb708cce2d2cc.zip
DREAMWEB: 'autolook' ported to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover1
-rw-r--r--engines/dreamweb/dreamgen.cpp23
-rw-r--r--engines/dreamweb/dreamgen.h3
-rw-r--r--engines/dreamweb/stubs.cpp14
-rw-r--r--engines/dreamweb/stubs.h1
5 files changed, 17 insertions, 25 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index fab094178c..1d5264f00f 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -272,6 +272,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'createpanel',
'createpanel2',
'findroominloc',
+ 'autolook',
'reelsonscreen',
'reconstruct',
], skip_output = [
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 8e5a784d27..34fa14c1c0 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -4894,29 +4894,6 @@ void DreamGenContext::drawfloor() {
es = pop();
}
-void DreamGenContext::autolook() {
- STACK_CHECK;
- ax = data.word(kMousex);
- _cmp(ax, data.word(kOldx));
- if (!flags.z())
- goto diffmouse;
- ax = data.word(kMousey);
- _cmp(ax, data.word(kOldy));
- if (!flags.z())
- goto diffmouse;
- _dec(data.word(kLookcounter));
- _cmp(data.word(kLookcounter), 0);
- if (!flags.z())
- return /* (noautolook) */;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- return /* (noautolook) */;
- dolook();
- return;
-diffmouse:
- data.word(kLookcounter) = 1000;
-}
-
void DreamGenContext::look() {
STACK_CHECK;
_cmp(data.word(kWatchingtime), 0);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 6bed222d1b..606961c84c 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -378,7 +378,6 @@ public:
static const uint16 addr_redrawmainscrn = 0xc478;
static const uint16 addr_dolook = 0xc474;
static const uint16 addr_look = 0xc470;
- static const uint16 addr_autolook = 0xc46c;
static const uint16 addr_drawfloor = 0xc428;
static const uint16 addr_deleteextext = 0xc420;
static const uint16 addr_deleteexframe = 0xc41c;
@@ -1586,7 +1585,7 @@ public:
void dosreturn();
void wheelsound();
void actualsave();
- void autolook();
+ //void autolook();
void playguitar();
//void showreelframe();
void searchforsame();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 73b7b27b56..bd3439a77b 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -2260,5 +2260,19 @@ void DreamGenContext::findroominloc() {
data.byte(kRoomnum) = roomNum;
}
+void DreamGenContext::autolook() {
+ if ((data.word(kMousex) != data.word(kOldx)) || (data.word(kMousey) != data.word(kOldy))) {
+ data.word(kLookcounter) = 1000;
+ return;
+ }
+
+ --data.word(kLookcounter);
+ if (data.word(kLookcounter))
+ return;
+ if (data.word(kWatchingtime))
+ return;
+ dolook();
+}
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 2a9a068439..39d1758974 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -332,4 +332,5 @@
void findroominloc();
void reelsonscreen();
void reconstruct();
+ void autolook();