aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-06 03:34:36 +0200
committerFilippos Karapetis2011-12-06 03:34:36 +0200
commitbdfd481a68f6a4830f1b18adcf8fe2fa171498b5 (patch)
tree2fbf78e524dc3bcf3ba3a9ad0c6caf2043d1d102
parente1a53cc455c79ce72415581d01aeacc86ee9a2eb (diff)
downloadscummvm-rg350-bdfd481a68f6a4830f1b18adcf8fe2fa171498b5.tar.gz
scummvm-rg350-bdfd481a68f6a4830f1b18adcf8fe2fa171498b5.tar.bz2
scummvm-rg350-bdfd481a68f6a4830f1b18adcf8fe2fa171498b5.zip
DREAMWEB: 'settopleft', 'settopright', 'setbotleft', 'setbotright' ported to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover4
-rw-r--r--engines/dreamweb/dreamgen.cpp72
-rw-r--r--engines/dreamweb/dreamgen.h4
-rw-r--r--engines/dreamweb/stubs.cpp60
-rw-r--r--engines/dreamweb/stubs.h4
5 files changed, 68 insertions, 76 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 930091d394..74af58f989 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -467,9 +467,13 @@ generator = cpp(context, "DreamGen", blacklist = [
'security',
'seecommandtail',
'setallchanges',
+ 'setbotleft',
+ 'setbotright',
'setlocation',
'setmode',
'setsoundoff',
+ 'settopleft',
+ 'settopright',
'setupemm',
'setuppit',
'setuptimedtemp',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index d5bf1977d0..8279a8dd9b 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -8024,78 +8024,6 @@ doqs:
data.byte(kGetback) = 1;
}
-void DreamGenContext::setTopLeft() {
- STACK_CHECK;
- _cmp(data.byte(kSymboltopdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 210);
- if (flags.z())
- goto alreadytopl;
- data.byte(kCommandtype) = 210;
- al = 19;
- commandOnly();
-alreadytopl:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (notopleft) */;
- data.byte(kSymboltopdir) = -1;
-}
-
-void DreamGenContext::setTopRight() {
- STACK_CHECK;
- _cmp(data.byte(kSymboltopdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 211);
- if (flags.z())
- goto alreadytopr;
- data.byte(kCommandtype) = 211;
- al = 20;
- commandOnly();
-alreadytopr:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (notopright) */;
- data.byte(kSymboltopdir) = 1;
-}
-
-void DreamGenContext::setBotLeft() {
- STACK_CHECK;
- _cmp(data.byte(kSymbolbotdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 212);
- if (flags.z())
- goto alreadybotl;
- data.byte(kCommandtype) = 212;
- al = 21;
- commandOnly();
-alreadybotl:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (nobotleft) */;
- data.byte(kSymbolbotdir) = -1;
-}
-
-void DreamGenContext::setBotRight() {
- STACK_CHECK;
- _cmp(data.byte(kSymbolbotdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 213);
- if (flags.z())
- goto alreadybotr;
- data.byte(kCommandtype) = 213;
- al = 22;
- commandOnly();
-alreadybotr:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (nobotright) */;
- data.byte(kSymbolbotdir) = 1;
-}
-
void DreamGenContext::dumpSymbol() {
STACK_CHECK;
data.byte(kNewtextline) = 0;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 327a8a1e44..2b26b3dbca 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -599,7 +599,6 @@ public:
void dumpKeypad();
void dumpZoom();
void endGameSeq();
- void setBotLeft();
void findFirstPath();
void useSLab();
void useAltar();
@@ -730,7 +729,6 @@ public:
void readFromFile();
void initialInv();
void interruptTest();
- void setTopRight();
void findSetObject();
void useDiary();
void deleteExObject();
@@ -785,7 +783,6 @@ public:
void hotelControl();
void mugger();
void gettingShot();
- void setTopLeft();
void searchForString();
void selectOpenOb();
void useGun();
@@ -825,7 +822,6 @@ public:
void redrawMainScrn();
void makeMainScreen();
void useWinch();
- void setBotRight();
void updateSymbolTop();
void allPointer();
void checkSoundInt();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 5fb861c360..ca1f3c1d38 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -3384,5 +3384,65 @@ void DreamGenContext::intro() {
data.byte(kLasthardkey) = 0;
}
+void DreamGenContext::setTopLeft() {
+ if (data.byte(kSymboltopdir) != 0) {
+ blank();
+ return;
+ }
+
+ if (data.byte(kCommandtype) != 210) {
+ data.byte(kCommandtype) = 210;
+ commandOnly(19);
+ }
+
+ if (data.word(kMousebutton) != 0);
+ data.byte(kSymboltopdir) = 0xFF;
+}
+
+void DreamGenContext::setTopRight() {
+ if (data.byte(kSymboltopdir) != 0) {
+ blank();
+ return;
+ }
+
+ if (data.byte(kCommandtype) != 211) {
+ data.byte(kCommandtype) = 211;
+ commandOnly(20);
+ }
+
+ if (data.word(kMousebutton) != 0);
+ data.byte(kSymboltopdir) = 1;
+}
+
+void DreamGenContext::setBotLeft() {
+ if (data.byte(kSymbolbotdir) != 0) {
+ blank();
+ return;
+ }
+
+ if (data.byte(kCommandtype) != 212) {
+ data.byte(kCommandtype) = 212;
+ commandOnly(21);
+ }
+
+ if (data.word(kMousebutton) != 0);
+ data.byte(kSymbolbotdir) = 0xFF;
+}
+
+void DreamGenContext::setBotRight() {
+ if (data.byte(kSymbolbotdir) != 0) {
+ blank();
+ return;
+ }
+
+ if (data.byte(kCommandtype) != 213) {
+ data.byte(kCommandtype) = 213;
+ commandOnly(22);
+ }
+
+ if (data.word(kMousebutton) != 0);
+ data.byte(kSymbolbotdir) = 1;
+}
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index ff5c02e0d7..ce799d7d02 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -496,5 +496,9 @@
void getRidOfReels();
void setMode();
void liftNoise(uint8 index);
+ void setTopLeft();
+ void setTopRight();
+ void setBotLeft();
+ void setBotRight();
#endif