SUPERNOVA: Use setCurrentImage instead of passing the image to renderImage
This is more similar to what the original code does and allows to retire the renderImage variant that takes an image.
This commit is contained in:
parent
624425077b
commit
888930660a
6 changed files with 168 additions and 143 deletions
|
@ -47,7 +47,11 @@ bool Console::cmdRenderImage(int argc, const char **argv) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
_vm->renderImage(atoi(argv[1]), atoi(argv[2]));
|
int image = atoi(argv[1]);
|
||||||
|
if (_vm->setCurrentImage(image))
|
||||||
|
_vm->renderImage(atoi(argv[2]));
|
||||||
|
else
|
||||||
|
debugPrintf("Image %d is invalid!", image);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,13 +149,15 @@ void Intro::titleScreen() {
|
||||||
CursorMan.showMouse(false);
|
CursorMan.showMouse(false);
|
||||||
_vm->_brightness = 0;
|
_vm->_brightness = 0;
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_vm->renderImage(1, 0);
|
_vm->setCurrentImage(1);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
_gm->getInput();
|
_gm->getInput();
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
|
|
||||||
// Title Screen
|
// Title Screen
|
||||||
_vm->renderImage(31, 0);
|
_vm->setCurrentImage(31);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
_gm->wait2(1);
|
_gm->wait2(1);
|
||||||
_vm->playSound(kAudioVoiceSupernova);
|
_vm->playSound(kAudioVoiceSupernova);
|
||||||
|
@ -198,13 +200,13 @@ void Intro::titleFadeIn() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Intro::animate(int filenumber, int section1, int section2, int duration) {
|
bool Intro::animate(int section1, int section2, int duration) {
|
||||||
Common::KeyCode key = Common::KEYCODE_INVALID;
|
Common::KeyCode key = Common::KEYCODE_INVALID;
|
||||||
while (duration) {
|
while (duration) {
|
||||||
_vm->renderImage(filenumber, section1);
|
_vm->renderImage(section1);
|
||||||
if (_gm->waitOnInput(2, key))
|
if (_gm->waitOnInput(2, key))
|
||||||
return key != Common::KEYCODE_ESCAPE;
|
return key != Common::KEYCODE_ESCAPE;
|
||||||
_vm->renderImage(filenumber, section2);
|
_vm->renderImage(section2);
|
||||||
if (_gm->waitOnInput(2, key))
|
if (_gm->waitOnInput(2, key))
|
||||||
return key != Common::KEYCODE_ESCAPE;
|
return key != Common::KEYCODE_ESCAPE;
|
||||||
--duration;
|
--duration;
|
||||||
|
@ -212,7 +214,7 @@ bool Intro::animate(int filenumber, int section1, int section2, int duration) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Intro::animate(int filenumber, int section1, int section2, int duration,
|
bool Intro::animate(int section1, int section2, int duration,
|
||||||
MessagePosition position, StringID textId) {
|
MessagePosition position, StringID textId) {
|
||||||
Common::KeyCode key = Common::KEYCODE_INVALID;
|
Common::KeyCode key = Common::KEYCODE_INVALID;
|
||||||
const Common::String& text = _vm->getGameString(textId);
|
const Common::String& text = _vm->getGameString(textId);
|
||||||
|
@ -220,13 +222,13 @@ bool Intro::animate(int filenumber, int section1, int section2, int duration,
|
||||||
int delay = (MIN(text.size(), (uint)512) + 20) * (10 - duration) * _vm->_textSpeed / 400;
|
int delay = (MIN(text.size(), (uint)512) + 20) * (10 - duration) * _vm->_textSpeed / 400;
|
||||||
while (delay) {
|
while (delay) {
|
||||||
if (section1)
|
if (section1)
|
||||||
_vm->renderImage(filenumber, section1);
|
_vm->renderImage(section1);
|
||||||
if (_gm->waitOnInput(2, key)) {
|
if (_gm->waitOnInput(2, key)) {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
return key != Common::KEYCODE_ESCAPE;
|
return key != Common::KEYCODE_ESCAPE;
|
||||||
}
|
}
|
||||||
if (section2)
|
if (section2)
|
||||||
_vm->renderImage(filenumber, section2);
|
_vm->renderImage(section2);
|
||||||
if (_gm->waitOnInput(2, key)) {
|
if (_gm->waitOnInput(2, key)) {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
return key != Common::KEYCODE_ESCAPE;
|
return key != Common::KEYCODE_ESCAPE;
|
||||||
|
@ -237,7 +239,7 @@ bool Intro::animate(int filenumber, int section1, int section2, int duration,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Intro::animate(int filenumber, int section1, int section2, int section3, int section4,
|
bool Intro::animate(int section1, int section2, int section3, int section4,
|
||||||
int duration, MessagePosition position, StringID textId) {
|
int duration, MessagePosition position, StringID textId) {
|
||||||
Common::KeyCode key = Common::KEYCODE_INVALID;
|
Common::KeyCode key = Common::KEYCODE_INVALID;
|
||||||
const Common::String& text = _vm->getGameString(textId);
|
const Common::String& text = _vm->getGameString(textId);
|
||||||
|
@ -246,14 +248,14 @@ bool Intro::animate(int filenumber, int section1, int section2, int section3, in
|
||||||
duration = (MIN(text.size(), (uint)512) + 20) * _vm->_textSpeed / 40;
|
duration = (MIN(text.size(), (uint)512) + 20) * _vm->_textSpeed / 40;
|
||||||
|
|
||||||
while(duration) {
|
while(duration) {
|
||||||
_vm->renderImage(filenumber, section1);
|
_vm->renderImage(section1);
|
||||||
_vm->renderImage(filenumber, section3);
|
_vm->renderImage(section3);
|
||||||
if (_gm->waitOnInput(2, key)) {
|
if (_gm->waitOnInput(2, key)) {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
return key != Common::KEYCODE_ESCAPE;
|
return key != Common::KEYCODE_ESCAPE;
|
||||||
}
|
}
|
||||||
_vm->renderImage(filenumber, section2);
|
_vm->renderImage(section2);
|
||||||
_vm->renderImage(filenumber, section4);
|
_vm->renderImage(section4);
|
||||||
if (_gm->waitOnInput(2, key)) {
|
if (_gm->waitOnInput(2, key)) {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
return key != Common::KEYCODE_ESCAPE;
|
return key != Common::KEYCODE_ESCAPE;
|
||||||
|
@ -272,39 +274,41 @@ void Intro::cutscene() {
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
_vm->_system->fillScreen(kColorBlack);
|
_vm->_system->fillScreen(kColorBlack);
|
||||||
|
_vm->setCurrentImage(31);
|
||||||
_vm->_menuBrightness = 255;
|
_vm->_menuBrightness = 255;
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene1))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene1))
|
||||||
return;
|
return;
|
||||||
_vm->_menuBrightness = 0;
|
_vm->_menuBrightness = 0;
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
exitOnEscape(1);
|
exitOnEscape(1);
|
||||||
|
|
||||||
_vm->renderImage(9, 0);
|
_vm->setCurrentImage(9);
|
||||||
_vm->renderImage(9, 1);
|
_vm->renderImage(0);
|
||||||
_vm->renderImage(9, 9);
|
_vm->renderImage(1);
|
||||||
|
_vm->renderImage(9);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
if (!animate(9, 11, 10, 6, kMessageRight, kStringIntroCutscene2))
|
if (!animate(11, 10, 6, kMessageRight, kStringIntroCutscene2))
|
||||||
return;
|
return;
|
||||||
_vm->renderImage(9, 3);
|
_vm->renderImage(3);
|
||||||
exitOnEscape(4);
|
exitOnEscape(4);
|
||||||
_vm->renderImage(9, 4);
|
_vm->renderImage(4);
|
||||||
if (!animate(9, 11, 10, 3)) {// test duration
|
if (!animate(11, 10, 3)) {// test duration
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
if (!animate(9, 5, 4, 0, kMessageLeft, kStringIntroCutscene3))
|
if (!animate(5, 4, 0, kMessageLeft, kStringIntroCutscene3))
|
||||||
return;
|
return;
|
||||||
_vm->renderImage(9, 3);
|
_vm->renderImage(3);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 2);
|
_vm->renderImage(2);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 7);
|
_vm->renderImage(7);
|
||||||
exitOnEscape(6);
|
exitOnEscape(6);
|
||||||
_vm->renderImage(9, 6);
|
_vm->renderImage(6);
|
||||||
exitOnEscape(6);
|
exitOnEscape(6);
|
||||||
if (!animate(9, 0, 0, 0, kMessageLeft, kStringIntroCutscene4))
|
if (!animate(0, 0, 0, kMessageLeft, kStringIntroCutscene4))
|
||||||
return;
|
return;
|
||||||
_vm->renderMessage(kStringIntroCutscene5, kMessageLeft);
|
_vm->renderMessage(kStringIntroCutscene5, kMessageLeft);
|
||||||
exitOnEscape(28);
|
exitOnEscape(28);
|
||||||
|
@ -315,12 +319,13 @@ void Intro::cutscene() {
|
||||||
|
|
||||||
StringID textCounting[4] =
|
StringID textCounting[4] =
|
||||||
{kStringIntroCutscene7, kStringIntroCutscene8, kStringIntroCutscene9, kStringIntroCutscene10};
|
{kStringIntroCutscene7, kStringIntroCutscene8, kStringIntroCutscene9, kStringIntroCutscene10};
|
||||||
_vm->renderImage(31, 0);
|
_vm->setCurrentImage(31);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
for (int i = 0; i < 4; ++i){
|
for (int i = 0; i < 4; ++i){
|
||||||
_vm->renderMessage(textCounting[i], kMessageLeft);
|
_vm->renderMessage(textCounting[i], kMessageLeft);
|
||||||
for (int j = 0; j < 28; ++j) {
|
for (int j = 0; j < 28; ++j) {
|
||||||
_vm->renderImage(31, (j % 3) + 1);
|
_vm->renderImage((j % 3) + 1);
|
||||||
Common::KeyCode key = Common::KEYCODE_INVALID;
|
Common::KeyCode key = Common::KEYCODE_INVALID;
|
||||||
if (_gm->waitOnInput(1, key)) {
|
if (_gm->waitOnInput(1, key)) {
|
||||||
if (key == Common::KEYCODE_ESCAPE)
|
if (key == Common::KEYCODE_ESCAPE)
|
||||||
|
@ -331,87 +336,88 @@ void Intro::cutscene() {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
}
|
}
|
||||||
_vm->renderMessage(kStringIntroCutscene11, kMessageLeft);
|
_vm->renderMessage(kStringIntroCutscene11, kMessageLeft);
|
||||||
_vm->renderImage(31, 6);
|
_vm->renderImage(6);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(31, 3);
|
_vm->renderImage(3);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(31, 4);
|
_vm->renderImage(4);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(31, 5);
|
_vm->renderImage(5);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(31, _gm->invertSection(5));
|
_vm->renderImage(_gm->invertSection(5));
|
||||||
exitOnEscape(18);
|
exitOnEscape(18);
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
|
|
||||||
_vm->renderImage(9, 0);
|
_vm->setCurrentImage(9);
|
||||||
_vm->renderImage(9, 1);
|
_vm->renderImage(0);
|
||||||
_vm->renderImage(9, 9);
|
_vm->renderImage(1);
|
||||||
|
_vm->renderImage(9);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_vm->renderBox(0, 138, 320, 62, kColorBlack);
|
_vm->renderBox(0, 138, 320, 62, kColorBlack);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
if (!animate(9, 11, 10, 0, kMessageRight, kStringIntroCutscene12))
|
if (!animate(11, 10, 0, kMessageRight, kStringIntroCutscene12))
|
||||||
return;
|
return;
|
||||||
_vm->renderImage(9, 3);
|
_vm->renderImage(3);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 4);
|
_vm->renderImage(4);
|
||||||
if (!animate(9, 5, 4, 0, kMessageLeft, kStringIntroCutscene13))
|
if (!animate(5, 4, 0, kMessageLeft, kStringIntroCutscene13))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 0, 0, 0, kMessageCenter, kStringIntroCutscene14))
|
if (!animate(0, 0, 0, kMessageCenter, kStringIntroCutscene14))
|
||||||
return;
|
return;
|
||||||
_vm->renderImage(9, 12);
|
_vm->renderImage(12);
|
||||||
exitOnEscape(2);
|
exitOnEscape(2);
|
||||||
_vm->renderImage(9, 13);
|
_vm->renderImage(13);
|
||||||
exitOnEscape(2);
|
exitOnEscape(2);
|
||||||
_vm->renderImage(9, 14);
|
_vm->renderImage(14);
|
||||||
if (!animate(9, 19, 20, 0, kMessageRight, kStringIntroCutscene15))
|
if (!animate(19, 20, 0, kMessageRight, kStringIntroCutscene15))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 0, 0, 0, kMessageCenter, kStringIntroCutscene16))
|
if (!animate(0, 0, 0, kMessageCenter, kStringIntroCutscene16))
|
||||||
return;
|
return;
|
||||||
exitOnEscape(20);
|
exitOnEscape(20);
|
||||||
if (!animate(9, 0, 0, 0, kMessageCenter, kStringIntroCutscene17))
|
if (!animate(0, 0, 0, kMessageCenter, kStringIntroCutscene17))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 19, 20, 0, kMessageRight, kStringIntroCutscene18))
|
if (!animate(19, 20, 0, kMessageRight, kStringIntroCutscene18))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 0, 0, 0, kMessageCenter, kStringIntroCutscene19))
|
if (!animate(0, 0, 0, kMessageCenter, kStringIntroCutscene19))
|
||||||
return;
|
return;
|
||||||
_vm->renderImage(9, 16);
|
_vm->renderImage(16);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 17);
|
_vm->renderImage(17);
|
||||||
if (!animate(9, 19, 20, 18, 17, 0, kMessageRight, kStringIntroCutscene20))
|
if (!animate(19, 20, 18, 17, 0, kMessageRight, kStringIntroCutscene20))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 19, 20, 18, 17, 0, kMessageRight, kStringIntroCutscene21))
|
if (!animate(19, 20, 18, 17, 0, kMessageRight, kStringIntroCutscene21))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 5, 4, 0, kMessageLeft, kStringIntroCutscene3))
|
if (!animate(5, 4, 0, kMessageLeft, kStringIntroCutscene3))
|
||||||
return;
|
return;
|
||||||
_vm->renderImage(9, 3);
|
_vm->renderImage(3);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 2);
|
_vm->renderImage(2);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 8);
|
_vm->renderImage(8);
|
||||||
exitOnEscape(6);
|
exitOnEscape(6);
|
||||||
_vm->renderImage(9, 6);
|
_vm->renderImage(6);
|
||||||
_vm->playSound(kAudioSiren);
|
_vm->playSound(kAudioSiren);
|
||||||
|
|
||||||
exitOnEscape(6);
|
exitOnEscape(6);
|
||||||
_vm->renderImage(9, 3);
|
_vm->renderImage(3);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 4);
|
_vm->renderImage(4);
|
||||||
_vm->renderImage(9, 16);
|
_vm->renderImage(16);
|
||||||
exitOnEscape(3);
|
exitOnEscape(3);
|
||||||
_vm->renderImage(9, 15);
|
_vm->renderImage(15);
|
||||||
if (!animate(9, 19, 20, 0, kMessageRight, kStringIntroCutscene22))
|
if (!animate(19, 20, 0, kMessageRight, kStringIntroCutscene22))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 19, 20, 0, kMessageRight, kStringIntroCutscene23))
|
if (!animate(19, 20, 0, kMessageRight, kStringIntroCutscene23))
|
||||||
return;
|
return;
|
||||||
exitOnEscape(10);
|
exitOnEscape(10);
|
||||||
_vm->renderImage(9, 13);
|
_vm->renderImage(13);
|
||||||
exitOnEscape(2);
|
exitOnEscape(2);
|
||||||
_vm->renderImage(9, 12);
|
_vm->renderImage(12);
|
||||||
exitOnEscape(2);
|
exitOnEscape(2);
|
||||||
_vm->renderImage(9, 9);
|
_vm->renderImage(9);
|
||||||
if (!animate(9, 11, 10, 0, kMessageRight, kStringIntroCutscene24))
|
if (!animate(11, 10, 0, kMessageRight, kStringIntroCutscene24))
|
||||||
return;
|
return;
|
||||||
if (!animate(9, 5, 4, 0, kMessageLeft, kStringIntroCutscene3))
|
if (!animate(5, 4, 0, kMessageLeft, kStringIntroCutscene3))
|
||||||
return;
|
return;
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
|
|
||||||
|
@ -421,27 +427,28 @@ void Intro::cutscene() {
|
||||||
_vm->_system->fillScreen(kColorBlack);
|
_vm->_system->fillScreen(kColorBlack);
|
||||||
_vm->_menuBrightness = 255;
|
_vm->_menuBrightness = 255;
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
if (!animate(9, 0, 0, 0, kMessageNormal, kStringIntroCutscene25))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene25))
|
||||||
return;
|
return;
|
||||||
_vm->_menuBrightness = 5;
|
_vm->_menuBrightness = 5;
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
|
|
||||||
_vm->renderImage(31, 0);
|
_vm->setCurrentImage(31);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene26))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene26))
|
||||||
return;
|
return;
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene27))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene27))
|
||||||
return;
|
return;
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene28))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene28))
|
||||||
return;
|
return;
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene29))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene29))
|
||||||
return;
|
return;
|
||||||
exitOnEscape(54);
|
exitOnEscape(54);
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene30))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene30))
|
||||||
return;
|
return;
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene31))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene31))
|
||||||
return;
|
return;
|
||||||
if (!animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene32))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene32))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_vm->_brightness = 0;
|
_vm->_brightness = 0;
|
||||||
|
@ -459,29 +466,30 @@ void Intro::cutscene() {
|
||||||
while (_vm->_mixer->isSoundHandleActive(_vm->_soundHandle))
|
while (_vm->_mixer->isSoundHandleActive(_vm->_soundHandle))
|
||||||
;
|
;
|
||||||
exitOnEscape(30);
|
exitOnEscape(30);
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene33))
|
_vm->setCurrentImage(22);
|
||||||
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene33))
|
||||||
return;
|
return;
|
||||||
exitOnEscape(18);
|
exitOnEscape(18);
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene34))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene34))
|
||||||
return;
|
return;
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene35))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene35))
|
||||||
return;
|
return;
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene36))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene36))
|
||||||
return;
|
return;
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene37))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene37))
|
||||||
return;
|
return;
|
||||||
exitOnEscape(18);
|
exitOnEscape(18);
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene38))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene38))
|
||||||
return;
|
return;
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene39))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene39))
|
||||||
return;
|
return;
|
||||||
exitOnEscape(18);
|
exitOnEscape(18);
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene40))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene40))
|
||||||
return;
|
return;
|
||||||
if (!animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene41))
|
if (!animate(0, 0, 0, kMessageNormal, kStringIntroCutscene41))
|
||||||
return;
|
return;
|
||||||
exitOnEscape(36);
|
exitOnEscape(36);
|
||||||
animate(22, 0, 0, 0, kMessageNormal, kStringIntroCutscene42);
|
animate(0, 0, 0, kMessageNormal, kStringIntroCutscene42);
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
|
|
||||||
#undef exitOnEscape
|
#undef exitOnEscape
|
||||||
|
@ -1503,7 +1511,8 @@ bool ArsanoMeetup::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
} else if ((verb == ACTION_WALK) && (obj1._id == STAR)) {
|
} else if ((verb == ACTION_WALK) && (obj1._id == STAR)) {
|
||||||
_vm->renderMessage(kStringArsanoMeetup2);
|
_vm->renderMessage(kStringArsanoMeetup2);
|
||||||
} else if ((verb == ACTION_LOOK) && (obj1._id == STAR)) {
|
} else if ((verb == ACTION_LOOK) && (obj1._id == STAR)) {
|
||||||
_vm->renderImage(26, 0);
|
_vm->setCurrentImage(26);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_gm->animationOff();
|
_gm->animationOff();
|
||||||
_gm->getInput();
|
_gm->getInput();
|
||||||
|
@ -2151,7 +2160,8 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
((obj1._id == SPACESHIP) || (obj1._id == ROGER_W))) ||
|
((obj1._id == SPACESHIP) || (obj1._id == ROGER_W))) ||
|
||||||
((verb == ACTION_TALK) && (obj1._id == ROGER_W))) {
|
((verb == ACTION_TALK) && (obj1._id == ROGER_W))) {
|
||||||
_gm->changeRoom(INTRO);
|
_gm->changeRoom(INTRO);
|
||||||
_vm->renderImage(30, 0);
|
_vm->setCurrentImage(30);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
bool found;
|
bool found;
|
||||||
if (sentenceRemoved(0, 2) || sentenceRemoved(1, 2)) {
|
if (sentenceRemoved(0, 2) || sentenceRemoved(1, 2)) {
|
||||||
|
@ -2187,35 +2197,38 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
shipStart();
|
shipStart();
|
||||||
if (flight) {
|
if (flight) {
|
||||||
_vm->renderImage(13, 0);
|
_vm->setCurrentImage(13);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_gm->wait2(36);
|
_gm->wait2(36);
|
||||||
for (int i = 1; i <= 13; i++) {
|
for (int i = 1; i <= 13; i++) {
|
||||||
if (i > 1)
|
if (i > 1)
|
||||||
_vm->renderImage(13, _gm->invertSection(i - 1));
|
_vm->renderImage(_gm->invertSection(i - 1));
|
||||||
_vm->renderImage(13, i);
|
_vm->renderImage(i);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
}
|
}
|
||||||
_vm->renderImage(13, _gm->invertSection(13));
|
_vm->renderImage(_gm->invertSection(13));
|
||||||
_gm->wait2(20);
|
_gm->wait2(20);
|
||||||
_vm->renderImage(14, 0);
|
_vm->setCurrentImage(14);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_gm->wait2(36);
|
_gm->wait2(36);
|
||||||
for (int i = 1; i <= 13; i++) {
|
for (int i = 1; i <= 13; i++) {
|
||||||
if (i > 1)
|
if (i > 1)
|
||||||
_vm->renderImage(14, _gm->invertSection(i - 1));
|
_vm->renderImage(_gm->invertSection(i - 1));
|
||||||
_vm->renderImage(14, i);
|
_vm->renderImage(i);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
}
|
}
|
||||||
_vm->renderImage(14, _gm->invertSection(13));
|
_vm->renderImage(_gm->invertSection(13));
|
||||||
_gm->wait2(9);
|
_gm->wait2(9);
|
||||||
_vm->playSound(kAudioCrash);
|
_vm->playSound(kAudioCrash);
|
||||||
for (int i = 14; i <= 19; i++) {
|
for (int i = 14; i <= 19; i++) {
|
||||||
_vm->renderImage(14, i);
|
_vm->renderImage(i);
|
||||||
_gm->wait2(3);
|
_gm->wait2(3);
|
||||||
}
|
}
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
_vm->renderImage(11, 0);
|
_vm->setCurrentImage(11);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
_gm->wait2(18);
|
_gm->wait2(18);
|
||||||
_vm->renderMessage(kStringArsanoMeetup2_12);
|
_vm->renderMessage(kStringArsanoMeetup2_12);
|
||||||
|
@ -2266,7 +2279,8 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
if ((verb == ACTION_WALK) && (obj1._id == STAR))
|
if ((verb == ACTION_WALK) && (obj1._id == STAR))
|
||||||
_vm->renderMessage(kStringArsanoMeetup2);
|
_vm->renderMessage(kStringArsanoMeetup2);
|
||||||
else if ((verb == ACTION_LOOK) && (obj1._id == STAR)) {
|
else if ((verb == ACTION_LOOK) && (obj1._id == STAR)) {
|
||||||
_vm->renderImage(26, 0);
|
_vm->setCurrentImage(26);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_gm->getInput();
|
_gm->getInput();
|
||||||
g_system->fillScreen(kColorBlack);
|
g_system->fillScreen(kColorBlack);
|
||||||
|
@ -2274,27 +2288,29 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
// CHECKME: Doesn't look complete - check sb_meetup()
|
// CHECKME: Doesn't look complete - check sb_meetup()
|
||||||
} else if ((verb == ACTION_WALK) && (obj1._id == UFO)) {
|
} else if ((verb == ACTION_WALK) && (obj1._id == UFO)) {
|
||||||
g_system->fillScreen(kColorBlack);
|
g_system->fillScreen(kColorBlack);
|
||||||
_vm->renderImage(36, 0);
|
_vm->setCurrentImage(36);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_gm->dialog(3, rowsX, _dialogsX, 0);
|
_gm->dialog(3, rowsX, _dialogsX, 0);
|
||||||
_vm->renderImage(36, 1);
|
_vm->renderImage(1);
|
||||||
_gm->wait2(3);
|
_gm->wait2(3);
|
||||||
_vm->renderImage(36, 2);
|
_vm->renderImage(2);
|
||||||
_gm->wait2(3);
|
_gm->wait2(3);
|
||||||
_vm->renderImage(36, 3);
|
_vm->renderImage(3);
|
||||||
_gm->wait2(6);
|
_gm->wait2(6);
|
||||||
_vm->renderImage(36, 4);
|
_vm->renderImage(4);
|
||||||
_vm->playSound(kAudioGunShot);
|
_vm->playSound(kAudioGunShot);
|
||||||
// TODO: wait until audio finished playing
|
// TODO: wait until audio finished playing
|
||||||
_vm->renderImage(36, 5);
|
_vm->renderImage(5);
|
||||||
_gm->wait2(3);
|
_gm->wait2(3);
|
||||||
_vm->renderImage(36, 4);
|
_vm->renderImage(4);
|
||||||
_vm->playSound(kAudioGunShot);
|
_vm->playSound(kAudioGunShot);
|
||||||
// TODO: wait until audio finished playing
|
// TODO: wait until audio finished playing
|
||||||
_vm->renderImage(36, 5);
|
_vm->renderImage(5);
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
_gm->wait2(12);
|
_gm->wait2(12);
|
||||||
_vm->renderImage(0, 0);
|
_vm->setCurrentImage(0);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
_gm->wait2(18);
|
_gm->wait2(18);
|
||||||
_gm->reply(kStringArsanoMeetup3_1, 2, 2 + 128);
|
_gm->reply(kStringArsanoMeetup3_1, 2, 2 + 128);
|
||||||
|
@ -2645,7 +2661,8 @@ void AxacussCorridor5::stopInteract(int sum) {
|
||||||
bool AxacussCorridor5::interact(Action verb, Object &obj1, Object &obj2) {
|
bool AxacussCorridor5::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
if ((verb == ACTION_WALK) && (obj1._id == DOOR)) {
|
if ((verb == ACTION_WALK) && (obj1._id == DOOR)) {
|
||||||
g_system->fillScreen(kColorBlack);
|
g_system->fillScreen(kColorBlack);
|
||||||
_vm->renderImage(41, 0);
|
_vm->setCurrentImage(41);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
if (_gm->_guiEnabled) {
|
if (_gm->_guiEnabled) {
|
||||||
_gm->reply(kStringAxacussCorridor5_1, 1, 1 + 128);
|
_gm->reply(kStringAxacussCorridor5_1, 1, 1 + 128);
|
||||||
|
@ -3084,7 +3101,8 @@ bool AxacussOffice5::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
bool AxacussElevator::interact(Action verb, Object &obj1, Object &obj2) {
|
bool AxacussElevator::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
if ((verb == ACTION_WALK) && (obj1._id == DOOR)) {
|
if ((verb == ACTION_WALK) && (obj1._id == DOOR)) {
|
||||||
g_system->fillScreen(kColorBlack);
|
g_system->fillScreen(kColorBlack);
|
||||||
_vm->renderImage(41, 0);
|
_vm->setCurrentImage(41);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_gm->reply(kStringAxacussElevator_1, 1, 1 + 128);
|
_gm->reply(kStringAxacussElevator_1, 1, 1 + 128);
|
||||||
_gm->say(kStringAxacussElevator_2);
|
_gm->say(kStringAxacussElevator_2);
|
||||||
|
@ -3150,21 +3168,22 @@ bool AxacussStation::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
obj1.hasProperty(OPENED)) {
|
obj1.hasProperty(OPENED)) {
|
||||||
_gm->great(0);
|
_gm->great(0);
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
_vm->renderImage(35, 0);
|
_vm->setCurrentImage(35);
|
||||||
_vm->renderImage(35, 1);
|
_vm->renderImage(0);
|
||||||
|
_vm->renderImage(1);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
_gm->wait2(10);
|
_gm->wait2(10);
|
||||||
for (int i = 8; i <= 21; i++) {
|
for (int i = 8; i <= 21; i++) {
|
||||||
_vm->renderImage(35, i);
|
_vm->renderImage(i);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
_vm->renderImage(35, _gm->invertSection(i));
|
_vm->renderImage(_gm->invertSection(i));
|
||||||
}
|
}
|
||||||
_gm->wait2(18);
|
_gm->wait2(18);
|
||||||
_vm->renderImage(35, _gm->invertSection(1));
|
_vm->renderImage(_gm->invertSection(1));
|
||||||
for (int i = 2; i <= 7; i++) {
|
for (int i = 2; i <= 7; i++) {
|
||||||
_vm->renderImage(35, _gm->invertSection(i));
|
_vm->renderImage(_gm->invertSection(i));
|
||||||
_gm->wait2(3);
|
_gm->wait2(3);
|
||||||
_vm->renderImage(35, _gm->invertSection(i));
|
_vm->renderImage(_gm->invertSection(i));
|
||||||
}
|
}
|
||||||
_gm->outro();
|
_gm->outro();
|
||||||
} else {
|
} else {
|
||||||
|
@ -3221,10 +3240,11 @@ void Outro::animation() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Outro::animate(int filenumber, int section1, int section2, int duration) {
|
void Outro::animate(int filenumber, int section1, int section2, int duration) {
|
||||||
|
_vm->setCurrentImage(filenumber);
|
||||||
while (duration) {
|
while (duration) {
|
||||||
_vm->renderImage(filenumber, section1);
|
_vm->renderImage(section1);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
_vm->renderImage(filenumber, section2);
|
_vm->renderImage(section2);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
--duration;
|
--duration;
|
||||||
}
|
}
|
||||||
|
@ -3234,12 +3254,13 @@ void Outro::animate(int filenumber, int section1, int section2, int duration,
|
||||||
MessagePosition position, const char *text) {
|
MessagePosition position, const char *text) {
|
||||||
_vm->renderMessage(text, position);
|
_vm->renderMessage(text, position);
|
||||||
int delay = (Common::strnlen(text, 512) + 20) * (10 - duration) * _vm->_textSpeed / 400;
|
int delay = (Common::strnlen(text, 512) + 20) * (10 - duration) * _vm->_textSpeed / 400;
|
||||||
|
_vm->setCurrentImage(filenumber);
|
||||||
while (delay) {
|
while (delay) {
|
||||||
if (section1)
|
if (section1)
|
||||||
_vm->renderImage(filenumber, section1);
|
_vm->renderImage(section1);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
if (section2)
|
if (section2)
|
||||||
_vm->renderImage(filenumber, section2);
|
_vm->renderImage(section2);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
--delay;
|
--delay;
|
||||||
}
|
}
|
||||||
|
@ -3252,12 +3273,13 @@ void Outro::animate(int filenumber, int section1, int section2, int section3, in
|
||||||
if (duration == 0)
|
if (duration == 0)
|
||||||
duration = (Common::strnlen(text, 512) + 20) * _vm->_textSpeed / 40;
|
duration = (Common::strnlen(text, 512) + 20) * _vm->_textSpeed / 40;
|
||||||
|
|
||||||
|
_vm->setCurrentImage(filenumber);
|
||||||
while(duration) {
|
while(duration) {
|
||||||
_vm->renderImage(filenumber, section1);
|
_vm->renderImage(section1);
|
||||||
_vm->renderImage(filenumber, section3);
|
_vm->renderImage(section3);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
_vm->renderImage(filenumber, section2);
|
_vm->renderImage(section2);
|
||||||
_vm->renderImage(filenumber, section4);
|
_vm->renderImage(section4);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
duration--;
|
duration--;
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,10 +127,10 @@ public:
|
||||||
virtual void onEntrance();
|
virtual void onEntrance();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool animate(int filenumber, int section1, int section2, int duration);
|
bool animate(int section1, int section2, int duration);
|
||||||
bool animate(int filenumber, int section1, int section2, int duration, MessagePosition position,
|
bool animate(int section1, int section2, int duration, MessagePosition position,
|
||||||
StringID text);
|
StringID text);
|
||||||
bool animate(int filenumber, int section1, int section2, int section3, int section4, int duration,
|
bool animate(int section1, int section2, int section3, int section4, int duration,
|
||||||
MessagePosition position, StringID text);
|
MessagePosition position, StringID text);
|
||||||
|
|
||||||
void titleScreen();
|
void titleScreen();
|
||||||
|
|
|
@ -760,7 +760,8 @@ void GameManager::supernovaEvent() {
|
||||||
_vm->renderMessage(kStringSupernova2);
|
_vm->renderMessage(kStringSupernova2);
|
||||||
waitOnInput(_timer1);
|
waitOnInput(_timer1);
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
_vm->renderImage(26, 0);
|
_vm->setCurrentImage(26);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
novaScroll();
|
novaScroll();
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
|
@ -873,7 +874,8 @@ void GameManager::outro() {
|
||||||
_vm->playSoundMod(49);
|
_vm->playSoundMod(49);
|
||||||
// title = 0;
|
// title = 0;
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
_vm->renderImage(55, 0);
|
_vm->setCurrentImage(55);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
getInput();
|
getInput();
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
|
@ -1463,7 +1465,8 @@ void GameManager::closeLocker(const Room *room, Object *obj, Object *lock, int s
|
||||||
void GameManager::dead(StringID messageId) {
|
void GameManager::dead(StringID messageId) {
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
_guiEnabled = false;
|
_guiEnabled = false;
|
||||||
_vm->renderImage(11, 0);
|
_vm->setCurrentImage(11);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->renderMessage(messageId);
|
_vm->renderMessage(messageId);
|
||||||
_vm->playSound(kAudioDeath);
|
_vm->playSound(kAudioDeath);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
|
@ -1488,7 +1491,8 @@ void GameManager::dead(StringID messageId) {
|
||||||
void GameManager::dead(const char *message) {
|
void GameManager::dead(const char *message) {
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
_guiEnabled = false;
|
_guiEnabled = false;
|
||||||
_vm->renderImage(11, 0);
|
_vm->setCurrentImage(11);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->renderMessage(message);
|
_vm->renderMessage(message);
|
||||||
_vm->playSound(kAudioDeath);
|
_vm->playSound(kAudioDeath);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
|
@ -1586,7 +1590,8 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
_vm->renderMessage(kStringGenericInteract_11);
|
_vm->renderMessage(kStringGenericInteract_11);
|
||||||
waitOnInput(_timer1);
|
waitOnInput(_timer1);
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
_vm->renderImage(2, 0);
|
_vm->setCurrentImage(2);
|
||||||
|
_vm->renderImage(0);
|
||||||
_vm->setColor63(40);
|
_vm->setColor63(40);
|
||||||
getInput();
|
getInput();
|
||||||
_vm->renderRoom(*_currentRoom);
|
_vm->renderRoom(*_currentRoom);
|
||||||
|
|
|
@ -457,11 +457,6 @@ void SupernovaEngine::renderImageSection(int section) {
|
||||||
sectionRect.width(), sectionRect.height());
|
sectionRect.width(), sectionRect.height());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SupernovaEngine::renderImage(int filenumber, int section) {
|
|
||||||
if (setCurrentImage(filenumber))
|
|
||||||
renderImage(section);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SupernovaEngine::renderImage(int section) {
|
void SupernovaEngine::renderImage(int section) {
|
||||||
bool sectionVisible = true;
|
bool sectionVisible = true;
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,6 @@ public:
|
||||||
void playSoundMod(int filenumber);
|
void playSoundMod(int filenumber);
|
||||||
void stopSound();
|
void stopSound();
|
||||||
void renderImageSection(int section);
|
void renderImageSection(int section);
|
||||||
void renderImage(int filenumber, int section);
|
|
||||||
void renderImage(int section);
|
void renderImage(int section);
|
||||||
bool setCurrentImage(int filenumber);
|
bool setCurrentImage(int filenumber);
|
||||||
void saveScreen(int x, int y, int width, int height);
|
void saveScreen(int x, int y, int width, int height);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue