aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-06 03:49:32 +0200
committerFilippos Karapetis2011-12-06 03:49:32 +0200
commit823ff7549681a430b3c73d6925fc3f72bae09024 (patch)
tree5624740f6af1ce7cca4a145d63365e320f86f49d
parentbdfd481a68f6a4830f1b18adcf8fe2fa171498b5 (diff)
downloadscummvm-rg350-823ff7549681a430b3c73d6925fc3f72bae09024.tar.gz
scummvm-rg350-823ff7549681a430b3c73d6925fc3f72bae09024.tar.bz2
scummvm-rg350-823ff7549681a430b3c73d6925fc3f72bae09024.zip
DREAMWEB: 'getbackfromops', 'getbacktoops', 'newgame' ported to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover3
-rw-r--r--engines/dreamweb/dreamgen.cpp49
-rw-r--r--engines/dreamweb/dreamgen.h3
-rw-r--r--engines/dreamweb/stubs.cpp31
-rw-r--r--engines/dreamweb/stubs.h3
5 files changed, 37 insertions, 52 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 74af58f989..6d15c15147 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -289,6 +289,8 @@ generator = cpp(context, "DreamGen", blacklist = [
'gates',
'generalerror',
'getbackfromob',
+ 'getbackfromops',
+ 'getbacktoops',
'getblockofpixel',
'getdimension',
'getexpos',
@@ -387,6 +389,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'multiput',
'namestoold',
'neterror',
+ 'newgame',
'nextfolder',
'nextsymbol',
'obicons',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 8279a8dd9b..ad0bd189f3 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -8456,39 +8456,6 @@ justret:
data.byte(kManisoffscreen) = 0;
}
-void DreamGenContext::getBackFromOps() {
- STACK_CHECK;
- _cmp(data.byte(kMandead), 2);
- if (flags.z())
- goto opsblock1;
- getBack1();
- return;
-opsblock1:
- blank();
-}
-
-void DreamGenContext::getBackToOps() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 201);
- if (flags.z())
- goto alreadygetops;
- data.byte(kCommandtype) = 201;
- al = 42;
- commandOnly();
-alreadygetops:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nogetbackops) */;
- _and(ax, 1);
- if (!flags.z())
- goto dogetbackops;
- return;
-dogetbackops:
- oldToNames();
- data.byte(kGetback) = 2;
-}
-
void DreamGenContext::discOps() {
STACK_CHECK;
_cmp(data.byte(kCommandtype), 249);
@@ -8873,22 +8840,6 @@ void DreamGenContext::showDecisions() {
underTextLine();
}
-void DreamGenContext::newGame() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 251);
- if (flags.z())
- goto alreadynewgame;
- data.byte(kCommandtype) = 251;
- al = 47;
- commandOnly();
-alreadynewgame:
- ax = data.word(kMousebutton);
- _cmp(ax, 1);
- if (!flags.z())
- return /* (nonewgame) */;
- data.byte(kGetback) = 3;
-}
-
void DreamGenContext::createName() {
STACK_CHECK;
push(ax);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 2b26b3dbca..56a2d90d81 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -552,7 +552,6 @@ public:
void decide();
void entryTexts();
void checkInput();
- void getBackFromOps();
void openSarters();
void putUnderCentre();
void checkObjectSize();
@@ -678,7 +677,6 @@ public:
void introMagic2();
void introMagic3();
void showDiaryPage();
- void getBackToOps();
void dumpSymbol();
void intro1Text();
void transferToEx();
@@ -769,7 +767,6 @@ public:
void dreamweb();
void dropError();
void checkInside();
- void newGame();
void setWalk();
void findPathOfPoint();
void isSetObOnMap();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index ca1f3c1d38..44f4d82394 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -3444,5 +3444,36 @@ void DreamGenContext::setBotRight() {
data.byte(kSymbolbotdir) = 1;
}
+void DreamGenContext::newGame() {
+ if (data.byte(kCommandtype) != 251) {
+ data.byte(kCommandtype) = 251;
+ commandOnly(47);
+ }
+
+ if (data.word(kMousebutton) == 1)
+ data.byte(kGetback) = 3;
+}
+
+void DreamGenContext::getBackFromOps() {
+ if (data.byte(kMandead) == 2)
+ blank();
+ else
+ getBack1();
+}
+
+void DreamGenContext::getBackToOps() {
+ if (data.byte(kCommandtype) != 201) {
+ data.byte(kCommandtype) = 201;
+ commandOnly(42);
+ }
+
+ if (data.word(kMousebutton) != data.word(kOldbutton)) {
+ if (!(data.word(kMousebutton) & 1)) {
+ oldToNames();
+ data.byte(kGetback) = 2;
+ }
+ }
+}
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index ce799d7d02..0139584579 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -500,5 +500,8 @@
void setTopRight();
void setBotLeft();
void setBotRight();
+ void newGame();
+ void getBackFromOps();
+ void getBackToOps();
#endif