diff options
Diffstat (limited to 'engines/kyra/sequences_eob2.cpp')
-rw-r--r-- | engines/kyra/sequences_eob2.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/engines/kyra/sequences_eob2.cpp b/engines/kyra/sequences_eob2.cpp index 1cc4585e1c..8ff5581b9d 100644 --- a/engines/kyra/sequences_eob2.cpp +++ b/engines/kyra/sequences_eob2.cpp @@ -1271,6 +1271,79 @@ void DarkmoonSequenceHelper::waitForSongNotifier(int index, bool introUpdateAnim } } +void DarkMoonEngine::seq_nightmare() { + Screen::FontId of = _screen->setFont(Screen::FID_6_FNT); + _screen->copyRegion(0, 0, 0, 120, 176, 24, 14, 2, Screen::CR_NO_P_CHECK); + + initDialogueSequence(); + gui_drawDialogueBox(); + + _txt->printDialogueText(99, 0); + snd_playSoundEffect(54); + + static const int8 dreamSteps[] = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 3, 2, 1, 0, -1 }; + static const uint8 seqX[] = { 0, 20, 0, 20 }; + static const uint8 seqY[] = { 0, 0, 96, 96 }; + static const uint8 seqDelay[] = { 12, 7, 7, 12 }; + + for (const int8 *i = dreamSteps; *i != -1; ++i) { + drawSequenceBitmap("DREAM", 0, seqX[*i], seqY[*i], 0); + delay(seqDelay[*i] * _tickLength); + } + + _txt->printDialogueText(20, _okStrings[0]); + + restoreAfterDialogueSequence(); + + _screen->setFont(of); +} + +void DarkMoonEngine::seq_dranFools() { + Screen::FontId of = _screen->setFont(Screen::FID_6_FNT); + + initDialogueSequence(); + gui_drawDialogueBox(); + + static const char file[] = "KHELDRAN"; + _txt->printDialogueText(_dranFoolsStrings[0]); + drawSequenceBitmap(file, 0, 0, 0, 0); + _txt->printDialogueText(20, _moreStrings[0]); + snd_playSoundEffect(56); + drawSequenceBitmap(file, 0, 20, 0, 0); + delay(10 * _tickLength); + drawSequenceBitmap(file, 0, 0, 96, 0); + delay(10 * _tickLength); + drawSequenceBitmap(file, 0, 20, 96, 0); + delay(7 * _tickLength); + _txt->printDialogueText(76, _okStrings[0]); + + restoreAfterDialogueSequence(); + + _screen->setFont(of); +} + +void DarkMoonEngine::seq_dranDragonTransformation() { + Screen::FontId of = _screen->setFont(Screen::FID_6_FNT); + + initDialogueSequence(); + gui_drawDialogueBox(); + + static const char file[] = "DRANX"; + drawSequenceBitmap(file, 0, 0, 0, 0); + _txt->printDialogueText(120, _moreStrings[0]); + snd_playSoundEffect(56); + drawSequenceBitmap(file, 0, 20, 0, 0); + delay(7 * _tickLength); + drawSequenceBitmap(file, 0, 0, 96, 0); + delay(7 * _tickLength); + drawSequenceBitmap(file, 0, 20, 96, 0); + delay(18 * _tickLength); + + restoreAfterDialogueSequence(); + + _screen->setFont(of); +} + } // End of namespace Kyra #endif // ENABLE_EOB |