From ec8f1b092dffaee25e4396e1edc1632c63bc3572 Mon Sep 17 00:00:00 2001 From: Oystein Eftevaag Date: Mon, 31 Jul 2006 23:05:01 +0000 Subject: Committing patch '[ 1531177 ] Kyra2 mock-up' by eriktorbjorn, with the addition of playing the music tracks as well (Only MIDI works for now though) svn-id: r23649 --- engines/kyra/kyra2.cpp | 21 +-------- engines/kyra/kyra2.h | 3 ++ engines/kyra/module.mk | 1 + engines/kyra/sequences_v2.cpp | 105 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 110 insertions(+), 20 deletions(-) create mode 100644 engines/kyra/sequences_v2.cpp diff --git a/engines/kyra/kyra2.cpp b/engines/kyra/kyra2.cpp index 5c5c21ed15..a29965e6ac 100644 --- a/engines/kyra/kyra2.cpp +++ b/engines/kyra/kyra2.cpp @@ -22,8 +22,6 @@ #include "kyra/kyra.h" #include "kyra/kyra2.h" -#include "kyra/screen.h" -#include "kyra/wsamovie.h" #include "common/system.h" @@ -37,24 +35,7 @@ KyraEngine_v2::~KyraEngine_v2() { } int KyraEngine_v2::go() { - uint8 pal[768]; - - WSAMovieV2 *title = new WSAMovieV2(this); - title->open("title.WSA", 0, pal); - assert(title->opened()); - - _screen->setScreenPalette(pal); - title->setX(0); title->setY(0); - title->setDrawPage(0); - for (int i = 0; i < 26 && !_quitFlag; ++i) { - uint32 nextRun = _system->getMillis() + 6 * _tickLength; - title->displayFrame(i); - _screen->updateScreen(); - delayUntil(nextRun); - } - - delete title; - + seq_menu(); waitForEvent(); return 0; } diff --git a/engines/kyra/kyra2.h b/engines/kyra/kyra2.h index 8c0cb6d208..27f4b5ce44 100644 --- a/engines/kyra/kyra2.h +++ b/engines/kyra/kyra2.h @@ -33,6 +33,9 @@ public: int setupGameFlags() { _game = GI_KYRA2; return 0; } int go(); + +protected: + void seq_menu(); }; } // end of namespace Kyra diff --git a/engines/kyra/module.mk b/engines/kyra/module.mk index 5f04796575..1dd27f676d 100644 --- a/engines/kyra/module.mk +++ b/engines/kyra/module.mk @@ -17,6 +17,7 @@ MODULE_OBJS := \ script.o \ seqplayer.o \ sequences_v1.o \ + sequences_v2.o \ sound_adlib.o \ sound_digital.o \ sound.o \ diff --git a/engines/kyra/sequences_v2.cpp b/engines/kyra/sequences_v2.cpp new file mode 100644 index 0000000000..58f86db613 --- /dev/null +++ b/engines/kyra/sequences_v2.cpp @@ -0,0 +1,105 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#include "kyra/kyra.h" +#include "kyra/kyra2.h" +#include "kyra/screen.h" +#include "kyra/wsamovie.h" +#include "kyra/sound.h" + +#include "common/system.h" + +namespace Kyra { + +void KyraEngine_v2::seq_menu() { + debugC(9, kDebugLevelMain, "KyraEngine_v2::seq_menu()"); + + _sound->loadMusicFile("K2INTRO"); + _screen->loadBitmap("VIRGIN.CPS", 7, 7, _screen->_currentPalette); + _screen->copyRegion(0, 0, 0, 0, 320, 200, 6, 0); + _screen->updateScreen(); + _screen->fadeFromBlack(); + delay(60 * _tickLength); + _screen->fadeToBlack(); + _screen->clearCurPage(); + + if (_quitFlag) + return; + + uint8 pal[768]; + int i; + + _sound->playTrack(2); + + WSAMovieV2 *title = new WSAMovieV2(this); + title->setDrawPage(0); + + title->open("WESTWOOD.WSA", 0, pal); + assert(title->opened()); + + title->setX(0); title->setY(0); + title->displayFrame(0); + _screen->updateScreen(); + _screen->fadePalette(pal, 0x54); + + for (i = 1; i < 18 && !_quitFlag; ++i) { + uint32 nextRun = _system->getMillis() + 6 * _tickLength; + title->displayFrame(i); + _screen->updateScreen(); + delayUntil(nextRun); + } + + title->close(); + + _screen->fadeToBlack(); + _screen->clearCurPage(); + + if (_quitFlag) { + delete title; + return; + } + + _sound->playTrack(3); + + title->open("TITLE.WSA", 0, pal); + assert(title->opened()); + + title->setX(0); title->setY(0); + title->displayFrame(0); + _screen->updateScreen(); + _screen->fadePalette(pal, 0x54); + + for (i = 1; i < 26 && !_quitFlag; ++i) { + uint32 nextRun = _system->getMillis() + 6 * _tickLength; + title->displayFrame(i); + _screen->updateScreen(); + delayUntil(nextRun); + } + + title->close(); + + _sound->beginFadeOut(); + + delete title; +} + +} // end of namespace Kyra -- cgit v1.2.3