aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-08 00:41:10 +0200
committerFilippos Karapetis2011-12-08 00:41:10 +0200
commit1f4414fc54816b59ef636f6ee1922565cba3d249 (patch)
treecdac97b9ad7ecd758ed4be19a2a1dcdb78d10e86 /engines/dreamweb
parent61c2331af3c870c10f7e8c37b152e16915d1b32a (diff)
downloadscummvm-rg350-1f4414fc54816b59ef636f6ee1922565cba3d249.tar.gz
scummvm-rg350-1f4414fc54816b59ef636f6ee1922565cba3d249.tar.bz2
scummvm-rg350-1f4414fc54816b59ef636f6ee1922565cba3d249.zip
DREAMWEB: 'monkandryan' ported to C++
Diffstat (limited to 'engines/dreamweb')
-rw-r--r--engines/dreamweb/dreamgen.cpp28
-rw-r--r--engines/dreamweb/dreamgen.h1
-rw-r--r--engines/dreamweb/people.cpp24
-rw-r--r--engines/dreamweb/stubs.h1
4 files changed, 23 insertions, 31 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 45972f5845..356b853029 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -634,34 +634,6 @@ intromonk2fin:
showGameReel();
}
-void DreamGenContext::monkAndRyan() {
- STACK_CHECK;
- checkSpeed();
- if (!flags.z())
- goto notmonkryan;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 83);
- if (!flags.z())
- goto gotmonkryan;
- _inc(data.byte(kIntrocount));
- push(es);
- push(bx);
- textForMonk();
- bx = pop();
- es = pop();
- ax = 77;
- _cmp(data.byte(kIntrocount), 57);
- if (!flags.z())
- goto gotmonkryan;
- data.byte(kGetback) = 1;
- return;
-gotmonkryan:
- es.word(bx+3) = ax;
-notmonkryan:
- showGameReel();
-}
-
void DreamGenContext::endGameSeq() {
STACK_CHECK;
checkSpeed();
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index f8ae7ebbc0..714ce3af2e 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -710,7 +710,6 @@ public:
void execCommand();
void updateSymbolBot();
void findPuzText();
- void monkAndRyan();
void swapWithInv();
void useControl();
void adjustRight();
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index d53786c369..403f8f1912 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -48,7 +48,7 @@ static void (DreamGenContext::*reelCallbacks[57])() = {
NULL, NULL,
&DreamGenContext::introMonks1, NULL,
&DreamGenContext::introMonks2, NULL,
- &DreamGenContext::monkAndRyan, &DreamGenContext::endGameSeq,
+ NULL, &DreamGenContext::endGameSeq,
NULL, NULL,
NULL, NULL,
NULL, NULL,
@@ -80,7 +80,7 @@ static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {
&DreamGenContext::gates, &DreamGenContext::introMagic3,
/*&DreamGenContext::intromonks1*/NULL, &DreamGenContext::candles,
/*&DreamGenContext::intromonks2*/NULL, &DreamGenContext::handClap,
- /*&DreamGenContext::monkAndRyan*/NULL, /*&DreamGenContext::endGameSeq*/NULL,
+ &DreamGenContext::monkAndRyan, /*&DreamGenContext::endGameSeq*/NULL,
&DreamGenContext::priest, &DreamGenContext::madman,
&DreamGenContext::madmansTelly, &DreamGenContext::alleyBarkSound,
&DreamGenContext::foghornSound, &DreamGenContext::carParkDrip,
@@ -649,4 +649,24 @@ void DreamGenContext::priestText(ReelRoutine &routine) {
setupTimedUse();
}
+void DreamGenContext::monkAndRyan(ReelRoutine &routine) {
+ if (checkSpeed(routine)) {
+ uint16 nextReelPointer = routine.reelPointer() + 1;
+ if (nextReelPointer == 83) {
+ data.byte(kIntrocount)++;
+ textForMonk();
+ nextReelPointer = 77;
+
+ if (data.byte(kIntrocount) == 57) {
+ data.byte(kGetback) = 1;
+ return;
+ }
+ }
+
+ routine.setReelPointer(nextReelPointer);
+ }
+
+ showGameReel(&routine);
+}
+
} // End of namespace DreamGen
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 8c426162e0..97486152c7 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -454,6 +454,7 @@
void bossMan(ReelRoutine &routine);
void priest(ReelRoutine &routine);
void priestText(ReelRoutine &routine);
+ void monkAndRyan(ReelRoutine &routine);
void singleKey(uint8 key, uint16 x, uint16 y);
void loadSaveBox();
void loadKeypad();