diff options
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 1 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 37 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 1 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 52 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
5 files changed, 54 insertions, 38 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index c258de6cd2..3fb7dfaa7e 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -543,6 +543,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'restorereels', 'rockstar', 'roomname', + 'runintroseq', 'saveems', 'savefileread', 'savefilewrite', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 356b853029..aaa531ff8e 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -1567,43 +1567,6 @@ void DreamGenContext::showMonk() { showFrame(); } -void DreamGenContext::runIntroSeq() { - STACK_CHECK; - data.byte(kGetback) = 0; -moreintroseq: - vSync(); - _cmp(data.byte(kLasthardkey), 1); - if (flags.z()) - goto earlyendrun; - spriteUpdate(); - vSync(); - _cmp(data.byte(kLasthardkey), 1); - if (flags.z()) - goto earlyendrun; - delEverything(); - printSprites(); - reelsOnScreen(); - afterIntroRoom(); - useTimedText(); - vSync(); - _cmp(data.byte(kLasthardkey), 1); - if (flags.z()) - goto earlyendrun; - dumpMap(); - dumpTimedText(); - vSync(); - _cmp(data.byte(kLasthardkey), 1); - if (flags.z()) - goto earlyendrun; - _cmp(data.byte(kGetback), 1); - if (!flags.z()) - goto moreintroseq; - return; -earlyendrun: - getRidOfTempText(); - clearBeforeLoad(); -} - void DreamGenContext::runEndSeq() { STACK_CHECK; atmospheres(); diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 714ce3af2e..ca9f56158c 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -608,7 +608,6 @@ public: void dirFile(); void pickupConts(); void lockLightOff(); - void runIntroSeq(); void advisor(); void allPalette(); void cantDrop(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 923d0f76af..e75c7cde4f 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -3239,6 +3239,58 @@ void DreamGenContext::realCredits() { data.byte(kLasthardkey) = 0; } +void DreamGenContext::runIntroSeq() { + data.byte(kGetback) = 0; + + do { + vSync(); + + if (data.byte(kLasthardkey) == 1) { + getRidOfTempText(); + clearBeforeLoad(); + return; // "earlyendrun" + } + + spriteUpdate(); + vSync(); + + if (data.byte(kLasthardkey) == 1) { + getRidOfTempText(); + clearBeforeLoad(); + return; // "earlyendrun" + } + + delEverything(); + printSprites(); + reelsOnScreen(); + afterIntroRoom(); + useTimedText(); + vSync(); + + if (data.byte(kLasthardkey) == 1) { + getRidOfTempText(); + clearBeforeLoad(); + return; // "earlyendrun" + } + + dumpMap(); + dumpTimedText(); + vSync(); + + if (data.byte(kLasthardkey) == 1) { + getRidOfTempText(); + clearBeforeLoad(); + return; // "earlyendrun" + } + + } while (data.byte(kGetback) != 1); + + // These were not called in this program arc + // in the original code.. Bug? + //getRidOfTempText(); + //clearBeforeLoad(); +} + void DreamGenContext::intro() { loadTempText("DREAMWEB.T82"); loadPalFromIFF(); diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 97486152c7..2699605bd0 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -500,6 +500,7 @@ void showPCX(const Common::String &name); void bibleQuote(); void realCredits(); + void runIntroSeq(); void intro(); void fadeScreenUp(); void fadeScreenUps(); |