mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-26 20:59:00 +00:00
DREAMWEB: Moved the two rollEndCredits functions together in print.cpp and renamed them to rollEndCreditsGameWon and rollEndCreditsGameLost
This commit is contained in:
parent
9a89f8884c
commit
d503838fd6
@ -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();
|
||||
};
|
||||
|
||||
|
||||
|
@ -1030,7 +1030,7 @@ void DreamBase::endGameSeq(ReelRoutine &routine) {
|
||||
|
||||
if (routine.reelPointer() == 145) {
|
||||
routine.setReelPointer(146);
|
||||
rollEndCredits();
|
||||
rollEndCreditsGameWon();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -3190,7 +3190,7 @@ void DreamGenContext::showGun() {
|
||||
hangOn(160);
|
||||
playChannel0(12, 0);
|
||||
loadTempText("DREAMWEB.T83");
|
||||
rollEndCredits2();
|
||||
rollEndCreditsGameLost();
|
||||
getRidOfTempText();
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user