diff options
author | Filippos Karapetis | 2011-12-26 03:15:47 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-12-26 03:15:47 +0200 |
commit | d503838fd65db483a764d550cc6cce32984f6381 (patch) | |
tree | 0c74268df8db8865982facb7c9bf7ba6e761843a /engines/dreamweb | |
parent | 9a89f8884c0da0ee7c979d6df19969713fa16bf5 (diff) | |
download | scummvm-rg350-d503838fd65db483a764d550cc6cce32984f6381.tar.gz scummvm-rg350-d503838fd65db483a764d550cc6cce32984f6381.tar.bz2 scummvm-rg350-d503838fd65db483a764d550cc6cce32984f6381.zip |
DREAMWEB: Moved the two rollEndCredits functions together in print.cpp and renamed them to rollEndCreditsGameWon and rollEndCreditsGameLost
Diffstat (limited to 'engines/dreamweb')
-rw-r--r-- | engines/dreamweb/dreambase.h | 5 | ||||
-rw-r--r-- | engines/dreamweb/people.cpp | 2 | ||||
-rw-r--r-- | engines/dreamweb/print.cpp | 87 | ||||
-rw-r--r-- | engines/dreamweb/sprite.cpp | 46 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 2 | ||||
-rw-r--r-- | engines/dreamweb/vgafades.cpp | 49 |
6 files changed, 91 insertions, 100 deletions
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h index 3b4ef7e131..a669e6bc20 100644 --- a/engines/dreamweb/dreambase.h +++ b/engines/dreamweb/dreambase.h @@ -291,6 +291,8 @@ public: uint16 waitFrames(); void printCurs(); void delCurs(); + void rollEndCreditsGameWon(); + void rollEndCreditsGameLost(); // from saveload.cpp void loadGame(); @@ -362,7 +364,6 @@ public: void intro2Text(uint16 nextReelPointer); void intro3Text(uint16 nextReelPointer); - void rollEndCredits(); void monks2text(); void textForEnd(); void textForMonkHelper(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount); @@ -726,8 +727,6 @@ public: void createPanel(); void createPanel2(); void showPanel(); - void rollEndCredits2(); - void rollEm(); }; diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp index 83eb10765b..a6ebbcc1ec 100644 --- a/engines/dreamweb/people.cpp +++ b/engines/dreamweb/people.cpp @@ -1030,7 +1030,7 @@ void DreamBase::endGameSeq(ReelRoutine &routine) { if (routine.reelPointer() == 145) { routine.setReelPointer(146); - rollEndCredits(); + rollEndCreditsGameWon(); } } diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp index 0fd596ceac..0191aa8860 100644 --- a/engines/dreamweb/print.cpp +++ b/engines/dreamweb/print.cpp @@ -263,4 +263,91 @@ const char *DreamBase::monPrint(const char *string) { return iterator; } +void DreamBase::rollEndCreditsGameWon() { + playChannel0(16, 255); + data.byte(kVolume) = 7; + data.byte(kVolumeto) = 0; + data.byte(kVolumedirection) = (byte)-1; + + multiGet(mapStore(), 75, 20, 160, 160); + + const uint8 *string = getTextInFile1(3); + const int linespacing = data.word(kLinespacing); + + for (int i = 0; i < 254; ++i) { + // Output the text, initially with an offset of 10 pixels, + // then move it up one pixel until we shifted it by a complete + // line of text. + for (int j = 0; j < linespacing; ++j) { + vSync(); + multiPut(mapStore(), 75, 20, 160, 160); + vSync(); + + // Output up to 18 lines of text + uint16 y = 10 - j; + const uint8 *tmp_str = string; + for (int k = 0; k < 18; ++k) { + DreamBase::printDirect(&tmp_str, 75, &y, 160 + 1, true); + y += linespacing; + } + + vSync(); + multiDump(75, 20, 160, 160); + } + + // Skip to the next text line + byte c; + do { + c = *string++; + } while (c != ':' && c != 0); + } + + hangOn(100); + panelToMap(); + fadeScreenUpHalf(); +} + +void DreamBase::rollEndCreditsGameLost() { + multiGet(mapStore(), 25, 20, 160, 160); + + const uint8 *string = getTextInFile1(49); + const int linespacing = data.word(kLinespacing); + + for (int i = 0; i < 80; ++i) { + // Output the text, initially with an offset of 10 pixels, + // then move it up one pixel until we shifted it by a complete + // line of text. + for (int j = 0; j < linespacing; ++j) { + vSync(); + multiPut(mapStore(), 25, 20, 160, 160); + vSync(); + + // Output up to 18 lines of text + uint16 y = 10 - j; + const uint8 *tmp_str = string; + for (int k = 0; k < 18; ++k) { + DreamBase::printDirect(&tmp_str, 25, &y, 160 + 1, true); + y += linespacing; + } + + vSync(); + multiDump(25, 20, 160, 160); + + if (data.byte(kLasthardkey) == 1) + return; + } + + // Skip to the next text line + byte c; + do { + c = *string++; + } while (c != ':' && c != 0); + + if (data.byte(kLasthardkey) == 1) + return; + } + + hangOne(120); +} + } // End of namespace DreamGen diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index 72be878e14..f23804b395 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -705,52 +705,6 @@ void DreamBase::intro3Text(uint16 nextReelPointer) { setupTimedTemp(46, 82, 36, 56, 100, 1); } -void DreamBase::rollEndCredits() { - // Note: This function is very similar to rollEm() in vgafades.cpp - - playChannel0(16, 255); - data.byte(kVolume) = 7; - data.byte(kVolumeto) = 0; - data.byte(kVolumedirection) = (byte)-1; - - multiGet(mapStore(), 75, 20, 160, 160); - - const uint8 *string = getTextInFile1(3); - const int linespacing = data.word(kLinespacing); - - for (int i = 0; i < 254; ++i) { - // Output the text, initially with an offset of 10 pixels, - // then move it up one pixel until we shifted it by a complete - // line of text. - for (int j = 0; j < linespacing; ++j) { - vSync(); - multiPut(mapStore(), 75, 20, 160, 160); - vSync(); - - // Output up to 18 lines of text - uint16 y = 10 - j; - const uint8 *tmp_str = string; - for (int k = 0; k < 18; ++k) { - DreamBase::printDirect(&tmp_str, 75, &y, 160 + 1, true); - y += linespacing; - } - - vSync(); - multiDump(75, 20, 160, 160); - } - - // Skip to the next text line - byte c; - do { - c = *string++; - } while (c != ':' && c != 0); - } - hangOn(100); - panelToMap(); - fadeScreenUpHalf(); -} - - void DreamBase::monks2text() { bool isGermanCD = isCD() && engine->getLanguage() == Common::DE_DEU; diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index f21927c57d..e8fa1767b8 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -3190,7 +3190,7 @@ void DreamGenContext::showGun() { hangOn(160); playChannel0(12, 0); loadTempText("DREAMWEB.T83"); - rollEndCredits2(); + rollEndCreditsGameLost(); getRidOfTempText(); } diff --git a/engines/dreamweb/vgafades.cpp b/engines/dreamweb/vgafades.cpp index 23a8655fa1..3833050003 100644 --- a/engines/dreamweb/vgafades.cpp +++ b/engines/dreamweb/vgafades.cpp @@ -281,53 +281,4 @@ void DreamBase::dumpCurrent() { engine->setPalette(pal, 128, 128); } -void DreamBase::rollEndCredits2() { - rollEm(); -} - -void DreamBase::rollEm() { - // Note: This function is very similar to rollEndCredits() in sprite.cpp - - multiGet(mapStore(), 25, 20, 160, 160); - - const uint8 *string = getTextInFile1(49); - const int linespacing = data.word(kLinespacing); - - for (int i = 0; i < 80; ++i) { - // Output the text, initially with an offset of 10 pixels, - // then move it up one pixel until we shifted it by a complete - // line of text. - for (int j = 0; j < linespacing; ++j) { - vSync(); - multiPut(mapStore(), 25, 20, 160, 160); - vSync(); - - // Output up to 18 lines of text - uint16 y = 10 - j; - const uint8 *tmp_str = string; - for (int k = 0; k < 18; ++k) { - DreamBase::printDirect(&tmp_str, 25, &y, 160 + 1, true); - y += linespacing; - } - - vSync(); - multiDump(25, 20, 160, 160); - - if (data.byte(kLasthardkey) == 1) - return; - } - - // Skip to the next text line - byte c; - do { - c = *string++; - } while (c != ':' && c != 0); - - if (data.byte(kLasthardkey) == 1) - return; - } - - hangOne(120); -} - } // End of namespace DreamGen |