aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-26 03:15:47 +0200
committerFilippos Karapetis2011-12-26 03:15:47 +0200
commitd503838fd65db483a764d550cc6cce32984f6381 (patch)
tree0c74268df8db8865982facb7c9bf7ba6e761843a /engines/dreamweb
parent9a89f8884c0da0ee7c979d6df19969713fa16bf5 (diff)
downloadscummvm-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.h5
-rw-r--r--engines/dreamweb/people.cpp2
-rw-r--r--engines/dreamweb/print.cpp87
-rw-r--r--engines/dreamweb/sprite.cpp46
-rw-r--r--engines/dreamweb/stubs.cpp2
-rw-r--r--engines/dreamweb/vgafades.cpp49
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