aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/people.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/people.cpp')
-rw-r--r--engines/dreamweb/people.cpp41
1 files changed, 38 insertions, 3 deletions
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index cd1f2d4d2a..cebe8721e3 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -46,7 +46,7 @@ static void (DreamGenContext::*reelCallbacks[57])() = {
NULL, NULL,
NULL, NULL,
NULL, NULL,
- &DreamGenContext::introMonks1, NULL,
+ NULL, NULL,
&DreamGenContext::introMonks2, NULL,
NULL, &DreamGenContext::endGameSeq,
NULL, NULL,
@@ -78,8 +78,8 @@ static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {
&DreamGenContext::introMagic1, &DreamGenContext::introMusic,
&DreamGenContext::introMagic2, &DreamGenContext::candles2,
&DreamGenContext::gates, &DreamGenContext::introMagic3,
- /*&DreamGenContext::intromonks1*/NULL, &DreamGenContext::candles,
- /*&DreamGenContext::intromonks2*/NULL, &DreamGenContext::handClap,
+ &DreamGenContext::introMonks1, &DreamGenContext::candles,
+ /*&DreamGenContext::introMonks2*/NULL, &DreamGenContext::handClap,
&DreamGenContext::monkAndRyan, /*&DreamGenContext::endGameSeq*/NULL,
&DreamGenContext::priest, &DreamGenContext::madman,
&DreamGenContext::madmansTelly, &DreamGenContext::alleyBarkSound,
@@ -688,4 +688,39 @@ void DreamGenContext::copper(ReelRoutine &routine) {
addToPeopleList(&routine);
}
+void DreamGenContext::introMonks1(ReelRoutine &routine) {
+ if (checkSpeed(routine)) {
+ uint16 nextReelPointer = routine.reelPointer() + 1;
+
+ if (nextReelPointer == 80) {
+ data.byte(kMapy) += 10;
+ data.byte(kNowinnewroom) = 1;
+ showGameReel(&routine);
+ return;
+ } else if (nextReelPointer == 30) {
+ data.byte(kMapy) -= 10;
+ data.byte(kNowinnewroom) = 1;
+ nextReelPointer = 51;
+ }
+
+ routine.setReelPointer(nextReelPointer);
+
+ if (nextReelPointer == 5 || nextReelPointer == 15 ||
+ nextReelPointer == 25 || nextReelPointer == 61 ||
+ nextReelPointer == 71) {
+ // Wait step
+ push(es);
+ push(bx);
+ intro2Text();
+ bx = pop();
+ es = pop();
+ routine.counter = -20;
+ }
+ }
+
+intromonk1fin:
+ showGameReel(&routine);
+ routine.mapY = data.byte(kMapy);
+}
+
} // End of namespace DreamGen