aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scalpel/scalpel.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-03-17 23:09:04 -0400
committerPaul Gilbert2015-03-17 23:09:04 -0400
commit62f3f5d14e391cdac0bbfe200cdde2e4773afba4 (patch)
treef8edfbab5b33112c8087c20db7f5f7ea588b7895 /engines/sherlock/scalpel/scalpel.cpp
parentec4319923452bebade836b43a912de06958315a6 (diff)
downloadscummvm-rg350-62f3f5d14e391cdac0bbfe200cdde2e4773afba4.tar.gz
scummvm-rg350-62f3f5d14e391cdac0bbfe200cdde2e4773afba4.tar.bz2
scummvm-rg350-62f3f5d14e391cdac0bbfe200cdde2e4773afba4.zip
SHERLOCK: Remainder of showCityCutscene implemented
Diffstat (limited to 'engines/sherlock/scalpel/scalpel.cpp')
-rw-r--r--engines/sherlock/scalpel/scalpel.cpp70
1 files changed, 65 insertions, 5 deletions
diff --git a/engines/sherlock/scalpel/scalpel.cpp b/engines/sherlock/scalpel/scalpel.cpp
index 90a93de1b1..0e5a3bec34 100644
--- a/engines/sherlock/scalpel/scalpel.cpp
+++ b/engines/sherlock/scalpel/scalpel.cpp
@@ -59,15 +59,75 @@ void ScalpelEngine::showOpening() {
}
bool ScalpelEngine::showCityCutscene() {
-// byte palette[PALETTE_SIZE];
+ byte palette[PALETTE_SIZE];
_sound->playMusic("prolog1.mus");
_titleOverride = "title.lib";
_soundOverride = "title.snd";
- _animation->playPrologue("26open1", 1, 255, true, 2);
-
- // TODO
- return true;
+ bool finished = _animation->playPrologue("26open1", 1, 255, true, 2);
+
+ if (finished) {
+ Sprite titleSprites("title2.vgs", true);
+ _screen->_backBuffer.blitFrom(*_screen);
+ _screen->_backBuffer2.blitFrom(*_screen);
+
+ // London, England
+ _screen->_backBuffer.transBlitFrom(titleSprites[0], Common::Point(10, 11));
+ _screen->randomTransition();
+ finished = _events->delay(1000, true);
+
+ // November, 1888
+ if (finished) {
+ _screen->_backBuffer.transBlitFrom(titleSprites[1], Common::Point(101, 102));
+ _screen->randomTransition();
+ finished = _events->delay(5000, true);
+ }
+
+ // Transition out the title
+ _screen->_backBuffer.blitFrom(_screen->_backBuffer2);
+ _screen->randomTransition();
+ }
+
+ if (finished)
+ finished = _animation->playPrologue("26open2", 1, 0, false, 2);
+
+ if (finished) {
+ Sprite titleSprites("title.vgs", true);
+ _screen->_backBuffer.blitFrom(*_screen);
+ _screen->_backBuffer2.blitFrom(*_screen);
+
+ // The Lost Files of
+ _screen->_backBuffer.transBlitFrom(titleSprites[0], Common::Point(75, 6));
+ // Sherlock Holmes
+ _screen->_backBuffer.transBlitFrom(titleSprites[1], Common::Point(34, 21));
+ // copyright
+ _screen->_backBuffer.transBlitFrom(titleSprites[2], Common::Point(4, 190));
+
+ _screen->verticalTransition();
+ finished = _events->delay(4000, true);
+
+ if (finished) {
+ _screen->_backBuffer.blitFrom(_screen->_backBuffer2);
+ _screen->randomTransition();
+ finished = _events->delay(2000);
+ }
+
+ if (finished) {
+ _screen->getPalette(palette);
+ _screen->fadeToBlack(2);
+ }
+
+ if (finished) {
+ // In the alley...
+ _screen->transBlitFrom(titleSprites[3], Common::Point(72, 51));
+ _screen->fadeIn(palette, 3);
+ finished = _events->delay(3000, true);
+ }
+ }
+
+ _titleOverride = "";
+ _soundOverride = "";
+ return finished;
}
bool ScalpelEngine::showAlleyCutscene() {