diff options
author | Filippos Karapetis | 2011-12-08 00:41:10 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-12-08 00:41:10 +0200 |
commit | 1f4414fc54816b59ef636f6ee1922565cba3d249 (patch) | |
tree | cdac97b9ad7ecd758ed4be19a2a1dcdb78d10e86 /engines/dreamweb | |
parent | 61c2331af3c870c10f7e8c37b152e16915d1b32a (diff) | |
download | scummvm-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.cpp | 28 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 1 | ||||
-rw-r--r-- | engines/dreamweb/people.cpp | 24 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
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(); |